[video output=day576 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code medium=research title="Octahedral Encoding" vod_platform=youtube id=CUboglhuTDw annotator=Miblo] [0:04][Recap our generalised :"hot reloading" and set the stage for the day][:speech] [2:43][Set up to recompile shaders when reloading the renderer][:"hot reloading"] [4:33][Augment game_render_settings with Version, for WinMainCRTStartup() to increment and trigger shader recompilation][:"hot reloading" :programming] [9:51][:Run the game] [10:09][Toggle off / on PushDebugBox() and watch it hot reload][:"hot reloading" :programming :run] [10:39][Make CompileZBiasProgram() hard set the SurfaceReflect.r to 1.0][:programming :rendering] [11:15][See the shader recompilation take effect][:"hot reloading" :rendering :run] [11:22][Revert CompileZBiasProgram() to set the correct SurfaceReflect.r and see it hot reload][:"hot reloading" :programming :rendering :run] [12:14][Decide against flood filling the :lighting voxel][:performance :speech] [15:57][Spherical Harmonics[ref site="Research Gate" page="3-D shape of Spherical Harmonic basis functions" url=https://www.researchgate.net/profile/Kunihiro_Chihara/publication/224165074/figure/fig2/AS:302560503189516@1449147453437/3-D-shape-of-Spherical-Harmonic-basis-functions.png]][:lighting] [21:26][A few words on DuckDuckGo's[ref site=DuckDuckGo url=https://duckduckgo.com/] technical searches] [22:14][Research Spherical Harmonics truncation][:lighting] [25:59][Consult Peter-Pike Sloan's 'Efficient Spherical Harmonic Evaluation'[ref author="Peter-Pike Sloan" title="Efficient Spherical Harmonic Evaluation" publisher="NVIDIA Corporation" url=https://ppsloan.org/publications/SHJCGT.pdf]][:lighting] [31:43]["Reconstruction of a HDR light probe into order 1 to 6 Spherical Harmonics"[ref author="Peter-Pike Sloan" title="Efficient Spherical Harmonic Evaluation" publisher="NVIDIA Corporation" url=https://ppsloan.org/publications/SHJCGT.pdf]][:lighting] [35:55][Consult 'Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields'[ref title="Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields" author="Jean-Philippe Guertin, Derek Nowrouzezahrai, Morgan McGuire" url=http://jcgt.org/published/0008/02/01/]][:lighting] [41:50][Consult the Code and Video supplement of 'Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields'[ref title="Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields: Code and Video (589.8 MiB)" author="Jean-Philippe Guertin, Derek Nowrouzezahrai, Morgan McGuire" url=http://jcgt.org/published/0008/02/01/supplement.zip]][:lighting] [54:20][Consult 'Survey of Efficient Representations for Independent Unit Vectors'[ref title="Survey of Efficient Representations for Independent Unit Vectors" author="Zina H. Cigolle, Sam Donow, Daniel Evangelakos, Michael Mara, Morgan McGuire, Quirin Meyer" url=http://jcgt.org/published/0003/02/01/] with octahedral.glsl from the Code and Video supplement of 'Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields'[ref title="Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields: Code and Video (589.8 MiB)" author="Jean-Philippe Guertin, Derek Nowrouzezahrai, Morgan McGuire" url=http://jcgt.org/published/0008/02/01/supplement.zip]][:lighting] [1:06:47][Admire Octahedral Encoding[ref title="Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields: Code and Video (589.8 MiB)" author="Jean-Philippe Guertin, Derek Nowrouzezahrai, Morgan McGuire" url=http://jcgt.org/published/0008/02/01/supplement.zip]][:lighting] [1:09:03][Consider the cage building part of Octahedral Encoding[ref title="Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields" author="Jean-Philippe Guertin, Derek Nowrouzezahrai, Morgan McGuire" url=http://jcgt.org/published/0008/02/01/]][:lighting] [1:12:46][Consider edge-wrapping in Octahedral Encoding, using an atlas rather than a texture array[ref title="Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields" author="Jean-Philippe Guertin, Derek Nowrouzezahrai, Morgan McGuire" url=http://jcgt.org/published/0008/02/01/]][:lighting] [1:16:06][Octahedral Encoding: Wrapped :Sampling][:blackboard :lighting] [1:19:55][@somebody_took_my_name][It is flipped][:lighting] [1:20:23][Octahedral Encoding: Edge Orientation][:blackboard :lighting] [1:22:55][Research the wrapping modes of glTexParameter[ref site="docs.GL" page="glTexParameter" url=http://docs.gl/gl3/glTexParameter]] [1:24:31][Research Cage :Sampling in Octahedral Encoding[ref title="Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields" author="Jean-Philippe Guertin, Derek Nowrouzezahrai, Morgan McGuire" url=http://jcgt.org/published/0008/02/01/]][:lighting] [1:29:08][Q&A][:speech] [1:30:14][@grabix][Q: What is tomorrow?] [1:30:48][@euphius][Q: Are you preferring Chrome over Firefox? And if yes, what's the reason?] [1:31:13][@jakejscott][Question: You mentioned on Twitter you were building a Learn to Program course.[ref author="Casey Muratori" publisher="Twitter" title="BETA TESTERS WANTED: I am looking for some folks who want to learn C and low-level programming to test a new course I am working on. Please e-mail business@mollyrocket.com if you are interested." url=https://twitter.com/cmuratori/status/1218640096913543169] Can you tell us more about it?] [1:33:00][@tmellemseter][Q: How has the sparse :"entity system" been? Has there been any drastic modification to it?] [1:34:00][@reductum][Q: You can include the string "!g" in a DuckDuckGo[ref site=DuckDuckGo url=https://duckduckgo.com/] query to get google search results] [1:34:56][@filiadelski][Q: There are some Spherical Harmonics implementations on shadertoy.com[ref site=ShaderToy url=https://www.shadertoy.com/] you could look at. Don't know if something like this helps][:lighting] [1:35:51][@grabix][Q: So what is entity cache?][:"entity system"] [1:37:41][@filiadelski][Q: Basically cache tables?[ref site="The ryg blog" page="Cache tables" url=https://fgiesen.wordpress.com/2019/02/11/cache-tables/]] [1:38:55][Google[ref site=Google url=https://google.com/] vs DuckDuckGo[ref site=DuckDuckGo url=https://duckduckgo.com/]] [1:43:52][Get some lunch][:speech] [/video]