Handmade Hero»Episode Guide
Converting sRGB to Light-linear Space
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
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 Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

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)
1:07Recap last week's work on the renderer
1:07Recap last week's work on the renderer
1:07Recap last week's work on the renderer
1:38Won Chun's request: Correct gamma correction
1:38Won Chun's request: Correct gamma correction
1:38Won Chun's request: Correct gamma correction
4:08Chart: Gamma curve of Casey's monitor
4:08Chart: Gamma curve of Casey's monitor
4:08Chart: Gamma curve of Casey's monitor
6:32Blackboard: Gamma
6:32Blackboard: Gamma
6:32Blackboard: Gamma
8:38Blackboard: Why does Won care?
8:38Blackboard: Why does Won care?
8:38Blackboard: Why does Won care?
12:21Blackboard: We'd need to undo or, rather, account for the effects of the monitor's gamma curve
12:21Blackboard: We'd need to undo or, rather, account for the effects of the monitor's gamma curve
12:21Blackboard: We'd need to undo or, rather, account for the effects of the monitor's gamma curve
15:36Blackboard: How do we do it in a software rasteriser?
15:36Blackboard: How do we do it in a software rasteriser?
15:36Blackboard: How do we do it in a software rasteriser?
16:07Internet: sRGB definition1
16:07Internet: sRGB definition1
16:07Internet: sRGB definition1
17:36Internet: Gamma correction2
17:36Internet: Gamma correction2
17:36Internet: Gamma correction2
18:23Internet: Filmic Games: 'Linear-Space Lighting (i.e. Gamma)' by John Hable3
18:23Internet: Filmic Games: 'Linear-Space Lighting (i.e. Gamma)' by John Hable3
18:23Internet: Filmic Games: 'Linear-Space Lighting (i.e. Gamma)' by John Hable3
20:15Blackboard: What the gamma curve is generally expected to be
20:15Blackboard: What the gamma curve is generally expected to be
20:15Blackboard: What the gamma curve is generally expected to be
22:16Blackboard: Computing that gamma curve
22:16Blackboard: Computing that gamma curve
22:16Blackboard: Computing that gamma curve
23:32Blackboard: Envisioning the Framebuffer pipeline
23:32Blackboard: Envisioning the Framebuffer pipeline
23:32Blackboard: Envisioning the Framebuffer pipeline
26:04Blackboard: Caring about bandwidth
26:04Blackboard: Caring about bandwidth
26:04Blackboard: Caring about bandwidth
28:34Internet: 'Uncharted 2: HDR Lighting' slides by John Hable4
28:34Internet: 'Uncharted 2: HDR Lighting' slides by John Hable4
28:34Internet: 'Uncharted 2: HDR Lighting' slides by John Hable4
29:06Blackboard: We want to mimic what the monitor is doing
29:06Blackboard: We want to mimic what the monitor is doing
29:06Blackboard: We want to mimic what the monitor is doing
30:05Implement this sRGB approximation
30:05Implement this sRGB approximation
30:05Implement this sRGB approximation
36:13Create the SRGB255ToLinear1 and Linear1ToSRGB255 functions
36:13Create the SRGB255ToLinear1 and Linear1ToSRGB255 functions
36:13Create the SRGB255ToLinear1 and Linear1ToSRGB255 functions
39:09Compile, take a look in-game and go through that with a more fine toothcomb
39:09Compile, take a look in-game and go through that with a more fine toothcomb
39:09Compile, take a look in-game and go through that with a more fine toothcomb
44:09Set a breakpoint and step through the code
44:09Set a breakpoint and step through the code
44:09Set a breakpoint and step through the code
47:50Moment of realisation: Linear1ToSRGB255 was multiplying by 255 before square-rooting
47:50Moment of realisation: Linear1ToSRGB255 was multiplying by 255 before square-rooting
47:50Moment of realisation: Linear1ToSRGB255 was multiplying by 255 before square-rooting
48:17Enjoy our tree in all its gamma corrected glory
48:17Enjoy our tree in all its gamma corrected glory
48:17Enjoy our tree in all its gamma corrected glory
51:01Start using the Color value to tint our texture maps
51:01Start using the Color value to tint our texture maps
51:01Start using the Color value to tint our texture maps
51:43Blackboard: Tinting
51:43Blackboard: Tinting
51:43Blackboard: Tinting
52:11Implement tinting
52:11Implement tinting
52:11Implement tinting
53:07Live tinting
53:07Live tinting
53:07Live tinting
55:37Premultiply the alpha properly
55:37Premultiply the alpha properly
55:37Premultiply the alpha properly
57:08Blackboard: Premultiplied alpha
57:08Blackboard: Premultiplied alpha
57:08Blackboard: Premultiplied alpha
59:09Q&A
🗩
59:09Q&A
🗩
59:09Q&A
🗩
59:37ashkanhoss29 What would be the visual artifact of using 2 instead of 2.2 for the gamma?
🗪
59:37ashkanhoss29 What would be the visual artifact of using 2 instead of 2.2 for the gamma?
🗪
59:37ashkanhoss29 What would be the visual artifact of using 2 instead of 2.2 for the gamma?
🗪
1:01:28garlandobloom Q: Also need to do additive color tinting for full expressiveness
🗪
1:01:28garlandobloom Q: Also need to do additive color tinting for full expressiveness
🗪
1:01:28garlandobloom Q: Also need to do additive color tinting for full expressiveness
🗪
1:02:11krohnos I have a CS background but am 2 months behind on coding this. It is much easier to follow when I'm not trying to type myself. How detrimental would it be to my understanding to watch and just stop coding if I get too far behind? Sometimes when you're moving things around, I have to watch that bit 2-3 times
🗪
1:02:11krohnos I have a CS background but am 2 months behind on coding this. It is much easier to follow when I'm not trying to type myself. How detrimental would it be to my understanding to watch and just stop coding if I get too far behind? Sometimes when you're moving things around, I have to watch that bit 2-3 times
🗪
1:02:11krohnos I have a CS background but am 2 months behind on coding this. It is much easier to follow when I'm not trying to type myself. How detrimental would it be to my understanding to watch and just stop coding if I get too far behind? Sometimes when you're moving things around, I have to watch that bit 2-3 times
🗪
1:03:18ttbjm Would it be worth only using gamma correction on texels that have alpha not equal to 0 or 1?
🗪
1:03:18ttbjm Would it be worth only using gamma correction on texels that have alpha not equal to 0 or 1?
🗪
1:03:18ttbjm Would it be worth only using gamma correction on texels that have alpha not equal to 0 or 1?
🗪
1:03:57robotchocolatedino Could we do our maths in sRGB space?
🗪
1:03:57robotchocolatedino Could we do our maths in sRGB space?
🗪
1:03:57robotchocolatedino Could we do our maths in sRGB space?
🗪
1:04:22Blackboard: Lerp in sRGB space
1:04:22Blackboard: Lerp in sRGB space
1:04:22Blackboard: Lerp in sRGB space
1:08:29Blackboard: This Q&A just turned into an exploration
1:08:29Blackboard: This Q&A just turned into an exploration
1:08:29Blackboard: This Q&A just turned into an exploration
1:10:40cubercaleb When are you going to start implementing OpenGL for the rendering?
🗪
1:10:40cubercaleb When are you going to start implementing OpenGL for the rendering?
🗪
1:10:40cubercaleb When are you going to start implementing OpenGL for the rendering?
🗪
1:11:00andsz_ Wouldn't be the 10_10_10_2 format (which is also available in hardware) be sufficient to avoid banding?
🗪
1:11:00andsz_ Wouldn't be the 10_10_10_2 format (which is also available in hardware) be sufficient to avoid banding?
🗪
1:11:00andsz_ Wouldn't be the 10_10_10_2 format (which is also available in hardware) be sufficient to avoid banding?
🗪
1:12:05sigma207 Then what is the point of using 2.2 at all? Why not just use 2 for the gamma?
🗪
1:12:05sigma207 Then what is the point of using 2.2 at all? Why not just use 2 for the gamma?
🗪
1:12:05sigma207 Then what is the point of using 2.2 at all? Why not just use 2 for the gamma?
🗪
1:12:58zuurr_ By repeatedly converting between linear and our approximated gamma space when doing each blend, are we compounding our errors?
🗪
1:12:58zuurr_ By repeatedly converting between linear and our approximated gamma space when doing each blend, are we compounding our errors?
🗪
1:12:58zuurr_ By repeatedly converting between linear and our approximated gamma space when doing each blend, are we compounding our errors?
🗪
1:14:47differentname Do all monitors use the same 2.2 curve?
🗪
1:14:47differentname Do all monitors use the same 2.2 curve?
🗪
1:14:47differentname Do all monitors use the same 2.2 curve?
🗪
1:16:23cubercaleb Is raising the color value to 2 instead of 2.2 really going to save that much processing power?
🗪
1:16:23cubercaleb Is raising the color value to 2 instead of 2.2 really going to save that much processing power?
🗪
1:16:23cubercaleb Is raising the color value to 2 instead of 2.2 really going to save that much processing power?
🗪
1:18:11kikokat I got stuck implementing a Bitshift + PRNG in your engine, thanks for showing a code comment about 'Wang Hashing' earlier which was just what I needed
🗪
1:18:11kikokat I got stuck implementing a Bitshift + PRNG in your engine, thanks for showing a code comment about 'Wang Hashing' earlier which was just what I needed
🗪
1:18:11kikokat I got stuck implementing a Bitshift + PRNG in your engine, thanks for showing a code comment about 'Wang Hashing' earlier which was just what I needed
🗪
1:18:46Wrap it up for today
🗩
1:18:46Wrap it up for today
🗩
1:18:46Wrap it up for today
🗩