- Dec 30, 2006
- 11,366
- 2
- 0
Myself I can't wait for RtRt . The rendering is almost perfect . Here is a good article on it .
With the links contained in it to give good basic understanding .
The real question is when well we see RtRt.
http://softwarecommunity.intel.../articles/eng/1343.htm.
Here are a few high lights I find interesting. I will comment why I find them interesting.
No need for comment on this one.
Recently, it has been shown that ray tracing can be done in real-time on consumer PCs. This is an interesting development; ray tracing solves many of the problems that rasterization has by taking into account global effects (shadows, reflections, refractions) in an intuitive way, it is able to create more realistic graphics, and does so in a more elegant way. At the same time, ray tracing is a very resource-intensive algorithm; to make it real-time requires optimal use of modern hardware.
Its pretty easy to see why I find this interesting with Nehalem coming with 8 cores.
To maximize ray tracing performance, both thread level and instruction level parallelism should be used. As mentioned in section 2, the ray tracing algorithm is parallel by nature; rays can be traced independently and in any order. Creating a multithreaded ray tracer that uses all available cores is therefore straightforward. In principle, each ray can be rendered in its own thread. In practice, it is more efficient to assign tiles of pixels to each rendering thread, to reduce threading overhead.
This one isn't so transparent . But apple could be the big gainer here.
The worker thread code that waits for the signal from the master thread, gets the next task, renders assigned tiles, and signals the master when there are no more tiles to be rendered is shown below. This code does not rely on the OS for synchronization during the actual processing of tasks. Minimizing calls to system routines considerably decreases threading overhead.
Again this one explains itself.
A ray tracer that uses thread-level parallelism (as described in section 3) scales almost linearly in performance as the number of available cores increases. A well-written implementation, using a high-quality kd-tree and efficient traversal and shading code, should be able to achieve millions of rays per second, per core. This number can be increased significantly by using instruction-level parallelism. For this, SIMD instructions are used to operate on multiple data streams in parallel. SIMD instructions are implemented by the SSE instruction sets on modern processors.
This one I find interesting mostly because most of us know intel is really big on improveing Vectorization. SSE4 and what SSE4 1 brings with Nehalem .
Applying parallelism to the ray tracing algorithm can greatly improve the performance of a single-threaded, non-vectorized implementation. Dividing work over multiple threads is relatively simple for this rendering algorithm, since rays are independent. Splitting work by assigning tiles of pixels to rendering threads allows us to control the granularity of the multithreading, while at the same time increasing coherency of memory access. Using an efficient master/worker model, ray tracing has the potential to scale almost linearly with the number of available cores, which makes it the perfect test case for today?s multi-core processors.
Vectorization using SIMD instructions is used to improve the performance of individual rendering threads. By tracing four rays simultaneously, all stages of a ray tracer can be sped up considerably: In this first article, it was shown that normalization of ray directions is about eighteen times faster. By working with packets of rays throughout the stages of ray tracing, data conversion is minimized.
How hard will it be to port games to RtRt ? Intel is working hard on it .
From what I understand its not that hard. We just need the processors that have the parallism and vectorization to speed up the process . Think nehalem
Sure would be nice to do away with the gpu . Problem is when well we see this .
A long time away or the near future .
I hope for the near future but we just have to wait and see.
With the links contained in it to give good basic understanding .
The real question is when well we see RtRt.
http://softwarecommunity.intel.../articles/eng/1343.htm.
Here are a few high lights I find interesting. I will comment why I find them interesting.
No need for comment on this one.
Recently, it has been shown that ray tracing can be done in real-time on consumer PCs. This is an interesting development; ray tracing solves many of the problems that rasterization has by taking into account global effects (shadows, reflections, refractions) in an intuitive way, it is able to create more realistic graphics, and does so in a more elegant way. At the same time, ray tracing is a very resource-intensive algorithm; to make it real-time requires optimal use of modern hardware.
Its pretty easy to see why I find this interesting with Nehalem coming with 8 cores.
To maximize ray tracing performance, both thread level and instruction level parallelism should be used. As mentioned in section 2, the ray tracing algorithm is parallel by nature; rays can be traced independently and in any order. Creating a multithreaded ray tracer that uses all available cores is therefore straightforward. In principle, each ray can be rendered in its own thread. In practice, it is more efficient to assign tiles of pixels to each rendering thread, to reduce threading overhead.
This one isn't so transparent . But apple could be the big gainer here.
The worker thread code that waits for the signal from the master thread, gets the next task, renders assigned tiles, and signals the master when there are no more tiles to be rendered is shown below. This code does not rely on the OS for synchronization during the actual processing of tasks. Minimizing calls to system routines considerably decreases threading overhead.
Again this one explains itself.
A ray tracer that uses thread-level parallelism (as described in section 3) scales almost linearly in performance as the number of available cores increases. A well-written implementation, using a high-quality kd-tree and efficient traversal and shading code, should be able to achieve millions of rays per second, per core. This number can be increased significantly by using instruction-level parallelism. For this, SIMD instructions are used to operate on multiple data streams in parallel. SIMD instructions are implemented by the SSE instruction sets on modern processors.
This one I find interesting mostly because most of us know intel is really big on improveing Vectorization. SSE4 and what SSE4 1 brings with Nehalem .
Applying parallelism to the ray tracing algorithm can greatly improve the performance of a single-threaded, non-vectorized implementation. Dividing work over multiple threads is relatively simple for this rendering algorithm, since rays are independent. Splitting work by assigning tiles of pixels to rendering threads allows us to control the granularity of the multithreading, while at the same time increasing coherency of memory access. Using an efficient master/worker model, ray tracing has the potential to scale almost linearly with the number of available cores, which makes it the perfect test case for today?s multi-core processors.
Vectorization using SIMD instructions is used to improve the performance of individual rendering threads. By tracing four rays simultaneously, all stages of a ray tracer can be sped up considerably: In this first article, it was shown that normalization of ray directions is about eighteen times faster. By working with packets of rays throughout the stages of ray tracing, data conversion is minimized.
How hard will it be to port games to RtRt ? Intel is working hard on it .
From what I understand its not that hard. We just need the processors that have the parallism and vectorization to speed up the process . Think nehalem
Sure would be nice to do away with the gpu . Problem is when well we see this .
A long time away or the near future .
I hope for the near future but we just have to wait and see.