Unify headings

This commit is contained in:
James Gregory 2013-12-31 07:20:10 +11:00
commit 18f5ace919
76 changed files with 78 additions and 156 deletions

View file

@ -10,12 +10,10 @@ chapter: '01'
pages: 004-007
---
*Part I* {align="center"}
--------
# *Part I* {align="center"}
Chapter 1\
## Chapter 1\
The Best Optimizer Is between Your Ears {#Heading1}
----------------------------------------
### The Human Element of Code Optimization {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '02'
pages: 021-025
---
Chapter 2\
## Chapter 2\
A World Apart {#Heading1}
--------------
### The Unique Nature of Assembly Language Optimization {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '03'
pages: 031-035
---
Chapter 3\
## Chapter 3\
Assume Nothing {#Heading1}
---------------
### Understanding and Using the Zen Timer {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '04'
pages: 075-080
---
Chapter 4\
## Chapter 4\
In the Lair of the Cycle-Eaters {#Heading1}
--------------------------------
### How the PC Hardware Devours Code Performance {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '05'
pages: 111-115
---
Chapter 5\
## Chapter 5\
Crossing the Border {#Heading1}
--------------------
### Searching Files with Restartable Blocks {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '06'
pages: 125-129
---
Chapter 6\
## Chapter 6\
Looking Past Face Value {#Heading1}
------------------------
### How Machine Instructions May Do More Than You Think {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '07'
pages: 136-139
---
Chapter 7\
## Chapter 7\
Local Optimization {#Heading1}
-------------------
### Optimizing Halfway between Algorithms and Cycle Counting {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: 08
pages: 149-153
---
Chapter 8\
## Chapter 8\
Speeding Up C with Assembly Language {#Heading1}
-------------------------------------
### Jumping Languages When You Know It'll Help {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: 09
pages: 167-172
---
Chapter 9\
## Chapter 9\
Hints My Readers Gave Me {#Heading1}
-------------------------
### Optimization Odds and Ends from the Field {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '10'
pages: 190-193
---
Chapter 10\
## Chapter 10\
Patient Coding, Faster Code {#Heading1}
----------------------------
### How Working Quickly Can Bring Execution to a Crawl {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '11'
pages: 205-210
---
Chapter 11\
## Chapter 11\
Pushing the 286 and 386 {#Heading1}
------------------------
### New Registers, New Instructions, New Timings, New Complications {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '12'
pages: 233-237
---
Chapter 12\
## Chapter 12\
Pushing the 486 {#Heading1}
----------------
### It's Not Just a Bigger 386 {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '13'
pages: 248-251
---
Chapter 13\
## Chapter 13\
Aiming the 486 {#Heading1}
---------------
### Pipelines and Other Hazards of the High End {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '14'
pages: 260-263
---
Chapter 14\
## Chapter 14\
Boyer-Moore String Searching {#Heading1}
-----------------------------
### Optimizing a Pretty Optimum Search Algorithm {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '15'
pages: 279-284
---
Chapter 15\
## Chapter 15\
Linked Lists and plain Unintended Challenges {#Heading1}
---------------------------------------------
### Unfamiliar Problems with Familiar Data Structures {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '16'
pages: 295-300
---
Chapter 16\
## Chapter 16\
There Ain't No Such Thing as the Fastest Code {#Heading1}
----------------------------------------------
### Lessons Learned in the Pursuit of the Ultimate Word Counter {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '17'
pages: 322-325
---
Chapter 17\
## Chapter 17\
The Game of Life {#Heading1}
-----------------
### The Triumph of Algorithmic Optimization in a Cellular Automata Game {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '18'
pages: 347-351
---
Chapter 18\
## Chapter 18\
It's a plain Wonderful Life {#Heading1}
----------------------------
### Optimization beyond the Pale {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '19'
pages: 369-373
---
Chapter 19\
## Chapter 19\
Pentium: Not the Same Old Song {#Heading1}
-------------------------------
### Learning a Whole Different Set of Optimization Rules {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '20'
pages: 381-386
---
Chapter 20\
## Chapter 20\
Pentium Rules {#Heading1}
--------------
### How Your Carbon-Based Optimizer Can Put the "Super" in Superscalar {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '21'
pages: 397-402
---
Chapter 21\
## Chapter 21\
Unleashing the Pentium's V-Pipe {#Heading1}
--------------------------------
### Focusing on Keeping Both Pentium Pipes Full {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '22'
pages: 413-417
---
Chapter 22\
## Chapter 22\
Zenning and the Flexible Mind {#Heading1}
------------------------------
### Taking a Spin through What You've Learned {#Heading2}

View file

@ -10,12 +10,10 @@ chapter: '23'
pages: 423-427
---
*Part II* {align="center"}
---------
# *Part II* {align="center"}
Chapter 23\
## Chapter 23\
Bones and Sinew {#Heading1}
----------------
### At the Very Heart of Standard PC Graphics {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '24'
pages: 449-453
---
Chapter 24\
## Chapter 24\
Parallel Processing with the VGA {#Heading1}
---------------------------------
### Taking on Graphics Memory Four Bytes at a Time {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '25'
pages: 461-466
---
Chapter 25\
## Chapter 25\
VGA Data Machinery {#Heading1}
-------------------
### The Barrel Shifter, Bit Mask, and Set/Reset Mechanisms {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '26'
pages: 481-484
---
Chapter 26\
## Chapter 26\
VGA Write Mode 3 {#Heading1}
-----------------
### The Write Mode That Grows on You {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '27'
pages: 499-504
---
Chapter 27\
## Chapter 27\
Yet Another VGA Write Mode {#Heading1}
---------------------------
### Write Mode 2, Chunky Bitmaps,and Text-Graphics Coexistence {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '28'
pages: 523-526
---
Chapter 28\
## Chapter 28\
Reading VGA Memory {#Heading1}
-------------------
### Read Modes 0 and 1, and the Color Don't Care Register {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '29'
pages: 539-545
---
Chapter 29\
## Chapter 29\
Saving Screens and Other VGA Mysteries {#Heading1}
---------------------------------------
### Useful Nuggets from the VGA Zen File {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '30'
pages: 561-566
---
Chapter 30\
## Chapter 30\
Video Est Omnis Divisa {#Heading1}
-----------------------
### The Joys and Galling Problems of Using Split Screens on the EGA and VGA {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '31'
pages: 587-591
---
Chapter 31\
## Chapter 31\
Higher 256-Color Resolution on the VGA {#Heading1}
---------------------------------------
### When Is 320x200 Really 320x400? {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '32'
pages: 607-611
---
Chapter 32\
## Chapter 32\
Be It Resolved: 360x480 {#Heading1}
------------------------
### Taking 256-Color Modes About as Far as the Standard VGA Can Take Them {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '33'
pages: 623-628
---
Chapter 33\
## Chapter 33\
Yogi Bear and Eurythmics Confront VGA Colors {#Heading1}
---------------------------------------------
### The Basics of VGA Color Generation {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '34'
pages: 637-641
---
Chapter 34\
## Chapter 34\
Changing Colors without Writing Pixels {#Heading1}
---------------------------------------
### Special Effects through Realtime Manipulation of DAC Colors {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '35'
pages: 653-658
---
Chapter 35\
## Chapter 35\
Bresenham Is Fast, and Fast Is Good {#Heading1}
------------------------------------
### Implementing and Optimizing Bresenham's Line-Drawing Algorithm {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '36'
pages: 679-683
---
Chapter 36\
## Chapter 36\
The Good, the Bad, and the Run-Sliced {#Heading1}
--------------------------------------
### Faster Bresenham Lines with Run-Length Slice Line Drawing {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '37'
pages: 695-704
---
Chapter 37\
## Chapter 37\
Dead Cats and Lightning Lines {#Heading1}
------------------------------
### Optimizing Run-Length Slice Line Drawing in a Major Way {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '38'
pages: 707-712
---
Chapter 38\
## Chapter 38\
The Polygon Primeval {#Heading1}
---------------------
### Drawing Polygons Efficiently and Quickly {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '39'
pages: 723-727
---
Chapter 39\
## Chapter 39\
Fast Convex Polygons {#Heading1}
---------------------
### Filling Polygons in a Hurry {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '40'
pages: 739-744
---
Chapter 40\
## Chapter 40\
Of Songs, Taxes, and the Simplicity of Complex Polygons {#Heading1}
--------------------------------------------------------
### Dealing with Irregular Polygonal Areas {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '41'
pages: 757-761
---
Chapter 41\
## Chapter 41\
Those Way-Down Polygon Nomenclature Blues {#Heading1}
------------------------------------------
### Names Do Matter when You Conceptualize a Data Structure {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '42'
pages: 773-778
---
Chapter 42\
## Chapter 42\
Wu'ed in Haste; Fried, Stewed at Leisure {#Heading1}
-----------------------------------------
### Fast Antialiased Lines Using Wu's Algorithm {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '43'
pages: 793-799
---
Chapter 43\
## Chapter 43\
Bit-Plane Animation {#Heading1}
--------------------
### A Simple and Extremely Fast Animation Method for Limited Color {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '44'
pages: 817-820
---
Chapter 44\
## Chapter 44\
Split Screens Save the Page Flipped Day {#Heading1}
----------------------------------------
### 640x480 Page Flipped Animation in 64K...Almost {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '45'
pages: 839-843
---
Chapter 45\
## Chapter 45\
Dog Hair and Dirty Rectangles {#Heading1}
------------------------------
### Different Angles on Animation {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '46'
pages: 859-862
---
Chapter 46\
## Chapter 46\
Who Was that Masked Image? {#Heading1}
---------------------------
### Optimizing Dirty-Rectangle Animation {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '47'
pages: 875-879
---
Chapter 47\
## Chapter 47\
Mode X: 256-Color VGA Magic {#Heading1}
----------------------------
### Introducing the VGA's Undocumented "Animation-Optimal" Mode {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '48'
pages: 895-900
---
Chapter 48\
## Chapter 48\
Mode X Marks the Latch {#Heading1}
-----------------------
### The Internals of Animation's Best Video Display Mode {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '49'
pages: 913-918
---
Chapter 49\
## Chapter 49\
Mode X 256-Color Animation {#Heading1}
---------------------------
### How to Make the VGA Really Get up and Dance {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '50'
pages: 931-935
---
Chapter 50\
## Chapter 50\
Adding a Dimension {#Heading1}
-------------------
### 3-D Animation Using Mode X {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '51'
pages: 951-955
---
Chapter 51\
## Chapter 51\
Sneakers in Space {#Heading1}
------------------
### Using Backface Removal to Eliminate Hidden Surfaces {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '52'
pages: 969-972
---
Chapter 52\
## Chapter 52\
Fast 3-D Animation: Meet X-Sharp {#Heading1}
---------------------------------
### The First Iteration of a Generalized 3-D Animation Package {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '53'
pages: 989-992
---
Chapter 53\
## Chapter 53\
Raw Speed and More {#Heading1}
-------------------
### The Naked Truth About Speed in 3-D Animation {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '54'
pages: 1005-1008
---
Chapter 54\
## Chapter 54\
3-D Shading {#Heading1}
------------
### Putting Realistic Surfaces on Animated 3-D Objects {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '55'
pages: 1031-1035
---
Chapter 55\
## Chapter 55\
Color Modeling in 256-Color Mode {#Heading1}
---------------------------------
### Pondering X-Sharp's Color Model in an RGB State of Mind {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '56'
pages: 1046-1050
---
Chapter 56\
## Chapter 56\
Pooh and the Space Station {#Heading1}
---------------------------
### Using Fast Texture Mapping to Place Pooh on a Polygon {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '57'
pages: 1061-1065
---
Chapter 57\
## Chapter 57\
10,000 Freshly Sheared Sheep on the Screen {#Heading1}
-------------------------------------------
### The Critical Role of Experience in Implementing Fast, Smooth Texture Mapping {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '58'
pages: 1077-1081
---
Chapter 58\
## Chapter 58\
Heinlein's Crystal Ball, Spock's Brain, and the 9-Cycle Dare {#Heading1}
-------------------------------------------------------------
### Using the Whole-Brain Approach to Accelerate Texture Mapping {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '59'
pages: 1095-1099
---
Chapter 59\
## Chapter 59\
The Idea of BSP Trees {#Heading1}
----------------------
### What BSP Trees Are and How to Walk Them {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '60'
pages: 1115-1119
---
Chapter 60\
## Chapter 60\
Compiling BSP Trees {#Heading1}
--------------------
### Taking BSP Trees from Concept to Reality {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '61'
pages: 1131-1135
---
Chapter 61\
## Chapter 61\
Frames of Reference {#Heading1}
--------------------
### The Fundamentals of the Math behind 3-D Graphics {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '62'
pages: 1145-1149
---
Chapter 62\
## Chapter 62\
One Story, Two Rules, and a BSP Renderer {#Heading1}
-----------------------------------------
### Taking a Compiled BSP Tree from Logical to Visual Reality {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '63'
pages: 1163-1167
---
Chapter 63\
## Chapter 63\
Floating-Point for Real-Time 3-D {#Heading1}
---------------------------------
### Knowing When to Hurl Conventional Math Wisdom Out the Window {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '64'
pages: 1177-1181
---
Chapter 64\
## Chapter 64\
Quake's Visible-Surface Determination {#Heading1}
--------------------------------------
### The Challenge of Separating All Things Seen from All Things Unseen {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '65'
pages: 1191-1195
---
Chapter 65\
## Chapter 65\
3-D Clipping and Other Thoughts {#Heading1}
--------------------------------
### Determining What's Inside Your Field of View {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '66'
pages: 1209-1213
---
Chapter 66\
## Chapter 66\
Quake's Hidden-Surface Removal {#Heading1}
-------------------------------
### Struggling with Z-Order Solutions to the Hidden Surface Problem {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '67'
pages: 1223-1227
---
Chapter 67\
## Chapter 67\
Sorted Spans in Action {#Heading1}
-----------------------
### Implementing Independent Span Sorting for Rendering without Overdraw {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '68'
pages: 1243-1247
---
Chapter 68\
## Chapter 68\
Quake's Lighting Model {#Heading1}
-----------------------
### A Radically Different Approach to Lighting Polygons {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '69'
pages: 1257-1261
---
Chapter 69\
## Chapter 69\
Surface Caching and Quake's Triangle Models {#Heading1}
--------------------------------------------
### Probing Hardware-Assisted Surfaces and Fast Model Animation Without Sprites {#Heading2}

View file

@ -10,9 +10,8 @@ chapter: '70'
pages: 1273-1277
---
Chapter 70\
## Chapter 70\
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
method of going across the room? It is simple. They looked at what they

View file

@ -8,8 +8,7 @@ category: 'Web and Software Development: Game Development,Web and Software Devel
Graphics and Multimedia Development'
---
Foreword {#Heading1}
--------
# Foreword {#Heading1}
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

View file

@ -8,8 +8,7 @@ category: 'Web and Software Development: Game Development,Web and Software Devel
Graphics and Multimedia Development'
---
Acknowledgments {#Heading1}
---------------
# Acknowledgments {#Heading1}
There are many people to thank—because this book was written over many
years, in many different settings, an unusually large number of people

View file

@ -8,8 +8,7 @@ category: 'Web and Software Development: Game Development,Web and Software Devel
Graphics and Multimedia Development'
---
Afterword {#Heading1}
---------
# Afterword {#Heading1}
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

View file

@ -8,8 +8,7 @@ category: 'Web and Software Development: Game Development,Web and Software Devel
Graphics and Multimedia Development'
---
Index {#Heading1}
-----
# Index {#Heading1}
**Numbers**

View file

@ -10,8 +10,7 @@ chapter: '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)
2. [Foreword](about.html)

View file

@ -8,8 +8,7 @@ category: 'Web and Software Development: Game Development,Web and Software Devel
Graphics and Multimedia Development'
---
Introduction {#Heading1}
------------
# Introduction {#Heading1}
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