Unify headings
This commit is contained in:
parent
a9626d4001
commit
18f5ace919
76 changed files with 78 additions and 156 deletions
6
01-01.md
6
01-01.md
|
|
@ -10,12 +10,10 @@ chapter: '01'
|
||||||
pages: 004-007
|
pages: 004-007
|
||||||
---
|
---
|
||||||
|
|
||||||
*Part I* {align="center"}
|
# *Part I* {align="center"}
|
||||||
--------
|
|
||||||
|
|
||||||
Chapter 1\
|
## Chapter 1\
|
||||||
The Best Optimizer Is between Your Ears {#Heading1}
|
The Best Optimizer Is between Your Ears {#Heading1}
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
### The Human Element of Code Optimization {#Heading2}
|
### The Human Element of Code Optimization {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
02-01.md
3
02-01.md
|
|
@ -10,9 +10,8 @@ chapter: '02'
|
||||||
pages: 021-025
|
pages: 021-025
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 2\
|
## Chapter 2\
|
||||||
A World Apart {#Heading1}
|
A World Apart {#Heading1}
|
||||||
--------------
|
|
||||||
|
|
||||||
### The Unique Nature of Assembly Language Optimization {#Heading2}
|
### The Unique Nature of Assembly Language Optimization {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
03-01.md
3
03-01.md
|
|
@ -10,9 +10,8 @@ chapter: '03'
|
||||||
pages: 031-035
|
pages: 031-035
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 3\
|
## Chapter 3\
|
||||||
Assume Nothing {#Heading1}
|
Assume Nothing {#Heading1}
|
||||||
---------------
|
|
||||||
|
|
||||||
### Understanding and Using the Zen Timer {#Heading2}
|
### Understanding and Using the Zen Timer {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
04-01.md
3
04-01.md
|
|
@ -10,9 +10,8 @@ chapter: '04'
|
||||||
pages: 075-080
|
pages: 075-080
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 4\
|
## Chapter 4\
|
||||||
In the Lair of the Cycle-Eaters {#Heading1}
|
In the Lair of the Cycle-Eaters {#Heading1}
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
### How the PC Hardware Devours Code Performance {#Heading2}
|
### How the PC Hardware Devours Code Performance {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
05-01.md
3
05-01.md
|
|
@ -10,9 +10,8 @@ chapter: '05'
|
||||||
pages: 111-115
|
pages: 111-115
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 5\
|
## Chapter 5\
|
||||||
Crossing the Border {#Heading1}
|
Crossing the Border {#Heading1}
|
||||||
--------------------
|
|
||||||
|
|
||||||
### Searching Files with Restartable Blocks {#Heading2}
|
### Searching Files with Restartable Blocks {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
06-01.md
3
06-01.md
|
|
@ -10,9 +10,8 @@ chapter: '06'
|
||||||
pages: 125-129
|
pages: 125-129
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 6\
|
## Chapter 6\
|
||||||
Looking Past Face Value {#Heading1}
|
Looking Past Face Value {#Heading1}
|
||||||
------------------------
|
|
||||||
|
|
||||||
### How Machine Instructions May Do More Than You Think {#Heading2}
|
### How Machine Instructions May Do More Than You Think {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
07-01.md
3
07-01.md
|
|
@ -10,9 +10,8 @@ chapter: '07'
|
||||||
pages: 136-139
|
pages: 136-139
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 7\
|
## Chapter 7\
|
||||||
Local Optimization {#Heading1}
|
Local Optimization {#Heading1}
|
||||||
-------------------
|
|
||||||
|
|
||||||
### Optimizing Halfway between Algorithms and Cycle Counting {#Heading2}
|
### Optimizing Halfway between Algorithms and Cycle Counting {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
08-01.md
3
08-01.md
|
|
@ -10,9 +10,8 @@ chapter: 08
|
||||||
pages: 149-153
|
pages: 149-153
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 8\
|
## Chapter 8\
|
||||||
Speeding Up C with Assembly Language {#Heading1}
|
Speeding Up C with Assembly Language {#Heading1}
|
||||||
-------------------------------------
|
|
||||||
|
|
||||||
### Jumping Languages When You Know It'll Help {#Heading2}
|
### Jumping Languages When You Know It'll Help {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
09-01.md
3
09-01.md
|
|
@ -10,9 +10,8 @@ chapter: 09
|
||||||
pages: 167-172
|
pages: 167-172
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 9\
|
## Chapter 9\
|
||||||
Hints My Readers Gave Me {#Heading1}
|
Hints My Readers Gave Me {#Heading1}
|
||||||
-------------------------
|
|
||||||
|
|
||||||
### Optimization Odds and Ends from the Field {#Heading2}
|
### Optimization Odds and Ends from the Field {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
10-01.md
3
10-01.md
|
|
@ -10,9 +10,8 @@ chapter: '10'
|
||||||
pages: 190-193
|
pages: 190-193
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 10\
|
## Chapter 10\
|
||||||
Patient Coding, Faster Code {#Heading1}
|
Patient Coding, Faster Code {#Heading1}
|
||||||
----------------------------
|
|
||||||
|
|
||||||
### How Working Quickly Can Bring Execution to a Crawl {#Heading2}
|
### How Working Quickly Can Bring Execution to a Crawl {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
11-01.md
3
11-01.md
|
|
@ -10,9 +10,8 @@ chapter: '11'
|
||||||
pages: 205-210
|
pages: 205-210
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 11\
|
## Chapter 11\
|
||||||
Pushing the 286 and 386 {#Heading1}
|
Pushing the 286 and 386 {#Heading1}
|
||||||
------------------------
|
|
||||||
|
|
||||||
### New Registers, New Instructions, New Timings, New Complications {#Heading2}
|
### New Registers, New Instructions, New Timings, New Complications {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
12-01.md
3
12-01.md
|
|
@ -10,9 +10,8 @@ chapter: '12'
|
||||||
pages: 233-237
|
pages: 233-237
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 12\
|
## Chapter 12\
|
||||||
Pushing the 486 {#Heading1}
|
Pushing the 486 {#Heading1}
|
||||||
----------------
|
|
||||||
|
|
||||||
### It's Not Just a Bigger 386 {#Heading2}
|
### It's Not Just a Bigger 386 {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
13-01.md
3
13-01.md
|
|
@ -10,9 +10,8 @@ chapter: '13'
|
||||||
pages: 248-251
|
pages: 248-251
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 13\
|
## Chapter 13\
|
||||||
Aiming the 486 {#Heading1}
|
Aiming the 486 {#Heading1}
|
||||||
---------------
|
|
||||||
|
|
||||||
### Pipelines and Other Hazards of the High End {#Heading2}
|
### Pipelines and Other Hazards of the High End {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
14-01.md
3
14-01.md
|
|
@ -10,9 +10,8 @@ chapter: '14'
|
||||||
pages: 260-263
|
pages: 260-263
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 14\
|
## Chapter 14\
|
||||||
Boyer-Moore String Searching {#Heading1}
|
Boyer-Moore String Searching {#Heading1}
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
### Optimizing a Pretty Optimum Search Algorithm {#Heading2}
|
### Optimizing a Pretty Optimum Search Algorithm {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
15-01.md
3
15-01.md
|
|
@ -10,9 +10,8 @@ chapter: '15'
|
||||||
pages: 279-284
|
pages: 279-284
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 15\
|
## Chapter 15\
|
||||||
Linked Lists and plain Unintended Challenges {#Heading1}
|
Linked Lists and plain Unintended Challenges {#Heading1}
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
### Unfamiliar Problems with Familiar Data Structures {#Heading2}
|
### Unfamiliar Problems with Familiar Data Structures {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
16-01.md
3
16-01.md
|
|
@ -10,9 +10,8 @@ chapter: '16'
|
||||||
pages: 295-300
|
pages: 295-300
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 16\
|
## Chapter 16\
|
||||||
There Ain't No Such Thing as the Fastest Code {#Heading1}
|
There Ain't No Such Thing as the Fastest Code {#Heading1}
|
||||||
----------------------------------------------
|
|
||||||
|
|
||||||
### Lessons Learned in the Pursuit of the Ultimate Word Counter {#Heading2}
|
### Lessons Learned in the Pursuit of the Ultimate Word Counter {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
17-01.md
3
17-01.md
|
|
@ -10,9 +10,8 @@ chapter: '17'
|
||||||
pages: 322-325
|
pages: 322-325
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 17\
|
## Chapter 17\
|
||||||
The Game of Life {#Heading1}
|
The Game of Life {#Heading1}
|
||||||
-----------------
|
|
||||||
|
|
||||||
### The Triumph of Algorithmic Optimization in a Cellular Automata Game {#Heading2}
|
### The Triumph of Algorithmic Optimization in a Cellular Automata Game {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
18-01.md
3
18-01.md
|
|
@ -10,9 +10,8 @@ chapter: '18'
|
||||||
pages: 347-351
|
pages: 347-351
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 18\
|
## Chapter 18\
|
||||||
It's a plain Wonderful Life {#Heading1}
|
It's a plain Wonderful Life {#Heading1}
|
||||||
----------------------------
|
|
||||||
|
|
||||||
### Optimization beyond the Pale {#Heading2}
|
### Optimization beyond the Pale {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
19-01.md
3
19-01.md
|
|
@ -10,9 +10,8 @@ chapter: '19'
|
||||||
pages: 369-373
|
pages: 369-373
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 19\
|
## Chapter 19\
|
||||||
Pentium: Not the Same Old Song {#Heading1}
|
Pentium: Not the Same Old Song {#Heading1}
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
### Learning a Whole Different Set of Optimization Rules {#Heading2}
|
### Learning a Whole Different Set of Optimization Rules {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
20-01.md
3
20-01.md
|
|
@ -10,9 +10,8 @@ chapter: '20'
|
||||||
pages: 381-386
|
pages: 381-386
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 20\
|
## Chapter 20\
|
||||||
Pentium Rules {#Heading1}
|
Pentium Rules {#Heading1}
|
||||||
--------------
|
|
||||||
|
|
||||||
### How Your Carbon-Based Optimizer Can Put the "Super" in Superscalar {#Heading2}
|
### How Your Carbon-Based Optimizer Can Put the "Super" in Superscalar {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
21-01.md
3
21-01.md
|
|
@ -10,9 +10,8 @@ chapter: '21'
|
||||||
pages: 397-402
|
pages: 397-402
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 21\
|
## Chapter 21\
|
||||||
Unleashing the Pentium's V-Pipe {#Heading1}
|
Unleashing the Pentium's V-Pipe {#Heading1}
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
### Focusing on Keeping Both Pentium Pipes Full {#Heading2}
|
### Focusing on Keeping Both Pentium Pipes Full {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
22-01.md
3
22-01.md
|
|
@ -10,9 +10,8 @@ chapter: '22'
|
||||||
pages: 413-417
|
pages: 413-417
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 22\
|
## Chapter 22\
|
||||||
Zenning and the Flexible Mind {#Heading1}
|
Zenning and the Flexible Mind {#Heading1}
|
||||||
------------------------------
|
|
||||||
|
|
||||||
### Taking a Spin through What You've Learned {#Heading2}
|
### Taking a Spin through What You've Learned {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
6
23-01.md
6
23-01.md
|
|
@ -10,12 +10,10 @@ chapter: '23'
|
||||||
pages: 423-427
|
pages: 423-427
|
||||||
---
|
---
|
||||||
|
|
||||||
*Part II* {align="center"}
|
# *Part II* {align="center"}
|
||||||
---------
|
|
||||||
|
|
||||||
Chapter 23\
|
## Chapter 23\
|
||||||
Bones and Sinew {#Heading1}
|
Bones and Sinew {#Heading1}
|
||||||
----------------
|
|
||||||
|
|
||||||
### At the Very Heart of Standard PC Graphics {#Heading2}
|
### At the Very Heart of Standard PC Graphics {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
24-01.md
3
24-01.md
|
|
@ -10,9 +10,8 @@ chapter: '24'
|
||||||
pages: 449-453
|
pages: 449-453
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 24\
|
## Chapter 24\
|
||||||
Parallel Processing with the VGA {#Heading1}
|
Parallel Processing with the VGA {#Heading1}
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
### Taking on Graphics Memory Four Bytes at a Time {#Heading2}
|
### Taking on Graphics Memory Four Bytes at a Time {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
25-01.md
3
25-01.md
|
|
@ -10,9 +10,8 @@ chapter: '25'
|
||||||
pages: 461-466
|
pages: 461-466
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 25\
|
## Chapter 25\
|
||||||
VGA Data Machinery {#Heading1}
|
VGA Data Machinery {#Heading1}
|
||||||
-------------------
|
|
||||||
|
|
||||||
### The Barrel Shifter, Bit Mask, and Set/Reset Mechanisms {#Heading2}
|
### The Barrel Shifter, Bit Mask, and Set/Reset Mechanisms {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
26-01.md
3
26-01.md
|
|
@ -10,9 +10,8 @@ chapter: '26'
|
||||||
pages: 481-484
|
pages: 481-484
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 26\
|
## Chapter 26\
|
||||||
VGA Write Mode 3 {#Heading1}
|
VGA Write Mode 3 {#Heading1}
|
||||||
-----------------
|
|
||||||
|
|
||||||
### The Write Mode That Grows on You {#Heading2}
|
### The Write Mode That Grows on You {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
27-01.md
3
27-01.md
|
|
@ -10,9 +10,8 @@ chapter: '27'
|
||||||
pages: 499-504
|
pages: 499-504
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 27\
|
## Chapter 27\
|
||||||
Yet Another VGA Write Mode {#Heading1}
|
Yet Another VGA Write Mode {#Heading1}
|
||||||
---------------------------
|
|
||||||
|
|
||||||
### Write Mode 2, Chunky Bitmaps,and Text-Graphics Coexistence {#Heading2}
|
### Write Mode 2, Chunky Bitmaps,and Text-Graphics Coexistence {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
28-01.md
3
28-01.md
|
|
@ -10,9 +10,8 @@ chapter: '28'
|
||||||
pages: 523-526
|
pages: 523-526
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 28\
|
## Chapter 28\
|
||||||
Reading VGA Memory {#Heading1}
|
Reading VGA Memory {#Heading1}
|
||||||
-------------------
|
|
||||||
|
|
||||||
### Read Modes 0 and 1, and the Color Don't Care Register {#Heading2}
|
### Read Modes 0 and 1, and the Color Don't Care Register {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
29-01.md
3
29-01.md
|
|
@ -10,9 +10,8 @@ chapter: '29'
|
||||||
pages: 539-545
|
pages: 539-545
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 29\
|
## Chapter 29\
|
||||||
Saving Screens and Other VGA Mysteries {#Heading1}
|
Saving Screens and Other VGA Mysteries {#Heading1}
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
### Useful Nuggets from the VGA Zen File {#Heading2}
|
### Useful Nuggets from the VGA Zen File {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
30-01.md
3
30-01.md
|
|
@ -10,9 +10,8 @@ chapter: '30'
|
||||||
pages: 561-566
|
pages: 561-566
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 30\
|
## Chapter 30\
|
||||||
Video Est Omnis Divisa {#Heading1}
|
Video Est Omnis Divisa {#Heading1}
|
||||||
-----------------------
|
|
||||||
|
|
||||||
### The Joys and Galling Problems of Using Split Screens on the EGA and VGA {#Heading2}
|
### The Joys and Galling Problems of Using Split Screens on the EGA and VGA {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
31-01.md
3
31-01.md
|
|
@ -10,9 +10,8 @@ chapter: '31'
|
||||||
pages: 587-591
|
pages: 587-591
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 31\
|
## Chapter 31\
|
||||||
Higher 256-Color Resolution on the VGA {#Heading1}
|
Higher 256-Color Resolution on the VGA {#Heading1}
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
### When Is 320x200 Really 320x400? {#Heading2}
|
### When Is 320x200 Really 320x400? {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
32-01.md
3
32-01.md
|
|
@ -10,9 +10,8 @@ chapter: '32'
|
||||||
pages: 607-611
|
pages: 607-611
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 32\
|
## Chapter 32\
|
||||||
Be It Resolved: 360x480 {#Heading1}
|
Be It Resolved: 360x480 {#Heading1}
|
||||||
------------------------
|
|
||||||
|
|
||||||
### Taking 256-Color Modes About as Far as the Standard VGA Can Take Them {#Heading2}
|
### Taking 256-Color Modes About as Far as the Standard VGA Can Take Them {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
33-01.md
3
33-01.md
|
|
@ -10,9 +10,8 @@ chapter: '33'
|
||||||
pages: 623-628
|
pages: 623-628
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 33\
|
## Chapter 33\
|
||||||
Yogi Bear and Eurythmics Confront VGA Colors {#Heading1}
|
Yogi Bear and Eurythmics Confront VGA Colors {#Heading1}
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
### The Basics of VGA Color Generation {#Heading2}
|
### The Basics of VGA Color Generation {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
34-01.md
3
34-01.md
|
|
@ -10,9 +10,8 @@ chapter: '34'
|
||||||
pages: 637-641
|
pages: 637-641
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 34\
|
## Chapter 34\
|
||||||
Changing Colors without Writing Pixels {#Heading1}
|
Changing Colors without Writing Pixels {#Heading1}
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
### Special Effects through Realtime Manipulation of DAC Colors {#Heading2}
|
### Special Effects through Realtime Manipulation of DAC Colors {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
35-01.md
3
35-01.md
|
|
@ -10,9 +10,8 @@ chapter: '35'
|
||||||
pages: 653-658
|
pages: 653-658
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 35\
|
## Chapter 35\
|
||||||
Bresenham Is Fast, and Fast Is Good {#Heading1}
|
Bresenham Is Fast, and Fast Is Good {#Heading1}
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
### Implementing and Optimizing Bresenham's Line-Drawing Algorithm {#Heading2}
|
### Implementing and Optimizing Bresenham's Line-Drawing Algorithm {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
36-01.md
3
36-01.md
|
|
@ -10,9 +10,8 @@ chapter: '36'
|
||||||
pages: 679-683
|
pages: 679-683
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 36\
|
## Chapter 36\
|
||||||
The Good, the Bad, and the Run-Sliced {#Heading1}
|
The Good, the Bad, and the Run-Sliced {#Heading1}
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
### Faster Bresenham Lines with Run-Length Slice Line Drawing {#Heading2}
|
### Faster Bresenham Lines with Run-Length Slice Line Drawing {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
37-01.md
3
37-01.md
|
|
@ -10,9 +10,8 @@ chapter: '37'
|
||||||
pages: 695-704
|
pages: 695-704
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 37\
|
## Chapter 37\
|
||||||
Dead Cats and Lightning Lines {#Heading1}
|
Dead Cats and Lightning Lines {#Heading1}
|
||||||
------------------------------
|
|
||||||
|
|
||||||
### Optimizing Run-Length Slice Line Drawing in a Major Way {#Heading2}
|
### Optimizing Run-Length Slice Line Drawing in a Major Way {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
38-01.md
3
38-01.md
|
|
@ -10,9 +10,8 @@ chapter: '38'
|
||||||
pages: 707-712
|
pages: 707-712
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 38\
|
## Chapter 38\
|
||||||
The Polygon Primeval {#Heading1}
|
The Polygon Primeval {#Heading1}
|
||||||
---------------------
|
|
||||||
|
|
||||||
### Drawing Polygons Efficiently and Quickly {#Heading2}
|
### Drawing Polygons Efficiently and Quickly {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
39-01.md
3
39-01.md
|
|
@ -10,9 +10,8 @@ chapter: '39'
|
||||||
pages: 723-727
|
pages: 723-727
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 39\
|
## Chapter 39\
|
||||||
Fast Convex Polygons {#Heading1}
|
Fast Convex Polygons {#Heading1}
|
||||||
---------------------
|
|
||||||
|
|
||||||
### Filling Polygons in a Hurry {#Heading2}
|
### Filling Polygons in a Hurry {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
40-01.md
3
40-01.md
|
|
@ -10,9 +10,8 @@ chapter: '40'
|
||||||
pages: 739-744
|
pages: 739-744
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 40\
|
## Chapter 40\
|
||||||
Of Songs, Taxes, and the Simplicity of Complex Polygons {#Heading1}
|
Of Songs, Taxes, and the Simplicity of Complex Polygons {#Heading1}
|
||||||
--------------------------------------------------------
|
|
||||||
|
|
||||||
### Dealing with Irregular Polygonal Areas {#Heading2}
|
### Dealing with Irregular Polygonal Areas {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
41-01.md
3
41-01.md
|
|
@ -10,9 +10,8 @@ chapter: '41'
|
||||||
pages: 757-761
|
pages: 757-761
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 41\
|
## Chapter 41\
|
||||||
Those Way-Down Polygon Nomenclature Blues {#Heading1}
|
Those Way-Down Polygon Nomenclature Blues {#Heading1}
|
||||||
------------------------------------------
|
|
||||||
|
|
||||||
### Names Do Matter when You Conceptualize a Data Structure {#Heading2}
|
### Names Do Matter when You Conceptualize a Data Structure {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
42-01.md
3
42-01.md
|
|
@ -10,9 +10,8 @@ chapter: '42'
|
||||||
pages: 773-778
|
pages: 773-778
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 42\
|
## Chapter 42\
|
||||||
Wu'ed in Haste; Fried, Stewed at Leisure {#Heading1}
|
Wu'ed in Haste; Fried, Stewed at Leisure {#Heading1}
|
||||||
-----------------------------------------
|
|
||||||
|
|
||||||
### Fast Antialiased Lines Using Wu's Algorithm {#Heading2}
|
### Fast Antialiased Lines Using Wu's Algorithm {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
43-01.md
3
43-01.md
|
|
@ -10,9 +10,8 @@ chapter: '43'
|
||||||
pages: 793-799
|
pages: 793-799
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 43\
|
## Chapter 43\
|
||||||
Bit-Plane Animation {#Heading1}
|
Bit-Plane Animation {#Heading1}
|
||||||
--------------------
|
|
||||||
|
|
||||||
### A Simple and Extremely Fast Animation Method for Limited Color {#Heading2}
|
### A Simple and Extremely Fast Animation Method for Limited Color {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
44-01.md
3
44-01.md
|
|
@ -10,9 +10,8 @@ chapter: '44'
|
||||||
pages: 817-820
|
pages: 817-820
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 44\
|
## Chapter 44\
|
||||||
Split Screens Save the Page Flipped Day {#Heading1}
|
Split Screens Save the Page Flipped Day {#Heading1}
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
### 640x480 Page Flipped Animation in 64K...Almost {#Heading2}
|
### 640x480 Page Flipped Animation in 64K...Almost {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
45-01.md
3
45-01.md
|
|
@ -10,9 +10,8 @@ chapter: '45'
|
||||||
pages: 839-843
|
pages: 839-843
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 45\
|
## Chapter 45\
|
||||||
Dog Hair and Dirty Rectangles {#Heading1}
|
Dog Hair and Dirty Rectangles {#Heading1}
|
||||||
------------------------------
|
|
||||||
|
|
||||||
### Different Angles on Animation {#Heading2}
|
### Different Angles on Animation {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
46-01.md
3
46-01.md
|
|
@ -10,9 +10,8 @@ chapter: '46'
|
||||||
pages: 859-862
|
pages: 859-862
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 46\
|
## Chapter 46\
|
||||||
Who Was that Masked Image? {#Heading1}
|
Who Was that Masked Image? {#Heading1}
|
||||||
---------------------------
|
|
||||||
|
|
||||||
### Optimizing Dirty-Rectangle Animation {#Heading2}
|
### Optimizing Dirty-Rectangle Animation {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
47-01.md
3
47-01.md
|
|
@ -10,9 +10,8 @@ chapter: '47'
|
||||||
pages: 875-879
|
pages: 875-879
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 47\
|
## Chapter 47\
|
||||||
Mode X: 256-Color VGA Magic {#Heading1}
|
Mode X: 256-Color VGA Magic {#Heading1}
|
||||||
----------------------------
|
|
||||||
|
|
||||||
### Introducing the VGA's Undocumented "Animation-Optimal" Mode {#Heading2}
|
### Introducing the VGA's Undocumented "Animation-Optimal" Mode {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
48-01.md
3
48-01.md
|
|
@ -10,9 +10,8 @@ chapter: '48'
|
||||||
pages: 895-900
|
pages: 895-900
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 48\
|
## Chapter 48\
|
||||||
Mode X Marks the Latch {#Heading1}
|
Mode X Marks the Latch {#Heading1}
|
||||||
-----------------------
|
|
||||||
|
|
||||||
### The Internals of Animation's Best Video Display Mode {#Heading2}
|
### The Internals of Animation's Best Video Display Mode {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
49-01.md
3
49-01.md
|
|
@ -10,9 +10,8 @@ chapter: '49'
|
||||||
pages: 913-918
|
pages: 913-918
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 49\
|
## Chapter 49\
|
||||||
Mode X 256-Color Animation {#Heading1}
|
Mode X 256-Color Animation {#Heading1}
|
||||||
---------------------------
|
|
||||||
|
|
||||||
### How to Make the VGA Really Get up and Dance {#Heading2}
|
### How to Make the VGA Really Get up and Dance {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
50-01.md
3
50-01.md
|
|
@ -10,9 +10,8 @@ chapter: '50'
|
||||||
pages: 931-935
|
pages: 931-935
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 50\
|
## Chapter 50\
|
||||||
Adding a Dimension {#Heading1}
|
Adding a Dimension {#Heading1}
|
||||||
-------------------
|
|
||||||
|
|
||||||
### 3-D Animation Using Mode X {#Heading2}
|
### 3-D Animation Using Mode X {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
51-01.md
3
51-01.md
|
|
@ -10,9 +10,8 @@ chapter: '51'
|
||||||
pages: 951-955
|
pages: 951-955
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 51\
|
## Chapter 51\
|
||||||
Sneakers in Space {#Heading1}
|
Sneakers in Space {#Heading1}
|
||||||
------------------
|
|
||||||
|
|
||||||
### Using Backface Removal to Eliminate Hidden Surfaces {#Heading2}
|
### Using Backface Removal to Eliminate Hidden Surfaces {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
52-01.md
3
52-01.md
|
|
@ -10,9 +10,8 @@ chapter: '52'
|
||||||
pages: 969-972
|
pages: 969-972
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 52\
|
## Chapter 52\
|
||||||
Fast 3-D Animation: Meet X-Sharp {#Heading1}
|
Fast 3-D Animation: Meet X-Sharp {#Heading1}
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
### The First Iteration of a Generalized 3-D Animation Package {#Heading2}
|
### The First Iteration of a Generalized 3-D Animation Package {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
53-01.md
3
53-01.md
|
|
@ -10,9 +10,8 @@ chapter: '53'
|
||||||
pages: 989-992
|
pages: 989-992
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 53\
|
## Chapter 53\
|
||||||
Raw Speed and More {#Heading1}
|
Raw Speed and More {#Heading1}
|
||||||
-------------------
|
|
||||||
|
|
||||||
### The Naked Truth About Speed in 3-D Animation {#Heading2}
|
### The Naked Truth About Speed in 3-D Animation {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
54-01.md
3
54-01.md
|
|
@ -10,9 +10,8 @@ chapter: '54'
|
||||||
pages: 1005-1008
|
pages: 1005-1008
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 54\
|
## Chapter 54\
|
||||||
3-D Shading {#Heading1}
|
3-D Shading {#Heading1}
|
||||||
------------
|
|
||||||
|
|
||||||
### Putting Realistic Surfaces on Animated 3-D Objects {#Heading2}
|
### Putting Realistic Surfaces on Animated 3-D Objects {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
55-01.md
3
55-01.md
|
|
@ -10,9 +10,8 @@ chapter: '55'
|
||||||
pages: 1031-1035
|
pages: 1031-1035
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 55\
|
## Chapter 55\
|
||||||
Color Modeling in 256-Color Mode {#Heading1}
|
Color Modeling in 256-Color Mode {#Heading1}
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
### Pondering X-Sharp's Color Model in an RGB State of Mind {#Heading2}
|
### Pondering X-Sharp's Color Model in an RGB State of Mind {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
56-01.md
3
56-01.md
|
|
@ -10,9 +10,8 @@ chapter: '56'
|
||||||
pages: 1046-1050
|
pages: 1046-1050
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 56\
|
## Chapter 56\
|
||||||
Pooh and the Space Station {#Heading1}
|
Pooh and the Space Station {#Heading1}
|
||||||
---------------------------
|
|
||||||
|
|
||||||
### Using Fast Texture Mapping to Place Pooh on a Polygon {#Heading2}
|
### Using Fast Texture Mapping to Place Pooh on a Polygon {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
57-01.md
3
57-01.md
|
|
@ -10,9 +10,8 @@ chapter: '57'
|
||||||
pages: 1061-1065
|
pages: 1061-1065
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 57\
|
## Chapter 57\
|
||||||
10,000 Freshly Sheared Sheep on the Screen {#Heading1}
|
10,000 Freshly Sheared Sheep on the Screen {#Heading1}
|
||||||
-------------------------------------------
|
|
||||||
|
|
||||||
### The Critical Role of Experience in Implementing Fast, Smooth Texture Mapping {#Heading2}
|
### The Critical Role of Experience in Implementing Fast, Smooth Texture Mapping {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
58-01.md
3
58-01.md
|
|
@ -10,9 +10,8 @@ chapter: '58'
|
||||||
pages: 1077-1081
|
pages: 1077-1081
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 58\
|
## Chapter 58\
|
||||||
Heinlein's Crystal Ball, Spock's Brain, and the 9-Cycle Dare {#Heading1}
|
Heinlein's Crystal Ball, Spock's Brain, and the 9-Cycle Dare {#Heading1}
|
||||||
-------------------------------------------------------------
|
|
||||||
|
|
||||||
### Using the Whole-Brain Approach to Accelerate Texture Mapping {#Heading2}
|
### Using the Whole-Brain Approach to Accelerate Texture Mapping {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
59-01.md
3
59-01.md
|
|
@ -10,9 +10,8 @@ chapter: '59'
|
||||||
pages: 1095-1099
|
pages: 1095-1099
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 59\
|
## Chapter 59\
|
||||||
The Idea of BSP Trees {#Heading1}
|
The Idea of BSP Trees {#Heading1}
|
||||||
----------------------
|
|
||||||
|
|
||||||
### What BSP Trees Are and How to Walk Them {#Heading2}
|
### What BSP Trees Are and How to Walk Them {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
60-01.md
3
60-01.md
|
|
@ -10,9 +10,8 @@ chapter: '60'
|
||||||
pages: 1115-1119
|
pages: 1115-1119
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 60\
|
## Chapter 60\
|
||||||
Compiling BSP Trees {#Heading1}
|
Compiling BSP Trees {#Heading1}
|
||||||
--------------------
|
|
||||||
|
|
||||||
### Taking BSP Trees from Concept to Reality {#Heading2}
|
### Taking BSP Trees from Concept to Reality {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
61-01.md
3
61-01.md
|
|
@ -10,9 +10,8 @@ chapter: '61'
|
||||||
pages: 1131-1135
|
pages: 1131-1135
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 61\
|
## Chapter 61\
|
||||||
Frames of Reference {#Heading1}
|
Frames of Reference {#Heading1}
|
||||||
--------------------
|
|
||||||
|
|
||||||
### The Fundamentals of the Math behind 3-D Graphics {#Heading2}
|
### The Fundamentals of the Math behind 3-D Graphics {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
62-01.md
3
62-01.md
|
|
@ -10,9 +10,8 @@ chapter: '62'
|
||||||
pages: 1145-1149
|
pages: 1145-1149
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 62\
|
## Chapter 62\
|
||||||
One Story, Two Rules, and a BSP Renderer {#Heading1}
|
One Story, Two Rules, and a BSP Renderer {#Heading1}
|
||||||
-----------------------------------------
|
|
||||||
|
|
||||||
### Taking a Compiled BSP Tree from Logical to Visual Reality {#Heading2}
|
### Taking a Compiled BSP Tree from Logical to Visual Reality {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
63-01.md
3
63-01.md
|
|
@ -10,9 +10,8 @@ chapter: '63'
|
||||||
pages: 1163-1167
|
pages: 1163-1167
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 63\
|
## Chapter 63\
|
||||||
Floating-Point for Real-Time 3-D {#Heading1}
|
Floating-Point for Real-Time 3-D {#Heading1}
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
### Knowing When to Hurl Conventional Math Wisdom Out the Window {#Heading2}
|
### Knowing When to Hurl Conventional Math Wisdom Out the Window {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
64-01.md
3
64-01.md
|
|
@ -10,9 +10,8 @@ chapter: '64'
|
||||||
pages: 1177-1181
|
pages: 1177-1181
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 64\
|
## Chapter 64\
|
||||||
Quake's Visible-Surface Determination {#Heading1}
|
Quake's Visible-Surface Determination {#Heading1}
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
### The Challenge of Separating All Things Seen from All Things Unseen {#Heading2}
|
### The Challenge of Separating All Things Seen from All Things Unseen {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
65-01.md
3
65-01.md
|
|
@ -10,9 +10,8 @@ chapter: '65'
|
||||||
pages: 1191-1195
|
pages: 1191-1195
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 65\
|
## Chapter 65\
|
||||||
3-D Clipping and Other Thoughts {#Heading1}
|
3-D Clipping and Other Thoughts {#Heading1}
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
### Determining What's Inside Your Field of View {#Heading2}
|
### Determining What's Inside Your Field of View {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
66-01.md
3
66-01.md
|
|
@ -10,9 +10,8 @@ chapter: '66'
|
||||||
pages: 1209-1213
|
pages: 1209-1213
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 66\
|
## Chapter 66\
|
||||||
Quake's Hidden-Surface Removal {#Heading1}
|
Quake's Hidden-Surface Removal {#Heading1}
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
### Struggling with Z-Order Solutions to the Hidden Surface Problem {#Heading2}
|
### Struggling with Z-Order Solutions to the Hidden Surface Problem {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
67-01.md
3
67-01.md
|
|
@ -10,9 +10,8 @@ chapter: '67'
|
||||||
pages: 1223-1227
|
pages: 1223-1227
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 67\
|
## Chapter 67\
|
||||||
Sorted Spans in Action {#Heading1}
|
Sorted Spans in Action {#Heading1}
|
||||||
-----------------------
|
|
||||||
|
|
||||||
### Implementing Independent Span Sorting for Rendering without Overdraw {#Heading2}
|
### Implementing Independent Span Sorting for Rendering without Overdraw {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
68-01.md
3
68-01.md
|
|
@ -10,9 +10,8 @@ chapter: '68'
|
||||||
pages: 1243-1247
|
pages: 1243-1247
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 68\
|
## Chapter 68\
|
||||||
Quake's Lighting Model {#Heading1}
|
Quake's Lighting Model {#Heading1}
|
||||||
-----------------------
|
|
||||||
|
|
||||||
### A Radically Different Approach to Lighting Polygons {#Heading2}
|
### A Radically Different Approach to Lighting Polygons {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
69-01.md
3
69-01.md
|
|
@ -10,9 +10,8 @@ chapter: '69'
|
||||||
pages: 1257-1261
|
pages: 1257-1261
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 69\
|
## Chapter 69\
|
||||||
Surface Caching and Quake's Triangle Models {#Heading1}
|
Surface Caching and Quake's Triangle Models {#Heading1}
|
||||||
--------------------------------------------
|
|
||||||
|
|
||||||
### Probing Hardware-Assisted Surfaces and Fast Model Animation Without Sprites {#Heading2}
|
### Probing Hardware-Assisted Surfaces and Fast Model Animation Without Sprites {#Heading2}
|
||||||
|
|
||||||
|
|
|
||||||
3
70-01.md
3
70-01.md
|
|
@ -10,9 +10,8 @@ chapter: '70'
|
||||||
pages: 1273-1277
|
pages: 1273-1277
|
||||||
---
|
---
|
||||||
|
|
||||||
Chapter 70\
|
## Chapter 70\
|
||||||
Quake: A Post-Mortem and a Glimpse into the Future {#Heading1}
|
Quake: A Post-Mortem and a Glimpse into the Future {#Heading1}
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
*Why did not any of the children in the first group think of this faster
|
*Why did not any of the children in the first group think of this faster
|
||||||
method of going across the room? It is simple. They looked at what they
|
method of going across the room? It is simple. They looked at what they
|
||||||
|
|
|
||||||
3
about.md
3
about.md
|
|
@ -8,8 +8,7 @@ category: 'Web and Software Development: Game Development,Web and Software Devel
|
||||||
Graphics and Multimedia Development'
|
Graphics and Multimedia Development'
|
||||||
---
|
---
|
||||||
|
|
||||||
Foreword {#Heading1}
|
# Foreword {#Heading1}
|
||||||
--------
|
|
||||||
|
|
||||||
I got my start programming on Apple II computers at school, and almost
|
I got my start programming on Apple II computers at school, and almost
|
||||||
all of my early work was on the Apple platform. After graduating, it
|
all of my early work was on the Apple platform. After graduating, it
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@ category: 'Web and Software Development: Game Development,Web and Software Devel
|
||||||
Graphics and Multimedia Development'
|
Graphics and Multimedia Development'
|
||||||
---
|
---
|
||||||
|
|
||||||
Acknowledgments {#Heading1}
|
# Acknowledgments {#Heading1}
|
||||||
---------------
|
|
||||||
|
|
||||||
There are many people to thank—because this book was written over many
|
There are many people to thank—because this book was written over many
|
||||||
years, in many different settings, an unusually large number of people
|
years, in many different settings, an unusually large number of people
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@ category: 'Web and Software Development: Game Development,Web and Software Devel
|
||||||
Graphics and Multimedia Development'
|
Graphics and Multimedia Development'
|
||||||
---
|
---
|
||||||
|
|
||||||
Afterword {#Heading1}
|
# Afterword {#Heading1}
|
||||||
---------
|
|
||||||
|
|
||||||
If you've followed me this far, you might agree that we've come through
|
If you've followed me this far, you might agree that we've come through
|
||||||
some rough country. Still, I'm of the opinion that hard-won knowledge is
|
some rough country. Still, I'm of the opinion that hard-won knowledge is
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@ category: 'Web and Software Development: Game Development,Web and Software Devel
|
||||||
Graphics and Multimedia Development'
|
Graphics and Multimedia Development'
|
||||||
---
|
---
|
||||||
|
|
||||||
Index {#Heading1}
|
# Index {#Heading1}
|
||||||
-----
|
|
||||||
|
|
||||||
**Numbers**
|
**Numbers**
|
||||||
|
|
||||||
|
|
|
||||||
3
index.md
3
index.md
|
|
@ -10,8 +10,7 @@ chapter: '0'
|
||||||
pages: '0'
|
pages: '0'
|
||||||
---
|
---
|
||||||
|
|
||||||
Michael Abrash's Graphics Programming Black Book Special Edition
|
# Michael Abrash's Graphics Programming Black Book Special Edition
|
||||||
----------------------------------------------------------------
|
|
||||||
|
|
||||||
1. [Introduction](intro.html)
|
1. [Introduction](intro.html)
|
||||||
2. [Foreword](about.html)
|
2. [Foreword](about.html)
|
||||||
|
|
|
||||||
3
intro.md
3
intro.md
|
|
@ -8,8 +8,7 @@ category: 'Web and Software Development: Game Development,Web and Software Devel
|
||||||
Graphics and Multimedia Development'
|
Graphics and Multimedia Development'
|
||||||
---
|
---
|
||||||
|
|
||||||
Introduction {#Heading1}
|
# Introduction {#Heading1}
|
||||||
------------
|
|
||||||
|
|
||||||
What was it like working with John Carmack on Quake? Like being strapped
|
What was it like working with John Carmack on Quake? Like being strapped
|
||||||
onto a rocket during takeoff—in the middle of a hurricane. It seemed
|
onto a rocket during takeoff—in the middle of a hurricane. It seemed
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue