Academic Press, 1994. — 676 p. — ISBN: 0-12-249710-4
From Pixels to Animation: An Introduction to Graphics Programming deals with the C programming language, particularly for the Borland C and Microsoft C languages. The book reviews the basics of graphics programming, including graphics hardware, graphs, charts, changing colors, 3D graphics, high level functions provided by Borland and Microsoft C. The text also explains low-level graphics, getting around the limitations of standard, graphics libraries, SVGA programming, and creating graphics functions. Advanced topics include linear transformations, ray tracing, and fractals. The book explains in detail the aspect ratio of pixels (length of the pixel dot divided by its width), pixel colors, line styles, and the functions to create the graphic. The text also describes the presentation of a three-dimensional object by using perspective, shading, and texturing. Between the operating system, which carries out the instruction of the program, and the hardware, which displays the output of the program, is the Basic Input/Output Services (BIOS). The BIOS is a set of routine instruction inside the different parts or hardware devices in the computer. The book explains programing animation effects by utilizing routines provided by Microsoft or Borland. The text also notes that a programmer can create good animation effects by directly addressing the graphics adapter, bypassing the BIOS or the high-level routines created by Microsoft or Borland. The book is suitable for beginning programmers, computer science, operators, animators, and artists involved with computer aided designs.
Table of FiguresCutaway of a Monochrome Monitor
Very Low Resolution Monitor with Frame Buffer
Magnified line on a Raster Scan Monitor
Color Monitor with Three Electron Guns
Color Monitor with Frame Buffer and Palette Array
A User-Defined Fill Pattern
Blowup of a User-Defined Fill Pattern
An 8 x 8 Section of a User-Defined Fill Pattern
A Closeup of a Bitmapped Letter
A Closeup of a Stroked Letter
A Closeup of a Bitmapped Letter
Finding a Letter in the Bitmap Array
The Bounding Box of an Ellipse
Parameters to the _arc( ) Function
Portion of a Fill Pattern
An Area Filled with Pattern in Fig. 4.2.3
Fill Pattern for Diagonal Lines (Fancy)
Area Filled with Pattern in Fig 4.2.5
A Closeup of a Bitmapped Letter
Closeup of a Stroked Letter 128
A Point Plotted a Distance r and Angle Theta
The RGB Color Cube
The CIE Chromaticity Diagram
Finding Information on the CIE Chromaticity Diagram
Wave forms of points on the CIE Chromaticity Diagram
The RGB Color model on the CIE Chromaticity Diagram
The HSV Color Cone
HLS Double Cone
Color Monitor with Frame Buffer and Palette Registers
Half-Toning Masks
Mask with a Pattern
The Face of a Cube
Face and Right Side of a Cube
All Visible Sides of a Cube
3D Blocks
Rotating a Cube
Cubes with Surface Markings
Table of FiguresThe Eye Sees an Angle
Single Vanishing Point Perspective
Double Vanishing Point Perspective
The Direction of Reflected Light
Light Reflecting Off a 3-Dimensional Ball
Reflection from Smooth and Rough Surfaces
How Distance Affects Texturing
Application Asks DOS for Disk Access
DOS Calls BIOS, Which Is Actually on the Device
Windows Sits on Top of DOS
The Interrupt Vector Table
8086 General Purpose Registers
Bit Layout in Direct Color Modes
Frame Buffer Windows on the Screen
The BytesPerScanLine Field of the ModelnfoBlock
Field Positions and Mask Sizes
Field Positions and Mask Sizes for a 64K Color Mode
SVGA Screen Windows
The Scanline in a 24-Bit Mode Does Not Always End on a Pixel Boundary
Bits Shifted into Position on a 15-Bit Color Mode
As Slope Gets Steeper the Y Values Get Farther Apart
Choice of 3 for the Next Point
Choice of 2 for the Next Point
Cases for Bresenham's Line Algorithm
Possible Pixels Choices for Line with Slope > 1
Eight-Way Symmetry of a Circle
Two Choices for Next Pixel when Drawing a Circle
Ellipses Have Four-way Symmetry
Pixels on an Ellipse
Finding the Next Point on an Ellipse
Finding the Next Point on an Ellipse when the Slope is Greater Than -1
Eight Sections of a Circle
Quadrant II
Quadrant III
Quadrant IV
An SVGA Window Does Not Always Start at the First Pixel of the Scan Line...
Bits in Frame Buffer Need to be Moved to Three Individual Bytes
Problems with Filling a Polygon
Shapes Used by Program BK1201.C
Matrix Multiplication
Table of TablesObject Rotated About the Origin When It Is Not on the Origin
Resizing an Object
A stack of CDs that has been sheared
Reflection and Absorption
Reflection from a Colored Surface
Reflected Light on a Cartesian Grid
A Voxel in 3D Space
A 3D Line Represented as Two 2D Lines
A 3D Ellipse
Bresenhairis Football Algorithm
Sierpinsky's Triangle
Koch's Coastlines
Interesting Life Forms for the Game of Life
Lindenmeyer's Plant
Basis of the SymmaTree
Basis for the Asymmetric Tree
Basis of Maple Leaf and Fern
CGA Monitor Modes
EGA Monitor Modes
All Modes CGA-VGA
SVGA Monitor modes
Monitor Types Defined by the BGI
Monitor Modes Supported by the BGI
Error Codes Used by the BGI
Color Constants Defined by the BGI
Line Styles Ddefmed by the BGI
Fill Patterns defined by the BGI
Constants for Linking .BGI Files into a Program
Borland Supplied Fonts
Text Justifications for settextjustify( )
Video Modes Supported by Microsoft Graphics
Adapter Types Supported by Microsoft Graphics
Monitor Types Supported by Microsoft Graphics
Colors Available in VGA 16-Color Mode
Microsoft Graphics Fonts
Option Codes for Use with __setfont( )
CGA Palettes and Colors
Object Rotated About the Origin When It Is Not on the Origin
Resizing an Object
A stack of CDs that has been sheared
Reflection and Absorption
Reflection from a Colored Surface
Reflected Light on a Cartesian Grid
A Voxel in 3D Space
A 3D Line Represented as Two 2D Lines
A 3D Ellipse
Bresenhairis Football Algorithm
Sierpinsky's Triangle
Koch's Coastlines
Interesting Life Forms for the Game of Life 421
Lindenmeyer's Plant
Basis of the SymmaTree
Basis for the Asymmetric Tree
Basis of Maple Leaf and Fern
CGA Monitor Modes
EGA Monitor Modes
All Modes CGA-VGA
SVGA Monitor modes
Monitor Types Defined by the BGI
Monitor Modes Supported by the BGI
Error Codes Used by the BGI
Color Constants Defined by the BGI
Line Styles Ddefmed by the BGI
Fill Patterns defined by the BGI
Constants for Linking .BGI Files into a Program
Borland Supplied Fonts
Text Justifications for settextjustify( )
Video Modes Supported by Microsoft Graphics
Adapter Types Supported by Microsoft Graphics
Monitor Types Supported by Microsoft Graphics
Colors Available in VGA 16-Color Mode
Microsoft Graphics Fonts
Option Codes for Use with __setfont( )
CGA Palettes and Colors
8086 Special Purpose Registers
The 8086 Flags Register
Modes Supported by Interrupt 0x10
Video Modes Defined by VESA VBE 1.2
Bits in ModeAttributes field of ModeInfoBlock
Frame Buffer
WinAAttributes and WinBAttributes
Bytes per Scan Line
Formerly Optional Information
Memory Models
SVGALib Errors
SVGALib Mode Constants
Possible actions for Borland's putimage( )
Possible Actions for Microsoft's _putimage( )
Register Setup for BIOS Service 0x10, Function 0x10 subservice 0x12, Set Block of Palette Registers