[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]
