[video output=day038 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Basic Linear Bitmap Blending" vod_platform=youtube id=ydiHNs1YQoI annotator=schme annotator=effect0r annotator=theinternetftw]
[0:00:00][Prestream stuff]
[0:09:18][Intro and welcome]
[0:10:52][Where we left off from last time]
[0:11:17][Fixing the hero's color]
[0:16:16][Figuring out what the shift values are]
[0:18:48][Bitscanforward]
[0:27:53][Renaming bitscanforward to FindLeastSignificantSetBit]
[0:29:36][The intrinsics thing]
[0:30:16][Finding out what compiler we're on]
[0:31:27][Making a compromise: Allowing the intrinsics file access to the platform layer]
[0:33:20][Determining what compiler is being used]
[0:41:20][Simple version of using the alpha channel]
[0:45:20][Alpha as an opacity value]
[0:46:36][Implementing 0-128 off, 129 onwards on for alpha]
[0:49:20][The dumb, slow way to do alpha blending.]
[0:50:04][Krita crashes..]
[0:50:47][Blackboard session explaining alpha blending using the background value]
[0:51:01]['Deriving' the formula for a linear blend]
[0:58:02][The canonical form of a linear blend]
[0:58:45][How the 't' works in the linear blend formula]
[1:00:35][Implementing the floating point version of linear blend]
[1:06:55][Drawing the herohead at the location of the player]
[1:07:23][Q&A][:speech]
[1:08:06][Stream spots a typo!]
[1:08:37][Stream suggests to assert the bitmap assertion mode!]
[1:09:12][You do not need #pragma intrinsic if you include <intrin.h>]
[1:10:53][Would it be worthwhile to avoid converting to float while doing the alpha blend?]
[1:12:46][Why is the Windows-logo still visible at the top?]
[1:14:11][Are there other ways to alpha blend and should you be taking into account which colors are easier to see?]
[1:21:06][Are we at all concerned with the destinations alpha?]
[1:25:28][Will the final blend favor the source over the destination, or is linear good enough?]
[1:25:59][How would you deal with other picture formats such as png, jpeg, etc.]
[1:26:53][Why is the mask so complicated to use?]
[1:27:51][Did you mean the other compiler LLVM or Clang?]
[1:28:37][In the bitscan function what about returning index negative one if not found?]
[1:29:04][Can you go over the linear alpha blend diagram again?]
[1:34:36][Is the large VirtualAlloc() at the beginning similar to Linux mmap()?]
[1:35:51][What bitvalue is 50% brightness?]
[1:37:34][Does the display bitmap operation actually do anything with the alpha channel?]
[1:37:58][The solid curve on Wikipedia's gamma correction is the linear space intensity. Should be what you're looking for.]
[/video]
