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