<story><title>Real-Time Ray Tracing Demo</title><url>https://www.unrealengine.com/en-US/blog/technology-sneak-peek-real-time-ray-tracing-with-unreal-engine</url></story><parent_chain><item><author>ramzyo</author><text>An anecdotal observation: there seem to be many ray tracing-related articles and ShowHNs that make the  front page. For someone who isn&amp;#x27;t in the computer graphics space, what&amp;#x27;s the importance of improving existing ray tracers or the novelty in writing one&amp;#x27;s own? Is writing one a particularly challenging thing to do? Is improving existing ray tracers the equivalent of chip manufacturers increasing CPU performance in the chip world? Just trying to understand this a bit better.</text></item></parent_chain><comment><author>alkonaut</author><text>Writing one is fun because it’s trivial to start, but you can be sure that there are features that are simply beyond your capability almost no matter how good you are. And it gets hard &lt;i&gt;fast&lt;/i&gt;. It’s also very cross disciplinary if you like math, physics and system level programming. Those of use who wrote ray tracers are probably the same that code toy synthesizers. We like numbers. Once you made one it’s also an excellent way of learning a new language to make a new one.&lt;p&gt;Nice challenges include:&lt;p&gt;add parallellism. Traversing a tree hierarchy efficiently with SIMD or GPU code isn’t trivial. (I tend to dodge this part of the problem by using intels simd lib Embree)&lt;p&gt;Or make it spectral (trace with wavelengths instead of simple colored light, to get effects such as rainbows in refractions). This is actually reasonably simple - but then you realize it ruins your hope of parallelizing efficiently as the rays diverge when they refract!&lt;p&gt;Or implement realistic subsurface scattering. Doing it physically right means your render will never finish, so it’s back to inventing the most clever hacks - just like rasterizing!</text></comment>
<story><title>Real-Time Ray Tracing Demo</title><url>https://www.unrealengine.com/en-US/blog/technology-sneak-peek-real-time-ray-tracing-with-unreal-engine</url></story><parent_chain><item><author>ramzyo</author><text>An anecdotal observation: there seem to be many ray tracing-related articles and ShowHNs that make the  front page. For someone who isn&amp;#x27;t in the computer graphics space, what&amp;#x27;s the importance of improving existing ray tracers or the novelty in writing one&amp;#x27;s own? Is writing one a particularly challenging thing to do? Is improving existing ray tracers the equivalent of chip manufacturers increasing CPU performance in the chip world? Just trying to understand this a bit better.</text></item></parent_chain><comment><author>electricslpnsld</author><text>&amp;gt; what&amp;#x27;s the importance of improving existing ray tracers&lt;p&gt;In the offline space (film, visualization), cost. Movies get cheaper to make.&lt;p&gt;In the realtime space (games), lots of visually important effects are difficult to do with rasterization, leading to complicated&amp;#x2F;large&amp;#x2F;expensive-to-maintain rendering solutions. With a physically based path tracer, a lot of these effects come out of the box. Path tracing has traditionally been too expensive to do in realtime, however, and has been &amp;#x27;just around the corner&amp;#x27; for the past 20 years. If I&amp;#x27;m not mistaken, recent advances in image de-noising, which seems to be the crux of the new NVIDIA technology, have made real time path-tracing on the GPU much more practical.&lt;p&gt;&amp;gt; Is writing one a particularly challenging thing to do?&lt;p&gt;Depends how deep you dive. You can write a basic tracer to render a sphere and fit it on a business card -- this is a typical assignment in introductory graphics courses. Rendering complicated materials is a never ending rat hole of complexity, lots of rendering research looks effectively like material&amp;#x27;s science, these days.</text></comment>