34 lines
2.5 KiB
Plaintext
34 lines
2.5 KiB
Plaintext
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Confirming No Total Ordering" vod_platform=youtube id=DH_QepPBeaI annotator=Miblo]
|
|
[1:15][handmade_render_group.cpp: Correctly compute the SpriteBound values in GetBoundFor()]
|
|
[2:23][Recap and set the stage for the day]
|
|
[6:42][handmade_render_group.cpp: Enable SortEntries() to do a total ordering check]
|
|
[12:14][Run the game, try doing the new check and hit our Assertion]
|
|
[12:46][Debugger: Inspect the SortKey values for EntryA and EntryB]
|
|
[15:28][handmade_sort.cpp: Temporarily change the Assert in SortEntries() to a BreakHere, and count the SortErrors]
|
|
[17:22][Debugger: Break into SortEntries() to see how many sort errors there were]
|
|
[18:13][Blackboard: Sort Partial Ordering Problem]
|
|
[20:43][Blackboard: Turning our Partial Ordering into a Total Ordering]
|
|
[24:00][handmade_sort.cpp: Consider making IsInFrontOf() sort by distance from the camera]
|
|
[26:20][Blackboard: Sorting by distance from the camera]
|
|
[29:43][Blackboard: Orthographic camera]
|
|
[32:55][Blackboard: Will taking the topmost point of cards be sufficient?]
|
|
[35:25][handmade_sort.cpp: Introduce BuildSpriteGraph()]
|
|
[40:50][Blackboard: Graph Theory]
|
|
[43:14][Blackboard: Directed Graph]
|
|
[44:27][Blackboard: Directed Acyclic Graph]
|
|
[46:43][handmade_sort.cpp: Continue implementing BuildSpriteGraph()]
|
|
[49:45][handmade_math.h: Introduce a version of RectanglesIntersect() that takes rectangle2]
|
|
[52:31][handmade_sort.cpp: Consider partitioning the screen in order to build this graph and potentially using the Z-buffer]
|
|
[55:40][handmade_sort.cpp: Consider leveraging the screen partitioning in order to optimise the software renderer]
|
|
[56:15][Q&A][:speech]
|
|
[57:03][@roam00010011][How much more work would you have to do to get a full 3D sorting?]
|
|
[58:47][@roam00010011][I mean, use fake 3D data, since our cards are essentially flat, we can give an epsilon width to it for the sorting]
|
|
[59:15][Blackboard: Sorting 3D objects]
|
|
[1:02:38][Blackboard: Sorting all entities in a linear total ordering]
|
|
[1:10:55][Blackboard: Common problematic cases in Handmade Hero]
|
|
[1:14:23][@insofaras][Sorry if this was already answered, but what was the issue with a "return a_z != b_z ? a_z - b_z \: a_y - b_y" style total ordering?]
|
|
[1:14:41][Blackboard: The problem with sorting heroes behind walls on rugs on tiles]
|
|
[1:19:02][@insofaras][Would the Y then Z sort work if Z is quantized to room layers, and sprites are split where they cross layers (and maybe the ground is special cased)?]
|
|
[1:20:10][Wind it down][:speech]
|
|
[/video]
|