37 lines
3.0 KiB
Plaintext
37 lines
3.0 KiB
Plaintext
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Returning to Work on Z Layers" vod_platform=youtube id=PYdOZ_r9RLw annotator=Miblo]
|
|
[0:11][Recap and set the stage for the day]
|
|
[2:08][handmade_world_mode.cpp: Make AddStandardRoom() generate multiple layers, run the game and see how wrong the sorting is]
|
|
[3:24][A few words of encouragement on exploratory programming and embracing the forward flow of the architecture]
|
|
[5:36][handmade_entity.cpp: Make UpdateAndRenderEntities() work as it did before the work on the sorting, run the game and see how it looks]
|
|
[8:37][Blackboard: Z Slices and Two Separate Conceptualisations of What it Means to be Up]
|
|
[11:29][Blackboard: Layered Alpha Blending]
|
|
[17:57][Blackboard: Solving this Problem]
|
|
[19:34][Blackboard: Render Buffers]
|
|
[21:32][Blackboard: Back of the envelope calculation on the potential Graphics Memory available to us]
|
|
[24:13][Blackboard: Back of the envelope calculation on the potential Memory Bandwidth available to us]
|
|
[29:21][Consider how to proceed]
|
|
[30:18][handmade_entity.cpp: Introduce a TestAlpha in UpdateAndRenderEntities()]
|
|
[34:01][Run the game and see what happens]
|
|
[34:46][Debugger: Break into UpdateAndRenderEntities() and inspect the fade values]
|
|
[40:05][handmade_entity.cpp: Tweak the FadeTopEndZ and FadeTopStartZ values in UpdateAndRenderEntities(), and again break into it]
|
|
[42:27][handmade_opengl.cpp: Pass Entry->PremulColor.a to the rectangle drawing glColor4f() call in OpenGLRenderCommands()]
|
|
[43:49]["So I'm going to go work this out on the blackboard and figure out if I'm just... uh... on crack"][quote 523]
|
|
[45:14][handmade_entity.cpp: Subtract WorldMode->CameraOffset.z from the CameraRelativeGroundZ computation in UpdateAndRenderEntities()]
|
|
[45:42][Run the game and see that we're fine again]
|
|
[47:00][Blackboard: What RecanonicalizeCoord is doing]
|
|
[49:31][Blackboard: Offsetting Z]
|
|
[51:01][handmade_world_mode.cpp: Make ChunkPositionFromTilePosition() Offset the entities' Z downwards]
|
|
[53:12][handmade_world_mode.cpp: Make ChunkPositionFromTilePosition() compute TileDepthInMeters differently]
|
|
[54:20][Debugger: Break into ChunkPositionFromTilePosition() and inspect the offset values]
|
|
[57:38][Debugger: Break into ConvertToLayerRelative() and inspect the Z values]
|
|
[59:50][handmade_entity.cpp: Provisionally compute the relative layer we want for the entities]
|
|
[1:02:06][Q&A]
|
|
[1:03:47][@insobot][Um. Because undefined behavior?]
|
|
[1:04:30][@telepathyy][What keyboard do you have?]
|
|
[1:05:40]["Like putting your finger in a cloud"][quote 506]
|
|
[1:06:00][@bestofluck][Do you expect that the final game will contain enough sprites to warrant using a texture atlas to reduce the number of texture binds per frame?]
|
|
[1:08:33][@khorm][I don't understand why the "base" Z value of each floor would be negative, it seems really contrived. It seems very logical to me to have 0 as as the "bottom". Maybe it has to do with rendering? I have not followed the latest shows]
|
|
[1:09:50][Blackboard: Canonical Point for a Chunk]
|
|
[1:13:22][Wrap it up]
|
|
[/video]
|