News - The bright side of ray-traced global illumination - Printable Version +- Sick Gaming (https://www.sickgaming.net) +-- Forum: Sick Gaming Community (https://www.sickgaming.net/forum-1.html) +--- Forum: Lounge (https://www.sickgaming.net/forum-8.html) +--- Thread: News - The bright side of ray-traced global illumination (/thread-98237.html) |
News - The bright side of ray-traced global illumination - xSicKxBot - 11-12-2020 The bright side of ray-traced global illumination <div style="margin: 5px 5% 10px 5%;"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination.png" width="243" height="77" title="" alt="" /></div><div><p> <!-- Google Tag Manager --> <!-- End Google Tag Manager --> <!– –> <title>Gamasutra: Ruben Torres Bonet’s Blog – The Bright Side of Ray-Traced Global Illumination</title> <!--[if lt IE 9]> <a href="http://html5shim.googlecode.com/svn/trunk/html5.js">http://html5shim.googlecode.com/svn/trunk/html5.js</a> <![endif]--> <!-- CSS --> <!-- link href="https://twimgs.com/gamasutra/css/minified.css" rel="stylesheet" type="text/css" / --> <!-- Mobile Specific Metas --> <!-- Start Visual Website Optimizer Asynchronous Code --> <!-- End Visual Website Optimizer Asynchronous Code --> <!-- Start HeatMap.me Code --> <!-- End HeatMap.me Code --> <!-- Start: GPT Sync --> <!-- End: GPT --> <!-- Twitter universal website tag code --> <!-- End Twitter universal website tag code --> <!-- Facebook Pixel Code --> <!-- DO NOT MODIFY --> <!-- End Facebook Pixel Code --> <!-- Eloqua tracking code --> <!-- End Eloqua tracking code --> <!-- Google Tag Manager (noscript) --> <!-- End Google Tag Manager (noscript) --> <!--Cookie banner code starts here --> <!--Cookie banner code ends here --> <!-- Informa Branding code goes here--> </p> <div id="iribbon-container" class="content-body-wrapper"> <button id="iribbon-title" title="show/hide" class="inactive">Informa</button> </p> <div id="iribbon-detail" class="ribbon-hide"> <div id="iribbon-left"> <p>Gamasutra is part of the Informa Tech Division of Informa PLC</p> </p></div> <div id="iribbon-right"> <p>This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.</p> </p></div> </p></div> </p></div> <p> <!-- Informa Branding code goes here--> <!-- Beginning Sync AdSlot 19 for Ad unit Gamasutra//consolepc ### size: [[2,2]] --> <!-- End AdSlot 19 --> <!-- Beginning Sync AdSlot 20 for Ad unit Gamasutra//consolepc ### size: [[7,7]] --> <!-- End AdSlot 20 --> </p> <div class="container"> <div id="container-main" class="content-body-wrapper"> <!-- Google Prestitial Ads start here--> <!-- Google Prestitial Ads end here--> </p> <div class="container bottom3"> <div class="span-7"> <a href="https://www.gamasutra.com"><img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination.png" alt="Gamasutra: The Art & Business of Making Games" width="243" height="77" border="0"></a><img alt="spacer" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination.gif" width="27"> </div> </p></div> <div class="span-20"> <!--end show phone--> <!--end showphone--> <!--end nav--> </p> <div class="span-20 last content_bg"> <div class="hide-phone"> <div class="span-4"> <div class="content_box_left"> <div class="leftcol"> <!--member login--> <!--end memberlogin--> <!--begin social icons--> <!--begin social icons--> <!--end social icons--> <!--end social icons--> <!--begin page numbers--> <!--end page numbers--> <!--begin leftnav--> <!--end leftnav--> <!-- Beginning Sync AdSlot 3 for Ad unit Gamasutra//consolepc ### size: [[164,59]] --> <!-- End AdSlot 3 --> <!-- Beginning Sync AdSlot 4 for Ad unit Gamasutra//consolepc ### size: [[164,59]] --> <!-- End AdSlot 4 --> <!-- Beginning Sync AdSlot 5 for Ad unit Gamasutra//consolepc ### size: [[164,409]] --> <!-- End AdSlot 5 --> <!-- Beginning Sync AdSlot 9 for Ad unit Gamasutra//consolepc ### size: [[164,177]] --> <!-- End AdSlot 9 --> <!-- Beginning Sync AdSlot 11 for Ad unit Gamasutra//consolepc ### size: [[164,177]] --> <!-- End AdSlot 11 --> <!-- begin event tickers --> <!-- end event tickers --> <!--begin jobs--> <!--end jobs--> <!--begin blogs--> <!--end blogs--> <!--begin press releases--> <!--end press releases--> <!--begin calendar--> <!– </p> <div class="header"><img loading="lazy" alt="arrow" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-1.png" width="22px" height="20px" /><a href="http://www.gamasutra.com/calendar/calendar.php">Calendar</a></div> <div class="leftnav bottom2"> <a href="http://www.gamasutra.com/calendar/calendar.php"><strong>View All</strong></a> <a href="http://www.gamasutra.com/calendar/calendar_submit.php"><strong>Submit Event</strong></a> </p> <hr> <ul> </ul> </div> <p> –> <!--end calendar--> <!--begin about--> </p> <div class="bottom2"> <a href="https://www.gamasutra.com/advertise"> <img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination.jpg" alt="Sponsor" border="0" class="whiteTop" width="177px" height="60px"> </a> </div> <p> <!--end about--> <!--begin network--> </p> <div class="leftnav_network bottom2"> If you enjoy reading this site, you might also want to check out these UBM Tech sites: </p> <hr> <hr> <p> <br class="clear"> </div> <p> <!--end network--> <!--begin store--> <!--end store--> </div> <p><!--end leftcol--> </div> </div></div> <div class="span-16 last"> <div class="content_box_middle"> <!-- InstanceBeginEditable name="BodyContent" --> </p> <div class="page_item"> <div><a name="twitter_share" href="http://twitter.com?status=RT @gamasutra: The Bright Side of Ray-Traced Global Illumination http://www.gamasutra.com/blogs/RubenTorresBonet/20201110/373493/" target="_blank" rel="noopener noreferrer"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-1.gif" alt="Share on Twitter" border="0" height="20"></a> <span id="edit_post_link"></span> <a href="https://www.gamasutra.com/blogs/rss/"><img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-2.gif" width="15" height="15" border="0" alt="RSS"></a> </div> <hr> <div class="item_body mobile_image_transform"> <strong><i><small> The following blog post, unless otherwise noted, was written by a member of Gamasutras community.<br />The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company. </small></i></strong> </p> <hr> <p data-css="tve-u-1758046d6be"><strong>[Recommended: read the original blog post “<a href="https://go.thegamedev.guru/rt-global-illumination">Unity ray-traced global illumination</a>” for proper interactive content]</strong></p> <p data-css="tve-u-1758046d6be">Let’s get back to ray tracing with global illumination in Unity. Discover what global illumination is and choose the better fit for your game:</p> <ul> <li><strong>Baked GI</strong></li> <li><strong>Screen-space Raster GI</strong></li> <li><strong>Screen-Space Ray-traced GI</strong></li> </ul> <p><img alt data-height="439" data-id="9723" data-init-height="608" data-init-width="1080" data-width="780" height="338" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-3.gif" title="Unity-Ray-Tracing-Global-Illumination-Thumbnail" width="600"></p> <p><strong>TABLE OF CONTENTS</strong></p> <p>1 <a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#t-1604169170145">Can You Guess What’s Missing in This Scene?</a></p> <p>2 <a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#t-1604169170146">What’s Unity Global Illumination?</a></p> <p>3 <a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#t-1604169170147">Your Options for Global Illumination in Unity</a></p> <p> 3.1 <a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#t-1604169170148">Unity Baked Global Illumination</a></p> <p> 3.2 <a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#t-1604169170149">Unity Screen-Space Global Illumination (SSGI)</a></p> <p> 3.3 <a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#t-1604169170150">Ray-Traced Global Illumination in Unity</a></p> <p>4 <a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#t-1604169170151">The Performance Cost of Ray-Traced Global Illumination in Unity</a></p> <p>5 <a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#t-1604169170152">Next Steps</a></p> <h2 id="t-1604169170145">Can You Guess What’s Missing in This Scene?</h2> <p>Take a second to have a look at the screenshot below.</p> <p>Can you guess what is this picture missing to be… visually “appealing”?</p> <p><img alt data-height="439" data-id="2075" data-init-height="312" data-init-width="300" data-width="780" height="338" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-2.png" width="600"></p> <p>It’s looking either too bright or too dark. That’s not an easy thing to see in real life.</p> <p>Why?</p> <p>Because light bounces between surfaces.</p> <p>These bounces soften the “transitions” between bright and dark areas. And you don’t see that happening in the screenshot above. </p> <p>Now, let’s see something more realistic.</p> <p>Have a look below. Use <a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#gi1">the slider</a> to transition to a more “visually correct” scene:</p> <p data-css="tve-u-1757ff0e4e2"><a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#gi1"><strong>Is Global Illumination Overrated? (Answer: NO)</strong></a></p> <p><a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#gi1"><img height="338" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-3.png" width="600"></a></p> <p>What’s the difference?</p> <p>Global illumination (GI). To be more specific, indirect illumination.</p> <p>Let’s quickly explain how GI works.</p> <h2 id="t-1604169170146">What’s Unity Global Illumination?</h2> <p>Like I said, light rays bounce off surfaces and lose energy in the process (e.g. brightness, a change in color, etc.). Eventually, light will reach your eyes from different surfaces.</p> <p>In graphics, we distinguish between:</p> <ul> <li><strong>Direct lighting</strong>: the sun light hits the floor and reflects into your eyes. That lets you see that specific fragment on the floor.</li> <li><strong>Indirect lighting</strong>: the sun light hits the floor, bounces to your hand watch <strong>and then</strong> bounces towards someone’s eyes. That person becomes temporarily stunned.</li> </ul> <p>The difference is that GI takes more bounces into account. Not just one.</p> <p>Direct lighting is easy and cheap to calculate. Indirect lighting, not so much.</p> <p>So, how do you do indirect lighting* in Unity?</p> <p>Here are your options.</p> <p><em>* I use the words indirect lighting and global illumination interchangeably. In theory, they’re not the same. But in practice, we treat them as if they were.</em></p> <h2 id="t-1604169170147">Your Options for Global Illumination in Unity</h2> <p>Let’s build an ultra-simple scene to see and compare the different methods you have in Unity to do global illumination.</p> <p>Here’s the scene we are building:</p> <p><img alt data-css="tve-u-1757ff684c6" data-height="326" data-id="2075" data-init-height="312" data-init-width="300" data-tcb-events="__TCB_EVENT_[{"t":"click","a":"thrive_zoom","config":{"id":"2075","size":"full"}}]_TNEVE_BCT__" data-width="389" height="504" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-4.png" width="600"></p> <p><em>Light Bounces Global Illumination Diagram</em></p> <p>First, take a deep breath and enjoy my drawing skills.</p> <p>Now, let’s explain it.</p> <p>A wall is covering/occluding another wall, which in real-life would prevent light from reaching it.</p> <p>However, there’s a small gap below.</p> <p>This bottom gap will allow some sun rays to “escape” the big wall and reach the wall behind after these rays bounce off the floor.</p> <p>The diagram is clear, right?</p> <p>Here’s how our baseline (just direct lighting + shadows) looks in Unity.</p> <p><img alt data-height="615" data-id="2075" data-init-height="312" data-init-width="300" data-width="780" height="473" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-5.png" width="600"></p> <p>Global Illumination Scenario</p> <p>We won’t use that angle. It’s hard to see the effect of indirect lighting later on.</p> <p>Here’s a better angle.</p> <p><img alt data-height="615" data-id="2075" data-init-height="312" data-init-width="300" data-width="780" height="473" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-6.png" width="600"></p> <p>Global Illumination Baseline (No GI)</p> <p>The wall behind is quite dark.</p> <p>No global illumination means light is not bouncing. Our black shadow on that wall remains untouched with no secondary light rays coming in.</p> <p>Not what you want in your game. Nope.</p> <p>So let’s improve this scenario and add some GI with our first method: <strong>baked global illumination</strong>(Unity Lightmapper).</p> <h3 id="t-1604169170148">Unity Baked Global Illumination</h3> <p>Baking global illumination is the <strong>cheapest way</strong> to do global illumination.</p> <p>We do all these expensive calculations offline (in the editor). That process produces textures that we later “<strong>paint on top</strong>” of our scene.</p> <p>It takes some effort to get the results you want with this method, as there are many settings to play with. And <strong>baking takes time</strong>.</p> <p>But once you get it right, it looks great.</p> <p>In fact, it’s probably the best-looking method out there to do (static) global illumination.</p> <p>The downsides?</p> <p>Well, it only works with static geometry.</p> <p>I mean, you can use light probes to add some indirect illumination to dynamic (moving) elements. But that also goes with many downsides.</p> <p>Anyway, let’s see how it looks.</p> <p>Use <a href="https://thegamedev.guru/unity-ray-tracing/global-illumination/#gi2">the slider</a> to see the evolution from no GI to baked GI.</p> <p><a href="https://www.gamasutra.com/blogs/RubenTorresBonet/20201110/373493/thegamedev.guru/unity-ray-tracing/global-illumination/#gi2"><img height="473" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-7.png" width="600"></a>Just like I promised you, it looks more… <em>correct</em>*.</p> <p><em>* You know what I mean. Not the simplified scene per se, but the indirect lighting.</em></p> <p>However, did you ever play an <em>interactive</em> game with just <em>static </em>elements?</p> <p>No, you say?</p> <p>That’s why we need more options.</p> <p>One is to use <a href="https://docs.unity3d.com/Manual/LightProbes.html" target="_blank" rel="noopener noreferrer">light probes</a> together with <a href="https://docs.unity3d.com/Manual/lighting-window.html" target="_blank" rel="noopener noreferrer">baked GI</a>. The issue with light probes is that you need many of them to have smooth indirect lighting transitions. And guess what? That’s going to break batching for good.</p> <p>Let’s consider instead something else: <strong>Screen-space (Raster) Global Illumination</strong>.</p> <h3 id="t-1604169170149">Unity Screen-Space Global Illumination (SSGI)</h3> <p>The idea with SSGI is simple. It’s execution is not.</p> <p>We analyze the rendered frame (G-buffer) and guesstimate the way light should bounce between surfaces that are within that frame.</p> <p>Again, we don’t do that for the whole scene. Just for the current rendered image.</p> <p>Doing this effect in screen-space makes this option affordable in terms of performance.</p> <p>Use <a href="http://thegamedev.guru/unity-ray-tracing/global-illumination/#gi3">the slider below</a> to find out what <em>SSGI </em>paints on top of our baseline.</p> <p data-css="tve-u-1757ff0e4e2"><strong>Screen-Space Global Illumination (SSGI)</strong></p> <p><a href="https://www.gamasutra.com/blogs/RubenTorresBonet/20201110/373493/thegamedev.guru/unity-ray-tracing/global-illumination/#gi3"><img height="473" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-8.png" width="600"></a></p> <p>A small tint of red.</p> <p>Not much else.</p> <p>Here is in detail the indirect lighting that we are adding to our baseline:</p> <p><img alt data-height="438" data-id="2075" data-init-height="312" data-init-width="300" data-width="780" height="337" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-9.png" width="600"></p> <p>Unity Global Illumination: Screen-Space Effect</p> <p>That’s a very shy effect. Quite different from baked GI, isn’t it?</p> <p>That’s one of the limitations of <em>SSGI</em>: accuracy. Two reasons for this:</p> <ul> <li>We have <strong>incomplete information</strong> (the G Buffer, information about our lights and that’s about it).</li> <li>We have a <strong>low performance budget</strong>: we need to keep this effect cheap.</li> </ul> <p>But hey, it works with dynamic elements. And in real-time <img loading="lazy" alt height="32" role="img" src="https://s.w.org/images/core/emoji/13.0.0/svg/1f642.svg" width="32"></p> <p>Can we do better?</p> <p>Yes!</p> <p>What if we used <strong>ray-tracing</strong> for global illumination?</p> <p>After all, with ray-tracing we have <strong>access to off-screen data</strong>. And that removes a limitation of this method.</p> <p>Let’s check out <strong>ray-traced SSGI</strong>.</p> <h3 id="t-1604169170150">Ray-Traced Global Illumination in Unity</h3> <p>This is getting exciting.</p> <p>If your project is ray-tracing-ready, you just need to click a checkbox in your screen-space global illumination effect: <em>enable ray-tracing</em>.</p> <p>The result?</p> <p>Use <a href="http://thegamedev.guru/unity-ray-tracing/global-illumination/#gi4">the slider below</a> to discover it.</p> <p data-css="tve-u-1757ff0e4e2"><strong>Ray-Traced Global Illumination</strong></p> <p><a href="https://www.gamasutra.com/blogs/RubenTorresBonet/20201110/373493/thegamedev.guru/unity-ray-tracing/global-illumination/#gi4"><img height="473" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-10.png" width="600"></a>Juicy.</p> <p>Here’s the singled-out effect that ray-tracing GI is adding to our baseline:</p> <p><img alt data-height="444" data-id="2075" data-init-height="312" data-init-width="300" data-width="780" height="341" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-11.png" width="600"></p> <p>Unity Global Illumination: Ray Traced Effect</p> <p>Indeed, ray-tracing gets you good-looking indirect lighting. And it works with <strong>dynamic elements</strong>… in real-time.</p> <p>Huge deal.</p> <p>The question is, <strong>can you really afford ray-traced global illumination</strong> in Unity?</p> <p>Let’s analyze the performance cost of these effects.</p> <h2 id="t-1604169170151">The Performance Cost of Ray-Traced Global Illumination in Unity</h2> <p>Here are some quick tests I ran with:</p> <ul> <li><strong>CPU</strong>: AMD Ryzen 2700X</li> <li><strong>GPU</strong>: TITAN RTX beefy edition</li> <li><strong>Dataset</strong>: 3000 frames taken on the editor</li> <li><strong>Scene</strong>: HDRP template</li> <li data-css="tve-u-1758049c76b"><strong>Versions</strong>: Unity 2020.2.0b7 + HDRP 10.0.1</li> </ul> <p><img alt data-height="439" data-id="9711" data-init-height="770" data-init-width="1368" data-width="780" height="338" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-12.png" width="600"></p> <p data-css="tve-u-1758049d5fa">Here are the average frame times at full-HD resolution:</p> <ul> <li>Baked GI: 27.64ms</li> <li>Baked GI + SSGI (low quality): 28.19 ms</li> <li>Baked GI + SSGI (medium quality): 30.36 ms</li> <li>Baked GI + SSGI (high quality): 32.96 ms</li> <li>Baked GI + Ray-Traced SSGI (performance mode — low quality): 32.07 ms</li> <li>Baked GI + Ray-Traced SSGI (performance mode — medium quality): 32.88 ms</li> <li>Baked GI + Ray-Traced SSGI (performance mode — high quality): 34.81 ms</li> <li>Baked GI + Ray-Traced SSGI (quality mode): <strong>107.91 ms</strong> (ouch)</li> </ul> <p>And here are some of these numbers at 4K resolution:</p> <ul> <li>Baked GI: 106.21ms</li> <li>Baked GI + SSGI (medium quality): 114.56</li> <li>Baked GI + Ray-Traced SSGI (performance mode — medium quality): 119.77 ms</li> <li>Baked GI + Ray-Traced SSGI (quality mode): <strong>421 ms</strong> (OUCH)</li> </ul> <p data-css="tve-u-17580009ed7"><em>Why did I take them all with baked GI, you might ask? Well, I removed the baked lightmaps and the entire scene broke for good. Like visually, all was pure white.</em></p> <p>Don’t take these times as absolute figures.</p> <p>After all, it’s a specific scene, a specific software/hardware setup and within the editor.</p> <p>But you can compare the <strong>relative frame times </strong>and see how performance scales on this high-fidelity scene.</p> <p>You get the idea.</p> <p>Two interesting questions arise (and two subjective answers):</p> <ul> <li>Are we ready for 4K real-time ray-traced GI? Nope.</li> <li>Ok, and are we ready for 1080p real-time ray-traced GI? Yeah, maybe.</li> </ul> <p>It depends on your game.</p> <p>But if you put enough optimization effort into it, <strong>you can get real-time ray-tracing global illumination in. It’s feasible.</strong></p> <p>Just run it on performance mode at 1080p and you’ll be fine on most <em>NVIDIA 2000+</em> cards (and maybe even on the <em>NVIDIA 1000</em> series).</p> <p>And the importance of performance brings me to…</p> <p><a href="https://go.thegamedev.guru/performance-checklist" target="_blank" rel="noopener noreferrer"><img alt data-css="tve-u-175800136b8" data-height="197" data-id="6536" data-init-height="605" data-init-width="747" data-link-wrap="true" data-width="243" height="197" loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-13.png" width="243"></a></p> <h2 id="t-1604169170152">Next Steps</h2> <p>How much did you like real-time ray-traced global illumination?</p> <p>Well, you can get RTGI in your game if you <strong>make enough performance room</strong> (and <a href="https://thegamedev.guru/unity-ray-tracing/5-signs-you-need-ray-tracing/" target="_blank" rel="noopener noreferrer">all other Unity ray-tracing effects</a> as well).</p> <p>And <em>nothing better</em>* than my <a href="https://go.thegamedev.guru/performance-checklist" target="_blank" rel="noopener noreferrer">Unity Performance Optimization Checklist</a> for that.</p> <p><em>* <a href="https://go.thegamedev.guru/consulting" target="_blank" rel="noopener noreferrer">Unity performance consulting</a> is better (but not many can’t afford it).</em></p> <p>Till next time,</p> <p>Ruben<br />(The Gamedev Guru)</p> </p></div> <hr> <div class="hide-phone"> <h3>Related Jobs</h3> <div class="stories_item"> <div class="thumb"><a href="https://jobs.gamasutra.com/job/senior-release-engineer-frisco-texas-34639"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-14.png" alt="The Gearbox Entertainment Co." width="120"></a></div> </p></div> <div class="stories_item"> <div class="thumb"><a href="https://jobs.gamasutra.com/job/junior-programmer-cambridge-ma-cambridge-massachusetts-32982"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-15.png" alt="Disbelief" width="120"></a></div> </p></div> <div class="stories_item"> <div class="thumb"><a href="https://jobs.gamasutra.com/job/senior-programmer-chicago-chicago-illinois-32981"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-15.png" alt="Disbelief" width="120"></a></div> </p></div> <div class="stories_item"> <div class="thumb"><a href="https://jobs.gamasutra.com/job/junior-programmer-chicago-chicago-illinois-32983"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-15.png" alt="Disbelief" width="120"></a></div> </p></div> </p></div> <hr></div> <p> <!-- InstanceEndEditable --> </div> <p><!--end contentbox--> </div> <p><!--end span-16--> </div> <p> <br class="clear"> </div> <p><!--end span-21--> <!--begin right sidebar--> <!--end right sidebar--> <!– </div> <p> Extra Div –> <!-- Beginning Sync AdSlot 21 for Ad unit Gamasutra//consolepc ### size: [[8,2]] --> <!-- End AdSlot 21 --> <!-- Beginning Sync AdSlot 22 for Ad unit Gamasutra//consolepc ### size: [[8,4]] --> <!-- End AdSlot 22 --> <!-- Beginning Sync AdSlot 23 for Ad unit Gamasutra//consolepc ### size: [[4,4]] --> <!-- End AdSlot 23 --> <br class="clear"></p></div> <p><!--end content-body-wrapper--> </div> <p><!--end container--><br /> <!--begin footer--> <!--end footer--> <!-- SiteCatalyst code version: H.21. Copyright 1996-2010 Adobe, Inc. All Rights Reserved More info available at http://www.omniture.com --> <a href="http://www.omniture.com" title="Web Analytics"><img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/11/the-bright-side-of-ray-traced-global-illumination-4.gif" height="1" width="1" border="0" alt></a><!--/DO NOT REMOVE/--><br /> <!-- End SiteCatalyst code version: H.21. --> <!-- Begin ADSNATIVE Code --> <!-- End ADSNATIVE Code --> <!--Begin Ad script for pixel --> <!--END Ad script for pixel --> </p> </div> https://www.sickgaming.net/blog/2020/11/12/the-bright-side-of-ray-traced-global-illumination/ |