History of Software Texture Mapping in Games
?
?

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

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

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)
0:00Casey Muratori: Introducing Chris Hecker, John Miles, Sean Barrett and Chris Green
0:00Casey Muratori: Introducing Chris Hecker, John Miles, Sean Barrett and Chris Green
0:00Casey Muratori: Introducing Chris Hecker, John Miles, Sean Barrett and Chris Green
3:32Chris Hecker: How many people were at High School of after in 1995?
3:32Chris Hecker: How many people were at High School of after in 1995?
3:32Chris Hecker: How many people were at High School of after in 1995?
3:42CM: Continue to introduce the History of Software Texture Mapping in Games
3:42CM: Continue to introduce the History of Software Texture Mapping in Games
3:42CM: Continue to introduce the History of Software Texture Mapping in Games
4:22CM: Give us some background to the problem of texture mapping
4:22CM: Give us some background to the problem of texture mapping
4:22CM: Give us some background to the problem of texture mapping
4:51Chris Green: Working at subLOGIC on Flight Simulator, drawing trees on the horizon by stuffing 16-bits of binary texture into the Amiga's line-drawing hardware
4:51Chris Green: Working at subLOGIC on Flight Simulator, drawing trees on the horizon by stuffing 16-bits of binary texture into the Amiga's line-drawing hardware
4:51Chris Green: Working at subLOGIC on Flight Simulator, drawing trees on the horizon by stuffing 16-bits of binary texture into the Amiga's line-drawing hardware
7:46CM: So you wanted to get more visual detail? Did anyone know what texture mapping was?
7:46CM: So you wanted to get more visual detail? Did anyone know what texture mapping was?
7:46CM: So you wanted to get more visual detail? Did anyone know what texture mapping was?
8:12CG: Doing the 3D transforms that make texture mapping hard to slot in
8:12CG: Doing the 3D transforms that make texture mapping hard to slot in
8:12CG: Doing the 3D transforms that make texture mapping hard to slot in
9:11CM: So floating-point math came later?
9:11CM: So floating-point math came later?
9:11CM: So floating-point math came later?
9:25CG: The software was originally built for 8-bit Apple II and Commodore 64 computers
9:25CG: The software was originally built for 8-bit Apple II and Commodore 64 computers
9:25CG: The software was originally built for 8-bit Apple II and Commodore 64 computers
9:48CH: Bruce Artwick wrote about quaternions1
9:48CH: Bruce Artwick wrote about quaternions1
9:48CH: Bruce Artwick wrote about quaternions1
10:14CG: Joking about "useless" quaternions
10:14CG: Joking about "useless" quaternions
10:14CG: Joking about "useless" quaternions
10:39CM: What year is this?
10:39CM: What year is this?
10:39CM: What year is this?
10:42CG: '88
10:42CG: '88
10:42CG: '88
10:44CM: So, John, in '88 you were at Origin Systems?
10:44CM: So, John, in '88 you were at Origin Systems?
10:44CM: So, John, in '88 you were at Origin Systems?
10:57CH: Am I the youngest person on this panel besides you?
10:57CH: Am I the youngest person on this panel besides you?
10:57CH: Am I the youngest person on this panel besides you?
11:20CM: When did Origin start thinking about 3D graphics?
11:20CM: When did Origin start thinking about 3D graphics?
11:20CM: When did Origin start thinking about 3D graphics?
11:30John Miles: First 3D for Wing Commander, after Chris Roberts showed up looking to publish Times of Lore
11:30John Miles: First 3D for Wing Commander, after Chris Roberts showed up looking to publish Times of Lore
11:30John Miles: First 3D for Wing Commander, after Chris Roberts showed up looking to publish Times of Lore
12:32CM: Could you give us some background on the Wing Commander technology?
12:32CM: Could you give us some background on the Wing Commander technology?
12:32CM: Could you give us some background on the Wing Commander technology?
12:39JM: Wing Commander's forward-transform mapper on the 3862
12:39JM: Wing Commander's forward-transform mapper on the 3862
12:39JM: Wing Commander's forward-transform mapper on the 3862
15:28CM: When were the texture mapping articles?3
15:28CM: When were the texture mapping articles?3
15:28CM: When were the texture mapping articles?3
15:37CH: April '95
15:37CH: April '95
15:37CH: April '95
15:39CM: So this is seven years?
15:39CM: So this is seven years?
15:39CM: So this is seven years?
15:47CH: What was SGI4 doing at this time?
15:47CH: What was SGI4 doing at this time?
15:47CH: What was SGI4 doing at this time?
15:52JM: It was knowing how to do all these things
15:52JM: It was knowing how to do all these things
15:52JM: It was knowing how to do all these things
15:55CG: The Flight Simulator did texture mapping on video scan-out positions
15:55CG: The Flight Simulator did texture mapping on video scan-out positions
15:55CG: The Flight Simulator did texture mapping on video scan-out positions
16:06CH: But towards the early 90s they got texture mapped triangles in IRIS5
16:06CH: But towards the early 90s they got texture mapped triangles in IRIS5
16:06CH: But towards the early 90s they got texture mapped triangles in IRIS5
16:22CM: Can you talk about the relationship between those communities?
16:22CM: Can you talk about the relationship between those communities?
16:22CM: Can you talk about the relationship between those communities?
16:37CH: None of the books published it6
16:37CH: None of the books published it6
16:37CH: None of the books published it6
17:06CM: Sean, when did you first post the text file?7
17:06CM: Sean, when did you first post the text file?7
17:06CM: Sean, when did you first post the text file?7
17:11Sean Barrett: It would've been '93 or '94
17:11Sean Barrett: It would've been '93 or '94
17:11Sean Barrett: It would've been '93 or '94
17:26CM: So in 1988 at subLOGIC, why weren't you aware of other people's work on texture mapping?
17:26CM: So in 1988 at subLOGIC, why weren't you aware of other people's work on texture mapping?
17:26CM: So in 1988 at subLOGIC, why weren't you aware of other people's work on texture mapping?
18:04CG: All information was from the library
18:04CG: All information was from the library
18:04CG: All information was from the library
18:28CH: Going back to older hardware with today's standard mathematical knowledge
18:28CH: Going back to older hardware with today's standard mathematical knowledge
18:28CH: Going back to older hardware with today's standard mathematical knowledge
18:46JM: We weren't any good at math, but neither were computers
18:46JM: We weren't any good at math, but neither were computers
18:46JM: We weren't any good at math, but neither were computers
19:05CH: You can avoid doing math by knowing math
19:05CH: You can avoid doing math by knowing math
19:05CH: You can avoid doing math by knowing math
19:11JM: But if you don't know the right way to do it, you don't spend time trying to convince the machine to do it
19:11JM: But if you don't know the right way to do it, you don't spend time trying to convince the machine to do it
19:11JM: But if you don't know the right way to do it, you don't spend time trying to convince the machine to do it
19:26CH: Knowledge would help even in a constrained environment
19:26CH: Knowledge would help even in a constrained environment
19:26CH: Knowledge would help even in a constrained environment
19:33CM: You see that sort of thing with demoscene
19:33CM: You see that sort of thing with demoscene
19:33CM: You see that sort of thing with demoscene
19:43CH: Knowledgeable efficiency anecdote: Inverse transform8
19:43CH: Knowledgeable efficiency anecdote: Inverse transform8
19:43CH: Knowledgeable efficiency anecdote: Inverse transform8
20:39CM: Sometimes a lack of knowledge does lead you to a solution
20:39CM: Sometimes a lack of knowledge does lead you to a solution
20:39CM: Sometimes a lack of knowledge does lead you to a solution
20:58CG: The texture mapping solution may have been rejected
20:58CG: The texture mapping solution may have been rejected
20:58CG: The texture mapping solution may have been rejected
21:09CM: The difficulty of defining your goal
21:09CM: The difficulty of defining your goal
21:09CM: The difficulty of defining your goal
21:20CH: We just wanted stuff on the screen
21:20CH: We just wanted stuff on the screen
21:20CH: We just wanted stuff on the screen
21:26CG: Ugly examples of texture mapping from Car and Driver
21:26CG: Ugly examples of texture mapping from Car and Driver
21:26CG: Ugly examples of texture mapping from Car and Driver
21:40CM: What were you trying to do in subdividing rectangles?
21:40CM: What were you trying to do in subdividing rectangles?
21:40CM: What were you trying to do in subdividing rectangles?
22:00CG: Subdividing rectangles
22:00CG: Subdividing rectangles
22:00CG: Subdividing rectangles
22:27CH: Did you affine-map it?
22:27CH: Did you affine-map it?
22:27CH: Did you affine-map it?
22:31CG: Subdividing rectangles, continued
22:31CG: Subdividing rectangles, continued
22:31CG: Subdividing rectangles, continued
22:58CM: Can you unpack that?
22:58CM: Can you unpack that?
22:58CM: Can you unpack that?
23:00CH: How perspective projection shifts the centre point
23:00CH: How perspective projection shifts the centre point
23:00CH: How perspective projection shifts the centre point
23:22CM: And this was unknown at the time?
23:22CM: And this was unknown at the time?
23:22CM: And this was unknown at the time?
23:34CH: It's like the quaternion thing
23:34CH: It's like the quaternion thing
23:34CH: It's like the quaternion thing
23:48CM: So you'd tried subdividing rectangles
23:48CM: So you'd tried subdividing rectangles
23:48CM: So you'd tried subdividing rectangles
23:52CG: Poor performance of subdivided rectangles, then the Apple II blitter thing
23:52CG: Poor performance of subdivided rectangles, then the Apple II blitter thing
23:52CG: Poor performance of subdivided rectangles, then the Apple II blitter thing
24:22CM: So then what?
24:22CM: So then what?
24:22CM: So then what?
24:24CG: Moving to California to work for Led Lerner on flight simulators and the game Car and Driver,9 with the emergence of VGA
24:24CG: Moving to California to work for Led Lerner on flight simulators and the game Car and Driver,9 with the emergence of VGA
24:24CG: Moving to California to work for Led Lerner on flight simulators and the game Car and Driver,9 with the emergence of VGA
25:21CG: EGA to VGA
25:21CG: EGA to VGA
25:21CG: EGA to VGA
26:02CM: Early '90s graphics card technology
26:02CM: Early '90s graphics card technology
26:02CM: Early '90s graphics card technology
26:42CG: Bitmap scaling and Gouraud shading on VGA
26:42CG: Bitmap scaling and Gouraud shading on VGA
26:42CG: Bitmap scaling and Gouraud shading on VGA
28:30CM: Self-modifying code
28:30CM: Self-modifying code
28:30CM: Self-modifying code
29:32CM: How did bitmap scaling come about?
29:32CM: How did bitmap scaling come about?
29:32CM: How did bitmap scaling come about?
29:40CG: Impractical bitmap scaling
29:40CG: Impractical bitmap scaling
29:40CG: Impractical bitmap scaling
30:08CG: Gouraud shading10
30:08CG: Gouraud shading10
30:08CG: Gouraud shading10
31:02CM: Palletised colours
31:02CM: Palletised colours
31:02CM: Palletised colours
31:32CG: Texture map darkening in Ultima Underworld
31:32CG: Texture map darkening in Ultima Underworld
31:32CG: Texture map darkening in Ultima Underworld
32:33CM: So once you'd got bitmap scaling going, you starting thinking what else is fast enough?
32:33CM: So once you'd got bitmap scaling going, you starting thinking what else is fast enough?
32:33CM: So once you'd got bitmap scaling going, you starting thinking what else is fast enough?
32:46CG: Mutation of loops
32:46CG: Mutation of loops
32:46CG: Mutation of loops
32:57CM: Getting one working example
32:57CM: Getting one working example
32:57CM: Getting one working example
33:12CG: Technology shipped in Car and Driver, and Ultima Underworld
33:12CG: Technology shipped in Car and Driver, and Ultima Underworld
33:12CG: Technology shipped in Car and Driver, and Ultima Underworld
35:07CM: Where does Strike Commander line up with Ultima Underworld's release?
35:07CM: Where does Strike Commander line up with Ultima Underworld's release?
35:07CM: Where does Strike Commander line up with Ultima Underworld's release?
35:18JM: Affine mapping vs perspective mapping
35:18JM: Affine mapping vs perspective mapping
35:18JM: Affine mapping vs perspective mapping
37:03CG: Forward-mapping in Ultima Underworld
37:03CG: Forward-mapping in Ultima Underworld
37:03CG: Forward-mapping in Ultima Underworld
37:52CM: Doom does not allow up-down tilting
37:52CM: Doom does not allow up-down tilting
37:52CM: Doom does not allow up-down tilting
38:04CH: John Carmack solves the specific problem perfectly
38:04CH: John Carmack solves the specific problem perfectly
38:04CH: John Carmack solves the specific problem perfectly
38:16JM: It's all about not doing the math
38:16JM: It's all about not doing the math
38:16JM: It's all about not doing the math
38:24CH: Looking Glass's general approach
38:24CH: Looking Glass's general approach
38:24CH: Looking Glass's general approach
38:36JM: Being blown away by Ultima Underworld
38:36JM: Being blown away by Ultima Underworld
38:36JM: Being blown away by Ultima Underworld
38:54CH: Ultima Underworld was also a tiny window
38:54CH: Ultima Underworld was also a tiny window
38:54CH: Ultima Underworld was also a tiny window
39:04CM: Potential for optimisation when you cannot tilt
39:04CM: Potential for optimisation when you cannot tilt
39:04CM: Potential for optimisation when you cannot tilt
39:36CH: Perspective warping
39:36CH: Perspective warping
39:36CH: Perspective warping
40:00CM: So you've got large polygons, and are trying to get rid of the warping?
40:00CM: So you've got large polygons, and are trying to get rid of the warping?
40:00CM: So you've got large polygons, and are trying to get rid of the warping?
40:41CG: I'm not exactly sure where all the warping comes from
40:41CG: I'm not exactly sure where all the warping comes from
40:41CG: I'm not exactly sure where all the warping comes from
40:56JM: I was assuming you were perspectively correct at the scanline endpoints
40:56JM: I was assuming you were perspectively correct at the scanline endpoints
40:56JM: I was assuming you were perspectively correct at the scanline endpoints
41:04CG: Problematic clipping in 3D
41:04CG: Problematic clipping in 3D
41:04CG: Problematic clipping in 3D
42:05CH: Did you guys have UV coordinates
42:05CH: Did you guys have UV coordinates
42:05CH: Did you guys have UV coordinates
42:07CG: We did, and would cut it into four polygons
42:07CG: We did, and would cut it into four polygons
42:07CG: We did, and would cut it into four polygons
42:11CH: Because Sean's original paper11 didn't have UV coordinates
42:11CH: Because Sean's original paper11 didn't have UV coordinates
42:11CH: Because Sean's original paper11 didn't have UV coordinates
42:26SB: It12 describes the UV coordinates, though
42:26SB: It12 describes the UV coordinates, though
42:26SB: It12 describes the UV coordinates, though
42:37CM: I just want to finish the Strike Commander part
42:37CM: I just want to finish the Strike Commander part
42:37CM: I just want to finish the Strike Commander part
42:41CH: Strike Commander was later, though, wasn't it?
42:41CH: Strike Commander was later, though, wasn't it?
42:41CH: Strike Commander was later, though, wasn't it?
42:45SB: Later than what?
42:45SB: Later than what?
42:45SB: Later than what?
42:46CH: You were saying 486 and Pentium which is way after…
42:46CH: You were saying 486 and Pentium which is way after…
42:46CH: You were saying 486 and Pentium which is way after…
42:51JM: Wing Commander shipped right as the 486s were coming out, '91 or so. Then Strike Commander took a long time for reasons unrelated to texture mapping
42:51JM: Wing Commander shipped right as the 486s were coming out, '91 or so. Then Strike Commander took a long time for reasons unrelated to texture mapping
42:51JM: Wing Commander shipped right as the 486s were coming out, '91 or so. Then Strike Commander took a long time for reasons unrelated to texture mapping
43:12CH: Texture mapping was all we talked about back then
43:12CH: Texture mapping was all we talked about back then
43:12CH: Texture mapping was all we talked about back then
43:26CM: How did Strike Commander's 3D technology come about?
43:26CM: How did Strike Commander's 3D technology come about?
43:26CM: How did Strike Commander's 3D technology come about?
44:33JM: Strike Commander's texture mapping technology, inspired by LucasArts' Secret Weapons of the Luftwaffe13 and Michael Abrash's articles in Dr Dobbs Journal14
44:33JM: Strike Commander's texture mapping technology, inspired by LucasArts' Secret Weapons of the Luftwaffe13 and Michael Abrash's articles in Dr Dobbs Journal14
44:33JM: Strike Commander's texture mapping technology, inspired by LucasArts' Secret Weapons of the Luftwaffe13 and Michael Abrash's articles in Dr Dobbs Journal14
46:49CH: Texture mapping optimisation anecdote
46:49CH: Texture mapping optimisation anecdote
46:49CH: Texture mapping optimisation anecdote
47:15JM: Inspiration from existence proofs15
47:15JM: Inspiration from existence proofs15
47:15JM: Inspiration from existence proofs15
48:58CM: Sean, when did you join Looking Glass?
48:58CM: Sean, when did you join Looking Glass?
48:58CM: Sean, when did you join Looking Glass?
49:18SB: Joining Looking Glass in '94 when System Shock was basically done
49:18SB: Joining Looking Glass in '94 when System Shock was basically done
49:18SB: Joining Looking Glass in '94 when System Shock was basically done
49:25CM: What happens at Looking Glass once you're there?
49:25CM: What happens at Looking Glass once you're there?
49:25CM: What happens at Looking Glass once you're there?
49:56SB: System Shock's lines of constant-z mapper
49:56SB: System Shock's lines of constant-z mapper
49:56SB: System Shock's lines of constant-z mapper
51:35CM: So walls and floors are special?
51:35CM: So walls and floors are special?
51:35CM: So walls and floors are special?
51:40SB: That was the Doom optimisation
51:40SB: That was the Doom optimisation
51:40SB: That was the Doom optimisation
51:41CH: Lines of constant-z on a floor, if you can't tilt, is a scanline
51:41CH: Lines of constant-z on a floor, if you can't tilt, is a scanline
51:41CH: Lines of constant-z on a floor, if you can't tilt, is a scanline
51:45CM: Regardless of how you tilt?
51:45CM: Regardless of how you tilt?
51:45CM: Regardless of how you tilt?
51:47SB: The lines of constant-z for walls are vertical, so tilting would change that
51:47SB: The lines of constant-z for walls are vertical, so tilting would change that
51:47SB: The lines of constant-z for walls are vertical, so tilting would change that
51:56CM: But the reason that floors and ceilings are special is because the rotation doesn't affect their plane?
51:56CM: But the reason that floors and ceilings are special is because the rotation doesn't affect their plane?
51:56CM: But the reason that floors and ceilings are special is because the rotation doesn't affect their plane?
52:09SB: It's an intersection of planes
52:09SB: It's an intersection of planes
52:09SB: It's an intersection of planes
52:12CM: So walls and floors were using this already?
52:12CM: So walls and floors were using this already?
52:12CM: So walls and floors were using this already?
52:16SB: Lines of constant-z mapper, continued
52:16SB: Lines of constant-z mapper, continued
52:16SB: Lines of constant-z mapper, continued
52:53CM: So it remains the same distance from the viewer?
52:53CM: So it remains the same distance from the viewer?
52:53CM: So it remains the same distance from the viewer?
52:59SB: If you had a z-buffer, it'd be the same value
52:59SB: If you had a z-buffer, it'd be the same value
52:59SB: If you had a z-buffer, it'd be the same value
53:01CH: If you take a plane and slice it through the world, there are your lines of constant-z
53:01CH: If you take a plane and slice it through the world, there are your lines of constant-z
53:01CH: If you take a plane and slice it through the world, there are your lines of constant-z
53:05CG: When you tilt your head while looking at a wall, those lines are still straight lines which you can just render diagonally
53:05CG: When you tilt your head while looking at a wall, those lines are still straight lines which you can just render diagonally
53:05CG: When you tilt your head while looking at a wall, those lines are still straight lines which you can just render diagonally
53:17CM: When did the concept of multiple mappers come out?
53:17CM: When did the concept of multiple mappers come out?
53:17CM: When did the concept of multiple mappers come out?
53:32SB: Underworld one
53:32SB: Underworld one
53:32SB: Underworld one
53:35CM: Could you talk about that quickly?
53:35CM: Could you talk about that quickly?
53:35CM: Could you talk about that quickly?
53:37CH: Doom had multiple mappers
53:37CH: Doom had multiple mappers
53:37CH: Doom had multiple mappers
53:43CG: There were special cases for scaling up and down too
53:43CG: There were special cases for scaling up and down too
53:43CG: There were special cases for scaling up and down too
53:46CM: So there were a whole bunch of different mappers for performance?
53:46CM: So there were a whole bunch of different mappers for performance?
53:46CM: So there were a whole bunch of different mappers for performance?
54:04CG: Or unrolling loops for tiny sections of polygons
54:04CG: Or unrolling loops for tiny sections of polygons
54:04CG: Or unrolling loops for tiny sections of polygons
54:13CH: The audio mixers did that too
54:13CH: The audio mixers did that too
54:13CH: The audio mixers did that too
54:17CM: Sean, can you give us a little background on the text file?16
54:17CM: Sean, can you give us a little background on the text file?16
54:17CM: Sean, can you give us a little background on the text file?16
54:49SB: Background to the Texture Mapping file,17 reading about non-realtime rendering in journals at Maryland library, Usenet and Michael Abrash's articles in Dr Dobbs Journal18
54:49SB: Background to the Texture Mapping file,17 reading about non-realtime rendering in journals at Maryland library, Usenet and Michael Abrash's articles in Dr Dobbs Journal18
54:49SB: Background to the Texture Mapping file,17 reading about non-realtime rendering in journals at Maryland library, Usenet and Michael Abrash's articles in Dr Dobbs Journal18
55:48CH: Did you mean "at the time" like you are now? Or compared to everyone else?
55:48CH: Did you mean "at the time" like you are now? Or compared to everyone else?
55:48CH: Did you mean "at the time" like you are now? Or compared to everyone else?
55:53SB: I am now way more scared of math
55:53SB: I am now way more scared of math
55:53SB: I am now way more scared of math
56:09CM: So you've had exposure to technical literature?
56:09CM: So you've had exposure to technical literature?
56:09CM: So you've had exposure to technical literature?
56:21SB: Unhelpful image warping book19
56:21SB: Unhelpful image warping book19
56:21SB: Unhelpful image warping book19
56:32CH: It20 had a lot of filtering stuff
56:32CH: It20 had a lot of filtering stuff
56:32CH: It20 had a lot of filtering stuff
56:43SB: Solving texture mapping from first principles, as a less transitory record for PC Game Programmer Encyclopedia21,22
56:43SB: Solving texture mapping from first principles, as a less transitory record for PC Game Programmer Encyclopedia21,22
56:43SB: Solving texture mapping from first principles, as a less transitory record for PC Game Programmer Encyclopedia21,22
58:07CM: What was the process like, coming at this from first principles?
58:07CM: What was the process like, coming at this from first principles?
58:07CM: What was the process like, coming at this from first principles?
58:23SB: Knowing the 3D transform in math
58:23SB: Knowing the 3D transform in math
58:23SB: Knowing the 3D transform in math
59:31SB: The basic idea in texture mapping: Interpolating between UV coordinates
59:31SB: The basic idea in texture mapping: Interpolating between UV coordinates
59:31SB: The basic idea in texture mapping: Interpolating between UV coordinates
1:01:11CM: So you need three well-formed points?
1:01:11CM: So you need three well-formed points?
1:01:11CM: So you need three well-formed points?
1:01:20CH: They need to be linearly independent
1:01:20CH: They need to be linearly independent
1:01:20CH: They need to be linearly independent
1:01:24CM: If this was a matrix, the matrix has to…
1:01:24CM: If this was a matrix, the matrix has to…
1:01:24CM: If this was a matrix, the matrix has to…
1:01:28CH: If Sean wasn't afraid of math now, he'd have said that
1:01:28CH: If Sean wasn't afraid of math now, he'd have said that
1:01:28CH: If Sean wasn't afraid of math now, he'd have said that
1:01:32CM: The matrix has to not be degenerate?
1:01:32CM: The matrix has to not be degenerate?
1:01:32CM: The matrix has to not be degenerate?
1:01:34CH: Linearly independent is the correct word for the thing
1:01:34CH: Linearly independent is the correct word for the thing
1:01:34CH: Linearly independent is the correct word for the thing
1:01:37SB: Weird insight: Assuming we have plane equations23
1:01:37SB: Weird insight: Assuming we have plane equations23
1:01:37SB: Weird insight: Assuming we have plane equations23
1:02:41CH: I didn't know enough math to know what a plane equation was
1:02:41CH: I didn't know enough math to know what a plane equation was
1:02:41CH: I didn't know enough math to know what a plane equation was
1:02:58CM: So when did this article24 make its way into the world?
1:02:58CM: So when did this article24 make its way into the world?
1:02:58CM: So when did this article24 make its way into the world?
1:03:05SB: '94 before Looking Glass, so before System Shock
1:03:05SB: '94 before Looking Glass, so before System Shock
1:03:05SB: '94 before Looking Glass, so before System Shock
1:03:10CM: Was that25 one of the first ones published?
1:03:10CM: Was that25 one of the first ones published?
1:03:10CM: Was that25 one of the first ones published?
1:03:16CH: For perspective, the only thing
1:03:16CH: For perspective, the only thing
1:03:16CH: For perspective, the only thing
1:03:18SB: I didn't try to solve the perspective mapping problem
1:03:18SB: I didn't try to solve the perspective mapping problem
1:03:18SB: I didn't try to solve the perspective mapping problem
1:03:27CH: I thought your thing26 had one plane equation over another plane equation
1:03:27CH: I thought your thing26 had one plane equation over another plane equation
1:03:27CH: I thought your thing26 had one plane equation over another plane equation
1:03:30SB: It27 gives you the two divides
1:03:30SB: It27 gives you the two divides
1:03:30SB: It27 gives you the two divides
1:03:37CM: Chris, could you give us some background to your involvement?
1:03:37CM: Chris, could you give us some background to your involvement?
1:03:37CM: Chris, could you give us some background to your involvement?
1:03:57CH: Meeting Doug Church and everyone at CGDC, there listening to John's talk about Eye of the Beholder III
1:03:57CH: Meeting Doug Church and everyone at CGDC, there listening to John's talk about Eye of the Beholder III
1:03:57CH: Meeting Doug Church and everyone at CGDC, there listening to John's talk about Eye of the Beholder III
1:05:10JM: We had a sponsored session at one GDC
1:05:10JM: We had a sponsored session at one GDC
1:05:10JM: We had a sponsored session at one GDC
1:05:24CH: Writing columns for Game Developer28 and reading Sean's article29
1:05:24CH: Writing columns for Game Developer28 and reading Sean's article29
1:05:24CH: Writing columns for Game Developer28 and reading Sean's article29
1:06:32CM: So it was kind trying to solve a problem without defining the problem?
1:06:32CM: So it was kind trying to solve a problem without defining the problem?
1:06:32CM: So it was kind trying to solve a problem without defining the problem?
1:06:46SB: It wasn't rigorous
1:06:46SB: It wasn't rigorous
1:06:46SB: It wasn't rigorous
1:06:47CH: There was no reference implementation
1:06:47CH: There was no reference implementation
1:06:47CH: There was no reference implementation
1:07:17CM: The utility of reference implementations
1:07:17CM: The utility of reference implementations
1:07:17CM: The utility of reference implementations
1:07:27CH: Meeting Sean and understanding none of his article,30 and being introduced to Concrete Mathematics by Ronald Graham, Donald Knuth, and Oren Patashnik31
1:07:27CH: Meeting Sean and understanding none of his article,30 and being introduced to Concrete Mathematics by Ronald Graham, Donald Knuth, and Oren Patashnik31
1:07:27CH: Meeting Sean and understanding none of his article,30 and being introduced to Concrete Mathematics by Ronald Graham, Donald Knuth, and Oren Patashnik31
1:09:25CM: Why does a fill convention come into your brain?
1:09:25CM: Why does a fill convention come into your brain?
1:09:25CM: Why does a fill convention come into your brain?
1:09:37CH: Improving image quality
1:09:37CH: Improving image quality
1:09:37CH: Improving image quality
1:10:43CM: So people knew that cracks and things were problems
1:10:43CM: So people knew that cracks and things were problems
1:10:43CM: So people knew that cracks and things were problems
1:10:54JM: It was a hard, but uninteresting problem
1:10:54JM: It was a hard, but uninteresting problem
1:10:54JM: It was a hard, but uninteresting problem
1:11:03SB: Doom was sub-pixel correct
1:11:03SB: Doom was sub-pixel correct
1:11:03SB: Doom was sub-pixel correct
1:11:11CM: Do we know why Doom was sub-pixel correct
1:11:11CM: Do we know why Doom was sub-pixel correct
1:11:11CM: Do we know why Doom was sub-pixel correct
1:11:24CH: Doom was special-case
1:11:24CH: Doom was special-case
1:11:24CH: Doom was special-case
1:11:49CM: At some point, he must have thought about sub-pixel precision
1:11:49CM: At some point, he must have thought about sub-pixel precision
1:11:49CM: At some point, he must have thought about sub-pixel precision
1:11:55CH: He didn't know it was called sub-pixel
1:11:55CH: He didn't know it was called sub-pixel
1:11:55CH: He didn't know it was called sub-pixel
1:11:58CM: How did he end up getting sub-pixel, then?
1:11:58CM: How did he end up getting sub-pixel, then?
1:11:58CM: How did he end up getting sub-pixel, then?
1:12:03CH: I'm assuming it wasn't actually sub-pixel
1:12:03CH: I'm assuming it wasn't actually sub-pixel
1:12:03CH: I'm assuming it wasn't actually sub-pixel
1:12:23CM: So maybe he iterated and got close, but didn't know to apply the same thought process to the triangle rasterisation?
1:12:23CM: So maybe he iterated and got close, but didn't know to apply the same thought process to the triangle rasterisation?
1:12:23CM: So maybe he iterated and got close, but didn't know to apply the same thought process to the triangle rasterisation?
1:12:37CH: Wolfenstein's even more special-case texture mapping, and graphics being just what you talked about
1:12:37CH: Wolfenstein's even more special-case texture mapping, and graphics being just what you talked about
1:12:37CH: Wolfenstein's even more special-case texture mapping, and graphics being just what you talked about
1:13:57CM: So assume you're an expert, write the article, and become that expert?
1:13:57CM: So assume you're an expert, write the article, and become that expert?
1:13:57CM: So assume you're an expert, write the article, and become that expert?
1:14:04CH: Wanting to write an article from the point of view of an expert
1:14:04CH: Wanting to write an article from the point of view of an expert
1:14:04CH: Wanting to write an article from the point of view of an expert
1:14:10JM: Attracting attention from the actual experts
1:14:10JM: Attracting attention from the actual experts
1:14:10JM: Attracting attention from the actual experts
1:14:19CM: So people were saying they've got these cracks and dropouts…
1:14:19CM: So people were saying they've got these cracks and dropouts…
1:14:19CM: So people were saying they've got these cracks and dropouts…
1:14:26CH: Bresenham being about fill conventions
1:14:26CH: Bresenham being about fill conventions
1:14:26CH: Bresenham being about fill conventions
1:14:42CM: So that was more archaeology?
1:14:42CM: So that was more archaeology?
1:14:42CM: So that was more archaeology?
1:14:46CH: Needing to get the fill convention right, the general texture mapper for Under a Killing Moon written by Bruce Johnson, and wanting to document32 the correct operations (floor / ceil / truncation) inspired by Concrete Mathematics33
1:14:46CH: Needing to get the fill convention right, the general texture mapper for Under a Killing Moon written by Bruce Johnson, and wanting to document32 the correct operations (floor / ceil / truncation) inspired by Concrete Mathematics33
1:14:46CH: Needing to get the fill convention right, the general texture mapper for Under a Killing Moon written by Bruce Johnson, and wanting to document32 the correct operations (floor / ceil / truncation) inspired by Concrete Mathematics33
1:16:53CM: How did people find this information about getting their fill convention right?
1:16:53CM: How did people find this information about getting their fill convention right?
1:16:53CM: How did people find this information about getting their fill convention right?
1:17:32CH: Usenet
1:17:32CH: Usenet
1:17:32CH: Usenet
1:17:35CM: So some people just figured out there's some stuff about this?
1:17:35CM: So some people just figured out there's some stuff about this?
1:17:35CM: So some people just figured out there's some stuff about this?
1:17:39CH: Fill convention was well understood
1:17:39CH: Fill convention was well understood
1:17:39CH: Fill convention was well understood
1:18:18SB: Subtlety in making consistent the horizontal scan-converting floor mappers and vertical scan-converting wall mappers
1:18:18SB: Subtlety in making consistent the horizontal scan-converting floor mappers and vertical scan-converting wall mappers
1:18:18SB: Subtlety in making consistent the horizontal scan-converting floor mappers and vertical scan-converting wall mappers
1:18:40CG: People used T-junctions without caring, and we rendered concave polygons
1:18:40CG: People used T-junctions without caring, and we rendered concave polygons
1:18:40CG: People used T-junctions without caring, and we rendered concave polygons
1:19:04CM: And talk about the perspective correct part of the articles34
1:19:04CM: And talk about the perspective correct part of the articles34
1:19:04CM: And talk about the perspective correct part of the articles34
1:19:16CH: Documenting35 the math and assembly for perspective correct mapping
1:19:16CH: Documenting35 the math and assembly for perspective correct mapping
1:19:16CH: Documenting35 the math and assembly for perspective correct mapping
1:19:52CM: Was the math from Sean's article?36
1:19:52CM: Was the math from Sean's article?36
1:19:52CM: Was the math from Sean's article?36
1:19:57CH: Figuring out the math for sub-pixel correctly mapping a triangle in the source bitmap to a triangle on the screen37,38
1:19:57CH: Figuring out the math for sub-pixel correctly mapping a triangle in the source bitmap to a triangle on the screen37,38
1:19:57CH: Figuring out the math for sub-pixel correctly mapping a triangle in the source bitmap to a triangle on the screen37,38
1:21:54CM: Thank you, everyone
1:21:54CM: Thank you, everyone
1:21:54CM: Thank you, everyone