Debugging Attachment Point Transforms
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:00Recap and set the stage for the day snapping cat heads onto bodies
🗩
0:00Recap and set the stage for the day snapping cat heads onto bodies
🗩
0:00Recap and set the stage for the day snapping cat heads onto bodies
🗩
0:50Showcase the asset editing UI, with thoughts on scaling asset pieces
🏃
0:50Showcase the asset editing UI, with thoughts on scaling asset pieces
🏃
0:50Showcase the asset editing UI, with thoughts on scaling asset pieces
🏃
5:24Storing and transforming alignment points of entities on-demand
🗩
5:24Storing and transforming alignment points of entities on-demand
🗩
5:24Storing and transforming alignment points of entities on-demand
🗩
8:26Make UpdateAndRenderEntities() store PieceX, PieceY and PieceP as the basis in which we interpret alignment points
8:26Make UpdateAndRenderEntities() store PieceX, PieceY and PieceP as the basis in which we interpret alignment points
8:26Make UpdateAndRenderEntities() store PieceX, PieceY and PieceP as the basis in which we interpret alignment points
9:43Set up to break out PushBitmap() into utility functions that provide alignment information for our snapping procedure to use
📖
9:43Set up to break out PushBitmap() into utility functions that provide alignment information for our snapping procedure to use
📖
9:43Set up to break out PushBitmap() into utility functions that provide alignment information for our snapping procedure to use
📖
11:11Note the imprecision of our 2D sprite vs 3D geometry picking
🏃
11:11Note the imprecision of our 2D sprite vs 3D geometry picking
🏃
11:11Note the imprecision of our 2D sprite vs 3D geometry picking
🏃
12:36Prepare to split up PushBitmap() and PushQuad()
📖
12:36Prepare to split up PushBitmap() and PushQuad()
📖
12:36Prepare to split up PushBitmap() and PushQuad()
📖
19:49Create handmade_renderer_geometry.cpp and .h, introducing WriteQuad() based on PushQuad()
19:49Create handmade_renderer_geometry.cpp and .h, introducing WriteQuad() based on PushQuad()
19:49Create handmade_renderer_geometry.cpp and .h, introducing WriteQuad() based on PushQuad()
28:29Introduce sprite_values and accompanying functions
28:29Introduce sprite_values and accompanying functions
28:29Introduce sprite_values and accompanying functions
35:15Implement PFromAlignP() and SpriteValuesForUpright() based on GetBitmapDim() and PushBitmap(), introducing SpriteDimFromWorldHeight()
35:15Implement PFromAlignP() and SpriteValuesForUpright() based on GetBitmapDim() and PushBitmap(), introducing SpriteDimFromWorldHeight()
35:15Implement PFromAlignP() and SpriteValuesForUpright() based on GetBitmapDim() and PushBitmap(), introducing SpriteDimFromWorldHeight()
42:46Introduce SpriteDimFromWorldHeight(), with a few words on extracting pieces of code into their own functions to be called in whatever combination necessary
42:46Introduce SpriteDimFromWorldHeight(), with a few words on extracting pieces of code into their own functions to be called in whatever combination necessary
42:46Introduce SpriteDimFromWorldHeight(), with a few words on extracting pieces of code into their own functions to be called in whatever combination necessary
45:04Reimplement SpriteValuesForUpright() based on PushUpright()
45:04Reimplement SpriteValuesForUpright() based on PushUpright()
45:04Reimplement SpriteValuesForUpright() based on PushUpright()
48:37Consider the problem of computing the Z-Bias of rotating sprites
🗩
48:37Consider the problem of computing the Z-Bias of rotating sprites
🗩
48:37Consider the problem of computing the Z-Bias of rotating sprites
🗩
50:24Add a fourth dimension to the sprite_values axes
50:24Add a fourth dimension to the sprite_values axes
50:24Add a fourth dimension to the sprite_values axes
52:18Z-Bias of Rotated Sprites
🖌
52:18Z-Bias of Rotated Sprites
🖌
52:18Z-Bias of Rotated Sprites
🖌
54:12Z-biasing sprites, respecting their suggested depth (i.e. ones whose lowermost point in Z is some way in from their bottom edge)
🖌
54:12Z-biasing sprites, respecting their suggested depth (i.e. ones whose lowermost point in Z is some way in from their bottom edge)
🖌
54:12Z-biasing sprites, respecting their suggested depth (i.e. ones whose lowermost point in Z is some way in from their bottom edge)
🖌
1:01:02The mathematics of correct 2D sprite Z-biasing along the camera vector
🖌
1:01:02The mathematics of correct 2D sprite Z-biasing along the camera vector
🖌
1:01:02The mathematics of correct 2D sprite Z-biasing along the camera vector
🖌
1:11:29Consider rolling the Z-bias projection from CompileZBiasProgram() into the vertex shader
📖
1:11:29Consider rolling the Z-bias projection from CompileZBiasProgram() into the vertex shader
📖
1:11:29Consider rolling the Z-bias projection from CompileZBiasProgram() into the vertex shader
📖
1:12:41Constructing the Z-bias projection inside the vertex shader
🖌
1:12:41Constructing the Z-bias projection inside the vertex shader
🖌
1:12:41Constructing the Z-bias projection inside the vertex shader
🖌
1:16:31Simply sliding sprites forwards along the tile to simulate Z-alignment
🖌
1:16:31Simply sliding sprites forwards along the tile to simulate Z-alignment
🖌
1:16:31Simply sliding sprites forwards along the tile to simulate Z-alignment
🖌
1:19:30Continue to implement SpriteValuesForUpright(), postponing our Z-bias story for now
1:19:30Continue to implement SpriteValuesForUpright(), postponing our Z-bias story for now
1:19:30Continue to implement SpriteValuesForUpright(), postponing our Z-bias story for now
1:29:38Make UpdateAndRenderEntities() use our new geometric rendering functions
1:29:38Make UpdateAndRenderEntities() use our new geometric rendering functions
1:29:38Make UpdateAndRenderEntities() use our new geometric rendering functions
1:32:42Run the game to see everything rendering as before
🏃
1:32:42Run the game to see everything rendering as before
🏃
1:32:42Run the game to see everything rendering as before
🏃
1:32:55Prevent PushSprite() from taking a Size and instead take scaled axes
1:32:55Prevent PushSprite() from taking a Size and instead take scaled axes
1:32:55Prevent PushSprite() from taking a Size and instead take scaled axes
1:40:23See that the UI all looks fine
🏃
1:40:23See that the UI all looks fine
🏃
1:40:23See that the UI all looks fine
🏃
1:40:43Change UpdateAndRenderEntities() to use PushSprite() rather than PushBitmap()
1:40:43Change UpdateAndRenderEntities() to use PushSprite() rather than PushBitmap()
1:40:43Change UpdateAndRenderEntities() to use PushSprite() rather than PushBitmap()
1:42:24Find that our sprites are misplaced
🏃
1:42:24Find that our sprites are misplaced
🏃
1:42:24Find that our sprites are misplaced
🏃
1:43:01Investigate our sprite alignment bug
📖
1:43:01Investigate our sprite alignment bug
📖
1:43:01Investigate our sprite alignment bug
📖
1:46:36Fix the MinP computation in SpriteValuesForUpright()
1:46:36Fix the MinP computation in SpriteValuesForUpright()
1:46:36Fix the MinP computation in SpriteValuesForUpright()
1:46:58Find that our sprite placement is much better, pointing out our Z-bias problem
🏃
1:46:58Find that our sprite placement is much better, pointing out our Z-bias problem
🏃
1:46:58Find that our sprite placement is much better, pointing out our Z-bias problem
🏃
1:47:48Decrease the pitch of our camera in UpdateAndRenderWorld()
1:47:48Decrease the pitch of our camera in UpdateAndRenderWorld()
1:47:48Decrease the pitch of our camera in UpdateAndRenderWorld()
1:49:28Traverse the world with our lower pitched camera, to find that it doesn't correctly interpolate between rooms
🏃
1:49:28Traverse the world with our lower pitched camera, to find that it doesn't correctly interpolate between rooms
🏃
1:49:28Traverse the world with our lower pitched camera, to find that it doesn't correctly interpolate between rooms
🏃
1:51:31Increase our camera's Z-offset from the room in GetCameraOffsetZForDim()
1:51:31Increase our camera's Z-offset from the room in GetCameraOffsetZForDim()
1:51:31Increase our camera's Z-offset from the room in GetCameraOffsetZForDim()
1:53:51Speed up our build by commenting out some compilation lines
1:53:51Speed up our build by commenting out some compilation lines
1:53:51Speed up our build by commenting out some compilation lines
1:54:38Traverse the world, with our room interpolation working again, but not the lighting region
🏃
1:54:38Traverse the world, with our room interpolation working again, but not the lighting region
🏃
1:54:38Traverse the world, with our room interpolation working again, but not the lighting region
🏃
1:56:57Set up to implement sprite snapping
🏃
1:56:57Set up to implement sprite snapping
🏃
1:56:57Set up to implement sprite snapping
🏃
1:58:16Make UpdateAndRenderEntities() snap sprites together based on alignment points set in the UI, introducing FindAlign()
1:58:16Make UpdateAndRenderEntities() snap sprites together based on alignment points set in the UI, introducing FindAlign()
1:58:16Make UpdateAndRenderEntities() snap sprites together based on alignment points set in the UI, introducing FindAlign()
2:09:06Run the game to find that our cat hero's body oscillates between two locations
🏃
2:09:06Run the game to find that our cat hero's body oscillates between two locations
🏃
2:09:06Run the game to find that our cat hero's body oscillates between two locations
🏃
2:09:30Enable UpdateAndRenderEntities() to handle snapping of pieces with no parent alignment point
2:09:30Enable UpdateAndRenderEntities() to handle snapping of pieces with no parent alignment point
2:09:30Enable UpdateAndRenderEntities() to handle snapping of pieces with no parent alignment point
2:12:27Find that our cat hero's body now correctly stays still
🏃
2:12:27Find that our cat hero's body now correctly stays still
🏃
2:12:27Find that our cat hero's body now correctly stays still
🏃
2:12:43Investigate our alignment issue in UpdateAndRenderEntities()
📖
2:12:43Investigate our alignment issue in UpdateAndRenderEntities()
📖
2:12:43Investigate our alignment issue in UpdateAndRenderEntities()
📖
2:15:11Make AddCat() connect the Body piece to the world, introducing ConnectPieceToWorld()
2:15:11Make AddCat() connect the Body piece to the world, introducing ConnectPieceToWorld()
2:15:11Make AddCat() connect the Body piece to the world, introducing ConnectPieceToWorld()
2:20:48Step through UpdateAndRenderEntities() and inspect the bitmap pieces of our cat
🏃
2:20:48Step through UpdateAndRenderEntities() and inspect the bitmap pieces of our cat
🏃
2:20:48Step through UpdateAndRenderEntities() and inspect the bitmap pieces of our cat
🏃
2:24:00Realise that the cat (not the cat hero) is showing up
🏃
2:24:00Realise that the cat (not the cat hero) is showing up
🏃
2:24:00Realise that the cat (not the cat hero) is showing up
🏃
2:25:38Try snapping the regular cat's head to its body successfully, again noting our Z-bias problem
🏃
2:25:38Try snapping the regular cat's head to its body successfully, again noting our Z-bias problem
🏃
2:25:38Try snapping the regular cat's head to its body successfully, again noting our Z-bias problem
🏃
2:28:17Q&A
🗩
2:28:17Q&A
🗩
2:28:17Q&A
🗩
2:30:05xxthebigfoxx Q: Do you know anything about the state of the series Bitwise? We haven't heard anything from Per in the last two months
🗪
2:30:05xxthebigfoxx Q: Do you know anything about the state of the series Bitwise? We haven't heard anything from Per in the last two months
🗪
2:30:05xxthebigfoxx Q: Do you know anything about the state of the series Bitwise? We haven't heard anything from Per in the last two months
🗪
2:30:39morglod Q: Why not render with the projection matrix + WM matrices to position?
🗪
2:30:39morglod Q: Why not render with the projection matrix + WM matrices to position?
🗪
2:30:39morglod Q: Why not render with the projection matrix + WM matrices to position?
🗪
2:31:42centhusiast Q: Is wait-free multithreading as difficult as lock-free multithreading?1
🗪
2:31:42centhusiast Q: Is wait-free multithreading as difficult as lock-free multithreading?1
🗪
2:31:42centhusiast Q: Is wait-free multithreading as difficult as lock-free multithreading?1
🗪
2:37:41morglod Q: Why not render sprites with the projection matrix resetting its rotation (facing) towards camera?
🗪
2:37:41morglod Q: Why not render sprites with the projection matrix resetting its rotation (facing) towards camera?
🗪
2:37:41morglod Q: Why not render sprites with the projection matrix resetting its rotation (facing) towards camera?
🗪
2:38:45Demo the sprite Z-biasing
🏃
2:38:45Demo the sprite Z-biasing
🏃
2:38:45Demo the sprite Z-biasing
🏃
2:41:25pythno Q: Can you explain again briefly how you might want to solve the problem of sprites penetrating the ground? Maybe the sprites have to be at a lower angle to the floor so they won't intersect that easily and distort the texture so it looks correct again?
🗪
2:41:25pythno Q: Can you explain again briefly how you might want to solve the problem of sprites penetrating the ground? Maybe the sprites have to be at a lower angle to the floor so they won't intersect that easily and distort the texture so it looks correct again?
🗪
2:41:25pythno Q: Can you explain again briefly how you might want to solve the problem of sprites penetrating the ground? Maybe the sprites have to be at a lower angle to the floor so they won't intersect that easily and distort the texture so it looks correct again?
🗪
2:42:11techzone707 Q: Have you read Communicating Sequential Processes by Tony Hoare?2
🗪
2:42:11techzone707 Q: Have you read Communicating Sequential Processes by Tony Hoare?2
🗪
2:42:11techzone707 Q: Have you read Communicating Sequential Processes by Tony Hoare?2
🗪
2:42:15garryjohanson Q: Would you mind posting that multithreading paper3 in chat?
🗪
2:42:15garryjohanson Q: Would you mind posting that multithreading paper3 in chat?
🗪
2:42:15garryjohanson Q: Would you mind posting that multithreading paper3 in chat?
🗪
2:42:50omfgcookies Q: Are you planning on allowing camera rotation in the final game? You could reface after certain angles so it still gives you some of what you want
🗪
2:42:50omfgcookies Q: Are you planning on allowing camera rotation in the final game? You could reface after certain angles so it still gives you some of what you want
🗪
2:42:50omfgcookies Q: Are you planning on allowing camera rotation in the final game? You could reface after certain angles so it still gives you some of what you want
🗪
2:43:49Close it up
🗩
2:43:49Close it up
🗩
2:43:49Close it up
🗩