[video output=day391 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Planning Better Lighting" vod_platform=youtube id=rl_6bBGoB2E annotator=Miblo] [0:03][Recap and set the stage for the day] [1:01][Run the game to show our Phong lighting, and consider how to improve it] [9:46][Blackboard: Light Rendering] [16:45][Blackboard: Phong reflectance model] [22:06][Blackboard: Moving beyond the simplification of the Phong model] [24:47][Blackboard: Light Probes] [25:21][Everybody needs to get lit"][quote 579] [25:34][Blackboard: Light Probes and Cube Map] [30:52][Blackboard: How light probing can solve the problem completely, but not for us] [33:31][Blackboard: Producing hemispheres of light ad infinitum] [37:32][Blackboard: "Monte Carlo" Integration] [41:22][Blackboard: Unbiased vs Biased rendering] [48:10][Blackboard: Breaking the infinite bounce nastiness with Monte Carlo integration] [51:13][Consult examples of offline renderers[ref site="Maxwell" url="http://www.maxwellrender.com/"][ref site=OToy url=https://home.otoy.com/][ref site=YouTube page="Octane Render with (4) Nvidia GTX Titans" url=https://www.youtube.com/watch?v=mhqf1n2xq80][ref site=YouTube page="Introduction to Maxwell Render V4" url=https://www.youtube.com/watch?v=eIU1e_u_kvo]] [55:33][A few words on the offline rendering system in The Witness] [57:01][Blackboard: The lighting requirements of our online renderer] [1:01:29][Blackboard: Turning an aerial lighting problem into a point lighting problem] [1:05:21][Blackboard: Light source occlusion] [1:12:17][Blackboard: Consider various techniques for lighting] [1:16:19][Consider the attractiveness of using a system that doesn't bifurcate the renderer into two parts] [1:21:37][Consult Alex Evans' 'Fast Approximations for Lighting of Dynamic Scenes'[ref author="Alex Evans" title="Fast Approximations for Lighting of Dynamic Scenes" url="http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/Evans-Fast_Approximations_for_Lighting_of_Dynamic_Scenes-print.pdf"]] [1:29:17][Consider flipping a coin] [1:30:26][Blackboard: Voxel cone tracing[ref author="Cyril Crassin, Fabrice Neyret, Miguel Sainz, Simon Green, Elmar Eisemann" title="Interactive Indirect Illumination Using Voxel Cone Tracing" url="http://maverick.inria.fr/Publications/2011/CNSGE11b/GIVoxels-pg2011-authors.pdf"]] [1:38:12][Consider that we want a simpler approach, e.g. the point light propagation model] [1:44:01][Blackboard: Lighting Process Proposal] [1:49:23][Q&A][:speech] [1:50:21][@mtsmox][Don't we already need acceleration, because the lookups for the closest traversable are already "slow"?] [1:50:42][Blackboard: Closest Point Query vs Line Query] [1:54:37][Blackboard: Ray tracing through a grid] [1:56:55][@jura_z][Why not use signed \[sic\] distance fields? Best for line queries. (Sorry, a bit of context, just joined your stream)] [1:58:08][Blackboard: Signed distance field] [2:01:42][@jura_z][k-d tree?] [2:02:35][@kim_jorgensen][Shouldn't we get the frame rate to a reasonable range before adding more complexity (lighting)? How do we know our budget?] [2:03:03][Run the game in release, to check out the frame rate] [2:03:50][@jim0_o][Are there (obvious) visual differences in these different lighting methods?] [2:04:42][@vaualbus][On top of this, how we will manage shadows? Is that another big problem to solve?] [2:05:35][@illumi25][Do you know if your broadcasts have inspired improvements in "popular" game engines out there?] [2:08:43][@vaualbus][So all of this is still not a physically based rendering renderer? So almost all the time light is pre-calculated at asset creation?] [2:12:40][@kim_jorgensen][Really slow on my old PC in debug mode. But it was more how do we know our budget?] [2:15:56][Wind it down][:speech] [/video]