Adding Normal Maps to the Pipeline
⚠ Click here to regain focus ⚠

?

?

t / T Toggle theatre / SUPERtheatre mode

z Toggle filter mode V Revert filter to original state

X, ShiftSpace Toggle category and focus previous

v Invert topics / media as per focus

# Keyboard Navigation

## Global Keys

W, A, P / S, D, N Jump to previous / next markert / T Toggle theatre / SUPERtheatre mode

z Toggle filter mode V Revert filter to original state

## Menu toggling

q Quotes r References f Filter c Credits## Movement

a

w

s

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 nextX, ShiftSpace Toggle category and focus previous

v Invert topics / media as per focus

## Credits Menu

Enter Open URL (in new tab)2:17Recap yesterday and plan for today

2:17Recap yesterday and plan for today

2:17Recap yesterday and plan for today

2:55Blackboard: Normal maps

2:55Blackboard: Normal maps

2:55Blackboard: Normal maps

5:28Blackboard: The importance of Normal

5:28Blackboard: The importance of Normal

5:28Blackboard: The importance of Normal

6:54Blackboard: What we need in order to compute lighting based on this Normal

6:54Blackboard: What we need in order to compute lighting based on this Normal

6:54Blackboard: What we need in order to compute lighting based on this Normal

8:27Blackboard: Where the Normal map fits into the equation

8:27Blackboard: Where the Normal map fits into the equation

8:27Blackboard: Where the Normal map fits into the equation

12:11Blackboard: Description of the surface

12:11Blackboard: Description of the surface

12:11Blackboard: Description of the surface

14:32Blackboard: Description of the light

14:32Blackboard: Description of the light

14:32Blackboard: Description of the light

16:58Blackboard: Casey's proposal

16:58Blackboard: Casey's proposal

16:58Blackboard: Casey's proposal

21:52Blackboard: Blurring based on the surface description

21:52Blackboard: Blurring based on the surface description

21:52Blackboard: Blurring based on the surface description

25:28Introduce the concept of a NormalMap

25:28Introduce the concept of a NormalMap

25:28Introduce the concept of a NormalMap

26:54Blackboard: Normals have to be Normal

26:54Blackboard: Normals have to be Normal

26:54Blackboard: Normals have to be Normal

29:21Introduce Unpack4x8 and unpack the Texels

29:21Introduce Unpack4x8 and unpack the Texels

29:21Introduce Unpack4x8 and unpack the Texels

31:20Similarly unpack the Normals

31:20Similarly unpack the Normals

31:20Similarly unpack the Normals

32:16Blackboard: We often bake the description of the surface into the Normal map

32:16Blackboard: We often bake the description of the surface into the Normal map

32:16Blackboard: We often bake the description of the surface into the Normal map

33:11Lerp the Normals

33:11Lerp the Normals

33:11Lerp the Normals

33:55Introduce environment_map

33:55Introduce environment_map

33:55Introduce environment_map

37:22Set tEnvMap from Normal.Z

37:22Set tEnvMap from Normal.Z

37:22Set tEnvMap from Normal.Z

39:02Blackboard: We might want to switch nearer to 0.25

39:02Blackboard: We might want to switch nearer to 0.25

39:02Blackboard: We might want to switch nearer to 0.25

39:45Setup the environment_map lookups

39:45Setup the environment_map lookups

39:45Setup the environment_map lookups

44:16Create ScreenSpaceUV

44:16Create ScreenSpaceUV

44:16Create ScreenSpaceUV

46:10Pass that ScreenSpaceUV to SampleEnvironmentMap

46:10Pass that ScreenSpaceUV to SampleEnvironmentMap

46:10Pass that ScreenSpaceUV to SampleEnvironmentMap

46:50Check if there is a NormalMap

46:50Check if there is a NormalMap

46:50Check if there is a NormalMap

47:13Pre-light the Texel

47:13Pre-light the Texel

47:13Pre-light the Texel

47:53We haven't talked too much about how you compute lighting equations, per se

47:53We haven't talked too much about how you compute lighting equations, per se

47:53We haven't talked too much about how you compute lighting equations, per se

48:32Take SampleEnvironmentMap and return the Normal for now

48:32Take SampleEnvironmentMap and return the Normal for now

48:32Take SampleEnvironmentMap and return the Normal for now

51:19Plumbing

51:19Plumbing

51:19Plumbing

53:34Check it out in-game and generate a NormalMap to play with

53:34Check it out in-game and generate a NormalMap to play with

53:34Check it out in-game and generate a NormalMap to play with

54:48Blackboard: The NormalMap that we're going to create

54:48Blackboard: The NormalMap that we're going to create

54:48Blackboard: The NormalMap that we're going to create

55:21Implement MakeSphereNormalMap

55:21Implement MakeSphereNormalMap

55:21Implement MakeSphereNormalMap

58:18Blackboard: Think this through a little more

58:18Blackboard: Think this through a little more

58:18Blackboard: Think this through a little more

59:24Throw in a Normal.z calculation for now and finish MakeSphereNormalMap

59:24Throw in a Normal.z calculation for now and finish MakeSphereNormalMap

59:24Throw in a Normal.z calculation for now and finish MakeSphereNormalMap

1:02:43Add Normalize to handmade_math.h

1:02:43Add Normalize to handmade_math.h

1:02:43Add Normalize to handmade_math.h

1:03:49Compile and see it in-game

1:03:49Compile and see it in-game

1:03:49Compile and see it in-game

1:04:18Q&A

1:04:18Q&A

1:04:18Q&A

1:14:03We have come to the end of the questions

1:14:03We have come to the end of the questions

1:14:03We have come to the end of the questions