Textured Quadrilaterals

?

?# Keyboard Navigation

## Global Keys

[, < / ], > Jump to previous / next episode

W, K, P / S, J, N Jump to previous / next timestamp

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 and Index Controls

## Quotes and References Menus and Index

Enter Jump to timestamp

## 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)

W, K, P / S, J, N Jump to previous / next timestamp

t / T Toggle theatre / SUPERtheatre mode

V Revert filter to original state Y Select link (requires manual Ctrl-c)

a

w

s

s

d

h
j
k
l

←

↑

↓

↓

→

Esc Close menu / unfocus timestamp

X, ShiftSpace Toggle category and focus previous

v Invert topics / media as per focus

⏫

Previous: 'Filling Rotated and Scaled Rectangles'

⏫

0:44Recap and push forwards

0:44Recap and push forwards

0:44Recap and push forwards

2:46Expand the notion of CoordinateSystem to allow passing a Texture

2:46Expand the notion of CoordinateSystem to allow passing a Texture

2:46Expand the notion of CoordinateSystem to allow passing a Texture

4:36Review how our Edge equations work

4:36Review how our Edge equations work

4:36Review how our Edge equations work

6:05Blackboard: Working through a problem from first principals

6:05Blackboard: Working through a problem from first principals

6:05Blackboard: Working through a problem from first principals

7:26Blackboard: Texture mapping

7:26Blackboard: Texture mapping

7:26Blackboard: Texture mapping

9:22Blackboard: Standard nomenclature

9:22Blackboard: Standard nomenclature

9:22Blackboard: Standard nomenclature

12:16Blackboard: How do we produce some u and v values that tell us where in the texture we are at any given time?

12:16Blackboard: How do we produce some u and v values that tell us where in the texture we are at any given time?

15:06Blackboard: Take a look at what's going to happen here

15:06Blackboard: Take a look at what's going to happen here

15:06Blackboard: Take a look at what's going to happen here

17:38Blackboard: Does this equation give us what we want?

17:38Blackboard: Does this equation give us what we want?

17:38Blackboard: Does this equation give us what we want?

19:30Blackboard: Looking at the problem from another angle

19:30Blackboard: Looking at the problem from another angle

19:30Blackboard: Looking at the problem from another angle

21:21Blackboard: The equation we'd like to implement

21:21Blackboard: The equation we'd like to implement

21:21Blackboard: The equation we'd like to implement

22:16Implement that equation, starting by distributing the negative in the Edge tests

22:16Implement that equation, starting by distributing the negative in the Edge tests

22:16Implement that equation, starting by distributing the negative in the Edge tests

22:49Introduce d

22:49Introduce d

22:49Introduce d

23:16Compute u and v

23:16Compute u and v

23:16Compute u and v

24:59Lookup the u and v inside the Texture

24:59Lookup the u and v inside the Texture

24:59Lookup the u and v inside the Texture

27:48Compile and see what's happening in-game

27:48Compile and see what's happening in-game

27:48Compile and see what's happening in-game

27:55Assert that X and Y are >=0 and < Texture dimensions

27:55Assert that X and Y are >=0 and < Texture dimensions

27:55Assert that X and Y are >=0 and < Texture dimensions

28:20Do that lookup of the u and v

28:20Do that lookup of the u and v

28:20Do that lookup of the u and v

29:36Check out our texture mapping in-game^{α}

29:36Check out our texture mapping in-game^{α}

29:36Check out our texture mapping in-game^{α}

30:24Add in the Alpha

30:24Add in the Alpha

30:24Add in the Alpha

31:56See the alpha composite happening in-game

31:56See the alpha composite happening in-game

31:56See the alpha composite happening in-game

32:23Slow down the fanciness

32:23Slow down the fanciness

32:23Slow down the fanciness

32:53Hit an assertion and postpone clamping U and V until we're doing SIMD

32:53Hit an assertion and postpone clamping U and V until we're doing SIMD

32:53Hit an assertion and postpone clamping U and V until we're doing SIMD

33:42Resume slowing down that fanciness

33:42Resume slowing down that fanciness

33:42Resume slowing down that fanciness

34:24Notice the flickering and mention subpixel accuracy

34:24Notice the flickering and mention subpixel accuracy

34:24Notice the flickering and mention subpixel accuracy

35:26Make the Tree bigger and put it in the centre of the screen

35:26Make the Tree bigger and put it in the centre of the screen

35:26Make the Tree bigger and put it in the centre of the screen

36:17Move the Tree horizontally and keep its angle constant

36:17Move the Tree horizontally and keep its angle constant

36:17Move the Tree horizontally and keep its angle constant

37:39Observe the nature of rendering without subpixel accuracy

37:39Observe the nature of rendering without subpixel accuracy

37:39Observe the nature of rendering without subpixel accuracy

38:56Blackboard: The number of pixels and texels isn't dividing out evenly

38:56Blackboard: The number of pixels and texels isn't dividing out evenly

38:56Blackboard: The number of pixels and texels isn't dividing out evenly

41:36Start tackling these problems

41:36Start tackling these problems

41:36Start tackling these problems

41:57Notice that DrawRectangleSlowly is ignoring the floating point accuracy that was passed to it

41:57Notice that DrawRectangleSlowly is ignoring the floating point accuracy that was passed to it

41:57Notice that DrawRectangleSlowly is ignoring the floating point accuracy that was passed to it

43:28Why do we still look like that, though?

43:28Why do we still look like that, though?

43:28Why do we still look like that, though?

43:58Blackboard: Doing a better job of figuring out where we are in the texture map

43:58Blackboard: Doing a better job of figuring out where we are in the texture map

43:58Blackboard: Doing a better job of figuring out where we are in the texture map

47:18Linearly blend (Lerp) the colours

47:18Linearly blend (Lerp) the colours

47:18Linearly blend (Lerp) the colours

48:55Pretend our Texture is smaller than it actually is

48:55Pretend our Texture is smaller than it actually is

48:55Pretend our Texture is smaller than it actually is

49:39Blend these guys together, but not before lofting out the Color values

49:39Blend these guys together, but not before lofting out the Color values

49:39Blend these guys together, but not before lofting out the Color values

53:01Manufacture a v4 for Lerping between two Lerps and ones for doing scalar multiplications

53:01Manufacture a v4 for Lerping between two Lerps and ones for doing scalar multiplications

53:01Manufacture a v4 for Lerping between two Lerps and ones for doing scalar multiplications

54:47View our properly blurry rendering in-game

54:47View our properly blurry rendering in-game

54:47View our properly blurry rendering in-game

56:55Switch between the old and new ways, for comparison

56:55Switch between the old and new ways, for comparison

56:55Switch between the old and new ways, for comparison

59:13Q&A, after getting the tree spinning again

59:13Q&A, after getting the tree spinning again

59:13Q&A, after getting the tree spinning again

1:06:09TODO(casey): SSE clamping

1:06:09TODO(casey): SSE clamping

1:06:09TODO(casey): SSE clamping

1:06:59Blackboard: Doing smooth subpixel rendering for pixel art graphics

1:06:59Blackboard: Doing smooth subpixel rendering for pixel art graphics

1:06:59Blackboard: Doing smooth subpixel rendering for pixel art graphics

1:23:16Call it for today with a recap and a glimpse into the future

🗩

1:23:16Call it for today with a recap and a glimpse into the future

🗩

1:23:16Call it for today with a recap and a glimpse into the future

🗩

⏬

Next: 'Converting sRGB to Light-linear Space'

⏬