Nintendo 64 uses a display list hierarchy to describe what to render. 3D geometry transformation and rasterization are accelerated by RSP and RDP respectively. There is no immediate mode rendering. The R4300 CPU generates the display list in memory, then the RCP fetches the display list and renders the graphics.
Graphics Binary Interface
Nintendo 64 renders graphics using a display list interface called "graphics binary interface" (GBI). The CPU assembles the GBI structure in RDRAM for the RSP/RDP to render. The RSP must first be downloaded with graphics microcode to perform geometry transformation. The RDP performs polygon rasterization.
RSP and RDP state machines are described in detail in Section 11, “RSP Graphics Programming” and Section 12, “RDP Programming.”
Figure 4.5.1 Graphics Pipeline
GBI Geometry and Attribute Hierarchy
The GBI structure describes a hierarchy of geometry and its attributes. This tree is traversed depth first and the graphics pipeline attributes are sequentially modified during traversal. Both geometry (RSP) and raster (RDP) attributes are contained in a GBI structure.
Figure 4.5.2 Graphics Binary Interface (GBI) of an Airplane
GBI Feature Set
The graphics binary interface (GBI) contains many 3D graphics features. An algorithmic description of many of these features can be found in the "OpenGL Programmer’s Guide." Table 4-1 below, lists the basic features of the GBI pipeline.
Table 1 GBI Feature Set
Processor |
Functionality |
CPU |
GBI Assembly |
RSP |
matrix stack operations
3D transformations
frustrum clipping and back-face rejection
lighting and reflection mapping
polygon and line rasterization
RDP |
polygon rasterization
texturing/filtering
blending
z-buffering
antialiasing
|
|
RSP Geometry Microcode
There are three different versions of RSP geometry microcode: gspFast3D, gspLine3D, and gspTurbo3D. The gspFast3D microcode is the optimized, full-featured 3D polygonal geometry microcode. The gspLine3D is the optimized, full-featured 3D line geometry microcode, and the gspTurbo3D is the optimized, reduced-featured 3D polygonal geometry microcode. Each of these microcode types come in two versions. One version of the microcode has the RSP output the rasterization and attribute commands directly to the RDP. The other version outputs RDP commands to DRAM. Writing the RDP commands to DRAM could be used to overlap graphics and audio. For example, you could use the RSP for audio processing while the RDP is processing commands stored in DRAM. Storing the RDP commands in DRAM may also be useful for debugging.
Copyright © 1999
Nintendo of America Inc. All Rights Reserved
Nintendo and N64 are registered trademarks of Nintendo
Last Updated January, 1999
|