cinera_handmade.network/cmuratori/hero/code/code413.hmml

105 lines
8.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Encoding Light Values" vod_platform=youtube id=g3VG1H-CBGU annotator=Miblo]
[0:03][Address Patreon's proposed fee change of December 2017[ref
site=Patreon
page="Patreon Implosion"
url=https://www.patreon.com/posts/patreon-15786847]][:speech]
[2:31][Plug the Annotated Episode Guide,[ref
site="Handmade Hero"
page="Annotated Episode Guide"
url=https://hero.handmade.network/episode/code] Handmade Network[ref
site="Handmade Network"
url=https://hero.handmade.network/] - began by @abnercoimbre, @ChronalDragon and @Kelimion - @mr4thdimension's ~4coder and @serge_rgb's ~milton][:speech]
[5:12][Continue to address Patreon's fee change[ref
site=Patreon
page="Patreon Implosion"
url=https://www.patreon.com/posts/patreon-15786847]][:speech]
[17:47][Mention the chair, a SPACE Seating Professional AirGrid Dark Back and Padded Black Eco Leather Seat…[ref
site=Amazon
page="SPACE Seating Professional AirGrid Dark Back and Padded Black Eco Leather Seat, 2-to-1 Synchro Tilt Control, Adjustable Arms and Tilt Tension with Nylon Base Managers Chair"
url=https://www.amazon.com/Seating-Professional-AirGrid-Adjustable-Managers/dp/B000PWGZOI]][:trivia]
[21:14][Segue out of the preamble][:speech]
[22:08][:Run the game to see our current :lighting solution][:rendering]
[26:16][Make CompileZBiasProgram() clamp the DirFalloff][:hardware :lighting :rendering]
[28:07][:Run the game to see dramatically different :lighting results][:rendering]
[29:14][Prevent RayCast() from tinting the light grey][:lighting :rendering]
[29:51][:Run the game and consider that the ray caster is wrong][:lighting :rendering]
[31:11][TODO(casey): Need a skylight method that works with our propagation]
[32:37][Mention the office espresso machine][:trivia]
[34:01][Read through RayCast()][:lighting :rendering :research]
[35:50][Wax lyrical on ~milton and its creator @serge_rgb][:speech]
[36:33][Raycast Debugging][:blackboard :lighting :rendering]
[43:43][Explain RayCast() complete with :blackboard illustrations][:lighting :rendering]
[54:09][Consider what may be going wrong in RayCast()][:lighting :rendering :research]
[56:22][How GatherFinalLighting() may be incorrectly generating uniform samples without a hemisphere][:blackboard :lighting :rendering]
[59:20][:Run the game to see light sailing out of the back of geometry]
[1:00:00][Introduce SampleHemisphere()][:lighting :rendering]
[1:01:32][:Run the game to see the same :lighting results][:rendering]
[1:02:04][Consider how to improve SampleHemisphere(), preventing the back-face problem][:blackboard :lighting :rendering]
[1:06:27][Halve the range of normals that SampleHemisphere() will produce][:lighting :rendering]
[1:06:47][:Run the game to see light still emanating from back faces][:lighting :rendering]
[1:08:18][Increase light intensity][:lighting :rendering]
[1:09:10][:Run the game to see that we must be capping the maximum light brightness][:lighting :rendering]
[1:11:07][Consider how better to encode the :lighting][:lighting :rendering]
[1:13:42][Introduce the notion of LightPower in OutputLightingTextures()][:lighting :rendering]
[1:16:39][Enable CompileZBiasProgram() to handle LightPower][:hardware :lighting :rendering]
[1:18:14][:Run the game to see that we didn't do that correctly][:lighting :rendering]
[1:18:50][Make OutputLightingTextures() use the Element to compute the LightColor][:lighting :rendering]
[1:19:26][:Run the game to see our much more powerful light and the back-face leakage][:lighting :rendering]
[1:22:52][Assert in SampleHemisphere() that we never sample from behind the hemisphere][:lighting :rendering]
[1:23:18][:Run the game and do not hit that assertion]
[1:23:23][Enable OutputTextureDebug() to correctly interpret the :lighting alpha values][:"debug visualisation" :rendering]
[1:25:28][:Run the game to see that our :lighting samples are heavily red][:lighting :rendering]
[1:26:19][Increase the voxel resolution][:lighting :rendering]
[1:26:43][:Run the game to see different artifacts][:lighting :rendering]
[1:27:40][Temporarily try to make RayCast() collide against back faces][:lighting :rendering]
[1:28:11][:Run the game to see different light leakage][:lighting :rendering]
[1:30:22][Toggle OutputLighting() over to OutputLightingQuads()][:"debug visualisation" :lighting :rendering]
[1:30:57][:Run the game to see the lit quads, noting that we have a double-counting problem][:"debug visualisation" :lighting :rendering]
[1:32:41][Add LightingDisabled to game_render_settings and enable CompileZBiasProgram() to honour this setting][:"debug visualisation" :hardware :lighting :rendering]
[1:35:17][Add a LightingDisabled switch to GameUpdateAndRender()][:"debug visualisation" :"debug system"]
[1:35:50][:Run the game and unsuccessfully toggle LightingDisabled][:"debug visualisation" :lighting :rendering]
[1:36:27][Introduce MemoryIsEqual()][:memory]
[1:39:09][:Run the game and successfully toggle LightingDisabled][:"debug visualisation" :lighting :rendering]
[1:40:08][Introduce DecodePower()][:lighting :rendering]
[1:43:07][:Run the game and take a look at the :lighting][:"debug visualisation" :rendering]
[1:43:45][Reduce the light power and :run the game to see hot :lighting][:"debug visualisation" :programming :rendering]
[1:45:10][Consider enabling us to dynamically set the :Lighting Iteration Count][:rendering :speech]
[1:46:34][:Run the game to confirm the presence of Iteration Count in the :"debug system" :ui]
[1:47:35][Provide the ability to set the :Lighting Iteration Count dynamically][:"debug system" :rendering]
[1:48:23][:Run the game and try increasing the :lighting iteration count][:"debug visualisation" :rendering]
[1:50:56][Consider the future of :lighting][:rendering :speech]
[1:52:00][Q&A][:speech]
[1:52:40][@flyingsolomon][Q: Don't forget that you can now indent your shaders (if you updated ~4coder)]
[1:53:21][@jojomunki][Q: Could the raycasting be bouncing off the bounds of the scene?][:lighting :rendering]
[1:53:41][@dragoonx6][SpeedCrunch[ref
site=SpeedCrunch
url=http://www.speedcrunch.org/] for a great replacement of wincalc]
[1:54:45][@deepbluev7][Q: Could Liberapay[ref
site=Liberapay
url=https://liberapay.com/about/] be a replacement for Patreon? It's nonprofit and payed for by donations to its own Liberapay account]
[1:57:40][@ieee754][Q: Just hopped into the stream, are you working on a global illumination approach specific for 2.5D?[ref
site="Unreal Engine"
page="Enlighten: Real-Time Global Illumination in Unreal Engine 4"
url=https://www.unrealengine.com/en-US/showcase/enlighten-real-time-global-illumination-in-unreal-engine-4]][:lighting :rendering]
[2:00:54][@quickshift_][Q: I'm out of the loop. What's up with Patreon?[ref
site="The Patreon Blog"
page="Were Updating Patreons Fee Structure. Heres Why"
url=https://blog.patreon.com/updating-patreons-fee-structure/]]
[2:21:10][@deravadom][Q: I've been having a lot of trouble staying motivated / inspired for new projects. Do you have any tips on how to take an idea and actually bring it fully into existence?]
[2:25:22][@printf_armin][Q: Did you get depends to work (the new version)]
[2:25:35][@stav_5][I'm fairly new to the series (only on Day 013) do you recommend coding along with the series? I personally like to just watch and learn rather than copying everything you type, but I don't know]
[2:26:37][@ieee754][Q: Have you considered applying for twitch partner? (I would subscribe)]
[2:27:21][@dragoonx6][Q: Consider getting a bitcoin, litecoin, and ethereum wallet, it's an easy way for people to donate. It's hard to get your money out of it, though, but I think it could be worth it]
[2:28:26][@kelimion][Blog post about Patreon onboarding[ref
site="Brian Balfour"
page="Inside the 6 Hypotheses that Doubled Patreons Activation Success"
url=https://brianbalfour.com/essays/patreon-onboarding-growth]][:research]
[2:33:43][][:speech][quote 605]
[2:34:24][Continue to address the blog post[ref
site="Brian Balfour"
page="Inside the 6 Hypotheses that Doubled Patreons Activation Success"
url=https://brianbalfour.com/essays/patreon-onboarding-growth]][:research]
[2:41:13][@dragoonx6][Q: What do you think of git lfs, or any other git large asset plugins over centralized source control such as svn or perforce? I've been taking a look and for free (as in pay) solution I actually came to mercurial with its large asset plugin. What do you recommend?][:vcs]
[2:45:02][Wrap it up][:speech]
[/video]