From 3dfd46654206df86dafd17f38901c03cc0992491 Mon Sep 17 00:00:00 2001 From: Matt Mascarenhas Date: Mon, 3 Dec 2018 21:48:42 +0000 Subject: [PATCH] Annotate hero/code495 --- cmuratori/hero/code/code495.hmml | 54 ++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 cmuratori/hero/code/code495.hmml diff --git a/cmuratori/hero/code/code495.hmml b/cmuratori/hero/code/code495.hmml new file mode 100644 index 0000000..0abd39e --- /dev/null +++ b/cmuratori/hero/code/code495.hmml @@ -0,0 +1,54 @@ +[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Improving the Alignment Editing UI" vod_platform=youtube id=ma6tAZRiDh8 annotator=Miblo] +[0:01][Recap and set the stage for the day doing, essentially, skeletal :animation][:"asset system" :speech] +[5:14][Set up to snap heads onto bodies and visualise snapping points, considering flexible scaling][:animation :"asset system" :run :ui] +[10:51][A few preliminary words on immediate-mode GUI][:speech :ui] +[12:33][Make UpdateAndRenderEntities() draw asset alignment points, introducing GetDebugColor3() and GetDebugColor4()][:"asset system" :"entity system" :ui] +[26:59][Check out our alignment points in-game][:"asset system" :"entity system" :run :ui] +[27:29][Make UpdateAndRenderEntities() negate the AlignmentPercentage of the alignment points][:"asset system" :"entity system" :ui] +[29:37][Find that that doesn't peg the alignment point to the asset][:"asset system" :"entity system" :run :ui] +[30:54][Make UpdateAndRenderEntities() offset the alignment point by the asset's dimensions rather than its ground position][:"asset system" :"entity system" :ui] +[31:26][Find that our alignment point is correctly located][:"asset system" :"entity system" :run :ui] +[31:53][Make UpdateAndRenderEntities() draw the alignment points closed to the camera][:"asset system" :"entity system" :ui] +[33:21][Check out our pegged alignment points in-game, tweaking their size][:"asset system" :"entity system" :programming :run :ui] +[35:29][Enable toggling of coloured alignment points, introducing Buttonf() and EditableBooleanf() for AssetEditor() to call][:"asset system" :ui] +[43:28][Try out our alignment point toggling, noting the scarcity of code required for this feature][:"asset system" :"entity system" :run :ui] +[45:36][Change AssetEditor() to only permit existing alignment points to be toggled and coloured][:"asset system" :ui] +[46:10][Check out our correct alignment point toggling][:"asset system" :"entity system" :run :ui] +[46:48][Introduce ShouldDrawAlignPoint() to enable UpdateAndRenderEntities() to draw all existing alignment points][:"asset system" :"entity system" :ui] +[50:02][Check out all our alignment points in-game, noting the need to fix the way we're drawing them closer to the camera][:"asset system" :"entity system" :run :ui] +[52:47][Make PushCube() take a ZBias which UpdateAndRenderEntities() may use to elevate alignment points above entities][:"asset system" :"entity system" :ui] +[54:31][Find that this didn't elevate our alignment points as expected][:"asset system" :"entity system" :run :ui] +[56:46][See how CompileZBiasProgram() uses the ZBias][:hardware :rendering :research] +[1:00:04][Make UpdateAndRenderEntities() pass a ZBias of 5.0f for alignment points][:"asset system" :"entity system" :ui] +[1:00:34][Find that alignment point elevation works fine in debug :camera mode, but not in regular camera mode][:"asset system" :"entity system" :run :ui] +[1:01:59][Figure out how the clip planes differ in the different :camera modes][:research] +[1:03:13][Make UpdateAndRenderEntities() pass a ZBias of 3.0f for alignment points][:"asset system" :"entity system" :ui] +[1:03:32][Find that our alignment points are now always elevated above assets, and visible][:"asset system" :"entity system" :run :ui] +[1:04:47][Enable UpdateAndRenderEditor() and EditorInteract() to support asset piece picking, introducing SetActiveAsset()][:"asset system" :ui] +[1:13:04][Try out our asset picking functionality][:"asset system" :"entity system" :run :ui] +[1:14:58][Make UpdateAndRenderEditor() display bitmaps in our asset picker, introducing BitmapButton()][:"asset system" :ui] +[1:27:33][Check out the new bitmap buttons in our :UI][:"asset system" :"entity system" :run] +[1:29:01][Make BitmapButton() outline the selected bitmap][:"asset system" :ui] +[1:31:15][Check out the outlined bitmaps in our :UI][:"asset system" :"entity system" :run] +[1:32:16][Try out our asset alignment editor :UI][:"asset system" :"entity system" :run] +[1:33:35][Q&A][:speech] +[1:34:41][@filiadelski][Q: How come the near clip plane is at 5, and not closer?][:camera] +[1:35:18][@erdomina][Q: Would we be showing linkages between alignment points?][:"asset system" :"entity system" :ui] +[1:36:30][@sratke][Q: What would you say is crappy in your current implementation of the IMGUI?][:ui] +[1:38:00][@reductum][Q: Do you think it would be useful to add mouse wrapping (like in Blender) so you can drag past the end of the screen when editing values?][:ui] +[1:39:00][@pythno][Q: Isn't it an overhead when checking for "if(Button(...))" when doing that every frame?][:ui] +[1:40:35][@math_daemon_][Q: Will you ever make an emote, or just steal one of [@naysayer88 Jon]'s?] +[1:41:33][@pragmascrypt][Q: What is the reason the :UI loses state when you hot-reload?][:"hot reloading"] +[1:43:12][@therealdiego][Q: Can you play around with it a little more?] +[1:43:27][Play around with the :UI a little more][:"asset system" :run :"undo / redo"] +[1:44:50][@filiadelski][Q: With software rendering you can do hot regions that are redrawn when the user fiddles with the :UI elements. Can anything similar be done with :hardware :rendering?] +[1:46:21][@ayn0n_0mus][Q: Will the finished game ship with almond milk?] +[1:46:30][@filiadelski][Q: You get [@aerettberg Anna] to draw something cute, like a cat, and then upload the kitty image to twitch] +[1:47:58][@tbodt_][Q: You can upload emotes from a page in the twitch dashboard] +[1:48:17][@dudeinbasement1][Q: What is the best way to add to an atlas map? Is it costly to "re-update" the image to the GPU (OpenGL)?][:hardware :rendering] +[1:49:04][@flyingsolomon][Q: What do you think about a tree-based undo system (where you do not lose the redo state when changing after undo, but create branches)?][:"undo / redo"] +[1:50:06][@ayn0n_0mus][Q: Thoughts on ML, will your game use it?][:ai] +[1:50:29][@pythno][Q: You said you wouldn't use the internet at work. I'd like to do that but then I am missing MSDN and the OpenGL documentation. What do you do when you don't have this info locally available? Asking because I'd prefer not to have the internet around when coding] +[1:51:47][@onebitbrain][Q: You talked about :threading being hard yesterday. Would you use OpenMP if MSVC upgraded, or would you prefer something else?] +[1:55:49][We're all done][:speech] +[/video]