Graphics Interface

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