Applying Asset Types and Tags to Imported PNGs
?
?

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 plumbing in the asset loading
🗩
0:00Recap and set the stage for the day plumbing in the asset loading
🗩
0:00Recap and set the stage for the day plumbing in the asset loading
🗩
1:05Review CheckForArtChanges() in terms of over-imported asset avoidance
📖
1:05Review CheckForArtChanges() in terms of over-imported asset avoidance
📖
1:05Review CheckForArtChanges() in terms of over-imported asset avoidance
📖
3:32Review WriteModificationsToHHA() with the determination to extract information from, and tag, assets
📖
3:32Review WriteModificationsToHHA() with the determination to extract information from, and tag, assets
📖
3:32Review WriteModificationsToHHA() with the determination to extract information from, and tag, assets
📖
4:36Enable WriteModificationsToHHA() to insert assets into the .hha files
4:36Enable WriteModificationsToHHA() to insert assets into the .hha files
4:36Enable WriteModificationsToHHA() to insert assets into the .hha files
12:20Make WriteModificationsToHHA() tag assets with their existing tags
12:20Make WriteModificationsToHHA() tag assets with their existing tags
12:20Make WriteModificationsToHHA() tag assets with their existing tags
17:50Provide the option for the Win32OpenFile callback to conditionally open files with read or write access1
17:50Provide the option for the Win32OpenFile callback to conditionally open files with read or write access1
17:50Provide the option for the Win32OpenFile callback to conditionally open files with read or write access1
25:21Consider consolidating down the platform_api
🗩
25:21Consider consolidating down the platform_api
🗩
25:21Consider consolidating down the platform_api
🗩
28:22Make all necessary functions use our new Win32OpenFile options
28:22Make all necessary functions use our new Win32OpenFile options
28:22Make all necessary functions use our new Win32OpenFile options
29:43Run the game and determine to embark on the new tagging scheme
🏃
29:43Run the game and determine to embark on the new tagging scheme
🏃
29:43Run the game and determine to embark on the new tagging scheme
🏃
30:36Set up to assign tags to assets, introducing ReserveTag()
30:36Set up to assign tags to assets, introducing ReserveTag()
30:36Set up to assign tags to assets, introducing ReserveTag()
33:14Consider using the old school tags for now, with thoughts for the new tagging scheme
33:14Consider using the old school tags for now, with thoughts for the new tagging scheme
33:14Consider using the old school tags for now, with thoughts for the new tagging scheme
35:14Introduce the notion of an Asset_Hand, and begin by enabling CheckForArtChanges() to import just hands and append them to a dummy file
35:14Introduce the notion of an Asset_Hand, and begin by enabling CheckForArtChanges() to import just hands and append them to a dummy file
35:14Introduce the notion of an Asset_Hand, and begin by enabling CheckForArtChanges() to import just hands and append them to a dummy file
43:44Break in to CheckForArtChanges() to see that it skips because there's nowhere to append data
🏃
43:44Break in to CheckForArtChanges() to see that it skips because there's nowhere to append data
🏃
43:44Break in to CheckForArtChanges() to see that it skips because there's nowhere to append data
🏃
44:25Step in to GameUpdateAndRender() and note that the dtForFrame being a whopping 14 seconds is the cause of our camera bug
🏃
44:25Step in to GameUpdateAndRender() and note that the dtForFrame being a whopping 14 seconds is the cause of our camera bug
🏃
44:25Step in to GameUpdateAndRender() and note that the dtForFrame being a whopping 14 seconds is the cause of our camera bug
🏃
45:39Make GameUpdateAndRender() clamp the dtForFrame to relieve it of doing an excessive amount of updating after stalls
45:39Make GameUpdateAndRender() clamp the dtForFrame to relieve it of doing an excessive amount of updating after stalls
45:39Make GameUpdateAndRender() clamp the dtForFrame to relieve it of doing an excessive amount of updating after stalls
47:29Run the game to see that the simulation updates tractably after having been "stalled" by CheckForArtChanges()
🏃
47:29Run the game to see that the simulation updates tractably after having been "stalled" by CheckForArtChanges()
🏃
47:29Run the game to see that the simulation updates tractably after having been "stalled" by CheckForArtChanges()
🏃
48:28Consider the .hha file naming and creation scheme for newly imported assets
🗩
48:28Consider the .hha file naming and creation scheme for newly imported assets
🗩
48:28Consider the .hha file naming and creation scheme for newly imported assets
🗩
55:57Setup to conditionally create local.hha if we're in a HANDMADE_INTERNAL build
55:57Setup to conditionally create local.hha if we're in a HANDMADE_INTERNAL build
55:57Setup to conditionally create local.hha if we're in a HANDMADE_INTERNAL build
1:01:03Create hhaedit.cpp as a dedicated asset creation utility
1:01:03Create hhaedit.cpp as a dedicated asset creation utility
1:01:03Create hhaedit.cpp as a dedicated asset creation utility
1:06:56Note the ability to do magic values as strings enclosed in single-quotes
🗩
1:06:56Note the ability to do magic values as strings enclosed in single-quotes
🗩
1:06:56Note the ability to do magic values as strings enclosed in single-quotes
🗩
1:07:58Run hhaedit to see how it all works
🏃
1:07:58Run hhaedit to see how it all works
🏃
1:07:58Run hhaedit to see how it all works
🏃
1:08:36Run the game and hit the AssetCount mismatch assertion in AllocateGameAssets()
🏃
1:08:36Run the game and hit the AssetCount mismatch assertion in AllocateGameAssets()
🏃
1:08:36Run the game and hit the AssetCount mismatch assertion in AllocateGameAssets()
🏃
1:13:52Enable AllocateGameAssets() to handle TagCount and AssetCount of 0
1:13:52Enable AllocateGameAssets() to handle TagCount and AssetCount of 0
1:13:52Enable AllocateGameAssets() to handle TagCount and AssetCount of 0
1:14:56Step into CheckForArtChanges() and follow hand_skeleton.png down the import pipeline
🏃
1:14:56Step into CheckForArtChanges() and follow hand_skeleton.png down the import pipeline
🏃
1:14:56Step into CheckForArtChanges() and follow hand_skeleton.png down the import pipeline
🏃
1:20:49Step back through CheckForArtChanges() to see that we already have errors on entering Win32WriteDataToFile
🏃
1:20:49Step back through CheckForArtChanges() to see that we already have errors on entering Win32WriteDataToFile
🏃
1:20:49Step back through CheckForArtChanges() to see that we already have errors on entering Win32WriteDataToFile
🏃
1:23:47Make AllocateGameAssets() only read in an .hha file if the TagCount != 0
1:23:47Make AllocateGameAssets() only read in an .hha file if the TagCount != 0
1:23:47Make AllocateGameAssets() only read in an .hha file if the TagCount != 0
1:24:29Step through AllocateGameAssets() to the success of WriteAssetData()
🏃
1:24:29Step through AllocateGameAssets() to the success of WriteAssetData()
🏃
1:24:29Step through AllocateGameAssets() to the success of WriteAssetData()
🏃
1:27:51Introduce SetAssetType()
1:27:51Introduce SetAssetType()
1:27:51Introduce SetAssetType()
1:32:02Embark on the tagging problem, introducing import_grid_tags for ProcessTiledImport() and CheckForArtChanges() to use
1:32:02Embark on the tagging problem, introducing import_grid_tags for ProcessTiledImport() and CheckForArtChanges() to use
1:32:02Embark on the tagging problem, introducing import_grid_tags for ProcessTiledImport() and CheckForArtChanges() to use
1:46:27Try making AddPlayer() add an Asset_Hand
1:46:27Try making AddPlayer() add an Asset_Hand
1:46:27Try making AddPlayer() add an Asset_Hand
1:47:01Run the game to see that it doesn't find our Asset_Hand
🏃
1:47:01Run the game to see that it doesn't find our Asset_Hand
🏃
1:47:01Run the game to see that it doesn't find our Asset_Hand
🏃
1:47:29Test the entire asset import process, to see that it works, but we have RGB flipped
🏃
1:47:29Test the entire asset import process, to see that it works, but we have RGB flipped
🏃
1:47:29Test the entire asset import process, to see that it works, but we have RGB flipped
🏃
1:48:22Try reloading the game to hit our AssetCount mismatch assertion in AllocateGameAssets()
🏃
1:48:22Try reloading the game to hit our AssetCount mismatch assertion in AllocateGameAssets()
🏃
1:48:22Try reloading the game to hit our AssetCount mismatch assertion in AllocateGameAssets()
🏃
1:48:46Delete local.hha and successfully run the game
🏃
1:48:46Delete local.hha and successfully run the game
🏃
1:48:46Delete local.hha and successfully run the game
🏃
1:49:16Q&A
🗩
1:49:16Q&A
🗩
1:49:16Q&A
🗩
1:49:55psychomaniactv Q: I've been looking into existing approaches to assign items to cells for clustered shading. I've already implemented two of them, but now I'd like to try iD's approach. They mention in their SIGGRAPH slides that an item shape can be an OBB or a frustum and they test its planes against the cells in clip space since a cell will simply be an AABB there. I should really improve my math knowledge / skills but I currently don't know how to do this. Can you point me in the right direction?
🗪
1:49:55psychomaniactv Q: I've been looking into existing approaches to assign items to cells for clustered shading. I've already implemented two of them, but now I'd like to try iD's approach. They mention in their SIGGRAPH slides that an item shape can be an OBB or a frustum and they test its planes against the cells in clip space since a cell will simply be an AABB there. I should really improve my math knowledge / skills but I currently don't know how to do this. Can you point me in the right direction?
🗪
1:49:55psychomaniactv Q: I've been looking into existing approaches to assign items to cells for clustered shading. I've already implemented two of them, but now I'd like to try iD's approach. They mention in their SIGGRAPH slides that an item shape can be an OBB or a frustum and they test its planes against the cells in clip space since a cell will simply be an AABB there. I should really improve my math knowledge / skills but I currently don't know how to do this. Can you point me in the right direction?
🗪
1:53:11Understanding perspective projection and clip coordinates
🖌
1:53:11Understanding perspective projection and clip coordinates
🖌
1:53:11Understanding perspective projection and clip coordinates
🖌
1:58:23Performing operations in clip space
🖌
1:58:23Performing operations in clip space
🖌
1:58:23Performing operations in clip space
🖌
2:01:21Describe PerspectiveProjection()
📖
2:01:21Describe PerspectiveProjection()
📖
2:01:21Describe PerspectiveProjection()
📖
2:02:54jacksonbanan Q: Is the warning in the ctime code supposed to be taken lightly? How would it delete files, format my hard drive, etc? Has there been any instance of any of that thus far?
🗪
2:02:54jacksonbanan Q: Is the warning in the ctime code supposed to be taken lightly? How would it delete files, format my hard drive, etc? Has there been any instance of any of that thus far?
🗪
2:02:54jacksonbanan Q: Is the warning in the ctime code supposed to be taken lightly? How would it delete files, format my hard drive, etc? Has there been any instance of any of that thus far?
🗪
2:03:33sopvop Q: I see that transient_state has only four task_with_memory, and game uses much more threads. So the threads may sit there without work because you can only submit at most four such tasks per frame to queue. Isn't four tasks a bit low, or am I missing something here?
🗪
2:03:33sopvop Q: I see that transient_state has only four task_with_memory, and game uses much more threads. So the threads may sit there without work because you can only submit at most four such tasks per frame to queue. Isn't four tasks a bit low, or am I missing something here?
🗪
2:03:33sopvop Q: I see that transient_state has only four task_with_memory, and game uses much more threads. So the threads may sit there without work because you can only submit at most four such tasks per frame to queue. Isn't four tasks a bit low, or am I missing something here?
🗪
2:04:03Show the profiler's thread view
🏃
2:04:03Show the profiler's thread view
🏃
2:04:03Show the profiler's thread view
🏃
2:04:52psychomaniactv Q: Thanks for answering. The way I understand their slides is they have a convex shape defined by its boundary planes (either a 6-plane OBB or a 5-plane frustum) and they test it against an AABB in clip space. The AABB is already in clip space and the planes come from world space. I have no idea how to test for intersection in clip space. What even happens to the planes when they are transformed?
🗪
2:04:52psychomaniactv Q: Thanks for answering. The way I understand their slides is they have a convex shape defined by its boundary planes (either a 6-plane OBB or a 5-plane frustum) and they test it against an AABB in clip space. The AABB is already in clip space and the planes come from world space. I have no idea how to test for intersection in clip space. What even happens to the planes when they are transformed?
🗪
2:04:52psychomaniactv Q: Thanks for answering. The way I understand their slides is they have a convex shape defined by its boundary planes (either a 6-plane OBB or a 5-plane frustum) and they test it against an AABB in clip space. The AABB is already in clip space and the planes come from world space. I have no idea how to test for intersection in clip space. What even happens to the planes when they are transformed?
🗪
2:07:52Plane transformation
🖌
2:07:52Plane transformation
🖌
2:07:52Plane transformation
🖌
2:10:27Close down with a plug of the site2 and glimpse into the future
🗩
2:10:27Close down with a plug of the site2 and glimpse into the future
🗩
2:10:27Close down with a plug of the site2 and glimpse into the future
🗩