2020-05-09 20:59:36 +00:00
|
|
|
[video output=day092 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Filling Rotated and Scaled Rectangles" vod_platform=youtube id=kVU_QIxm3AA annotator=Miblo annotator=dspecht annotator=ZedZull]
|
2017-12-06 22:26:13 +00:00
|
|
|
[0:23][Recap of people egging Casey on to do some weird sine-cosine-theta stuff][quote 50]
|
|
|
|
[1:36][Blackboard: Introduce effects]
|
|
|
|
[4:39][Blackboard: How do we do this rotation and scaling?]
|
|
|
|
[5:29][Run the game]
|
|
|
|
[5:51][Clip away all this ridiculousness]
|
|
|
|
[6:32][Look at the coordinate system]
|
|
|
|
[7:13][Blackboard: We need to know which pixels will be included as a result of rotating a rectangle]
|
|
|
|
[8:35][Blackboard: How the collision detection system may be applicable to pixel filling]
|
|
|
|
[9:51][Blackboard: Ignoring rotation and scaling for now]
|
|
|
|
[12:34][Blackboard: Iterating over the pixels]
|
|
|
|
[13:44][Look at the DrawRectangle routine]
|
|
|
|
[14:22][Write a function, DrawRectangleSlowly, that does DrawRectangle in the least efficient way possible]
|
|
|
|
[16:43][Draw a rectangle that's at the origin of the CoordinateSystem]
|
|
|
|
[18:11][See the results in-game]
|
|
|
|
[18:23][Stop it rotating for the moment]
|
|
|
|
[18:41][Check the scaling of the axes]
|
|
|
|
[19:54][DrawRectangle after the fact in a different Color]
|
|
|
|
[20:31][Note that the rectangle is not properly clipping to its max bounds, and rectify this]
|
|
|
|
[21:11][Moment of realisation: We were adding Entry->Origin twice]
|
|
|
|
[21:27][We're filling correctly but inefficiently]
|
|
|
|
[21:58][Consider restricting the area that DrawRectangleSlowly marches over]
|
|
|
|
[22:21][Blackboard: How does that help us do our rotation and scaling?]
|
|
|
|
[23:25][Blackboard: Can't we just test against four corners of our rectangle?]
|
|
|
|
[24:35][Blackboard: How we could have done that without Casey's help]
|
|
|
|
[28:55][Implement one of these edge tests]
|
|
|
|
[29:50][Make DrawRectangleSlowly take all of the coordinate system information]
|
|
|
|
[30:57][Make DrawRectangleSlowly do the edge tests using the dot product]
|
|
|
|
[32:18][Blackboard: Rephrase these edge tests]
|
|
|
|
[32:57][Turn the test around]
|
|
|
|
[34:03][Notice that, because we're not doing the dot product, the sign doesn't flip]
|
|
|
|
[34:33][Make greater-than be our standard]
|
|
|
|
[35:03][Blackboard: Think of the surface normals pointing outwards]
|
|
|
|
[35:20][Change all of those edge functions to be negative]
|
|
|
|
[36:10][Get the dot product in there]
|
|
|
|
[36:43][Blackboard: What are the vectors of those perpendiculars?]
|
|
|
|
[37:29][Implement those vectors]
|
|
|
|
[38:40][Now we're doing the full test, see how it looks in-game]
|
|
|
|
[38:59][Consider changing the edge tests to use the edges of the rotating coordinate system]
|
|
|
|
[39:20][Blackboard: How to use those edges]
|
|
|
|
[39:42][Get rid of vMin and vMax in readiness to use those edges]
|
|
|
|
[39:57][Blackboard: Our tests]
|
|
|
|
[40:35][Implement those tests]
|
|
|
|
[42:11][Compile and view the results in-game]
|
|
|
|
[42:48][Change the scale over time]
|
|
|
|
[43:04][Blackboard: Optimising these tests]
|
|
|
|
[44:12][Implement optimised exclusion tests]
|
|
|
|
[50:20][Fix a couple of things, but not before filling everywhere in the bounding region]
|
|
|
|
[50:58][Check the code]
|
|
|
|
[51:40][Find our typo and restore our buffer pre-step]
|
|
|
|
[52:15][Re-enable our edge test and consider further work]
|
2018-03-07 21:48:09 +00:00
|
|
|
[53:08][Q&A][:speech]
|
2017-12-06 22:26:13 +00:00
|
|
|
[53:54][@d7samurai][What are your computer specs?]
|
|
|
|
[55:14][@powerc9k][Is it weird that I got really excited once the rotated fill got faster?]
|
|
|
|
[56:06][@wardinsc][Would skewing the axes still work?]
|
|
|
|
[57:37][Implement a proper perpendicular]
|
|
|
|
[59:38][Blackboard: How we want the Perp to work]
|
|
|
|
[1:00:26][Make that Perp work]
|
|
|
|
[1:01:13][@ttbjm][Is downscaling bitmaps correctly slower than upscaling (more colour points to blend)?]
|
|
|
|
[1:01:45][Blackboard: Downsampling and upsampling bitmaps]
|
|
|
|
[1:04:05][Blackboard: Mipmaps]
|
|
|
|
[1:05:33][@cubercaleb][Eventually, will you implement anti-aliasing into the rendering of the rectangle, or is that too much for the CPU?]
|
|
|
|
[1:06:07][Blackboard: Texture sampling handles anti-aliasing for the alpha'd bitmaps]
|
|
|
|
[1:07:57][Check out our hilarious little shape and review our progress]
|
|
|
|
[1:09:37][@garlandobloom][Historically, did we ever do anti-aliasing with CPU rendering?]
|
2018-03-07 21:48:09 +00:00
|
|
|
[1:11:52][Postpone anything more until tomorrow, with a potential plan of action][:speech]
|
2017-12-06 22:26:13 +00:00
|
|
|
[/video]
|