N64® Function Reference

al - Audio Library Functions
gDP - DP GBI Macros
gdSP - General GBI Macros
gSP - SP GBI Macros
gt - Turbo Microcode RDP
gu - Graphics Utilities
Math - Math Functions
nuSys - NuSystem
os - N64 Operating System
sp - Sprite Library Functions
uh - Host to Target IO
64DD - N64 Disk Drive
Demos and Sample Code
Miscellaneous Tools
Emulator 2.0 INDY Device
Microcode

Nintendo® Confidential

Warning: all information in this document is confidential and covered by a non-disclosure agreement. You are responsible for keeping this information confidential and protected. Nintendo will vigorously enforce this responsibility.

   



N64 Graphics Terminology

"A" value
The alpha value.
Aliasing
When you display lines or polygons using display equipment that has pixels (like TV), steps (notches) appear on diagonal and curved lines and polygon borders. Aliasing refers to these steps.
Alpha compare
The process used to synthesize a translucent polygon drawing in pixels by comparing the alpha value of the pixel with a set threshold and using a conditional writing algorithm.
Alpha value
The level of opacity. The larger the alpha value, the more opaque the image. In other words, the smaller the alpha value, the more transparent the image.
Ambient light
The light that disperses into the environment with no direction. It determines the color of the part of the object that is not lit (that is, the part that has no directional light shining on it).
Anti-aliasing
A technique used to smooth lines and image edges by reducing the jagged edges (notches) sometimes seen in bitmap images. This is accomplished by shading pixels along the edge with colors that are a blend of the adjacent colors. This feature is implemented in the N64 RCP graphics hardware.
Aperture or Field-of-view angle
The angle that defines the visible area.
Bilinear filtering
A process that provides bilinear interpolation for the color change of a texture so that texels (texture pixels) don't become large when the texture is extended.
Bilinear interpolation
The two-dimensional linear interpolation provided in the vertical and horizontal directions. It is a technique used to improve the appearance of a textured surface when viewed at a given distance by blending the colors of adjacent texels. This feature is implemented in the N64 RCP graphics hardware.
Bilerp
Short for "bilinear interpolation."
Bitmap
Any image represented with pixels.
Blend color compare
The alpha value (threshold) used in the alpha compare process.
Blend texture
The texture used to determine the mixed ratio between the shading and texture RGB values when using the texture "A" value.
Blender
The RDP component used to mix the calculated pixels and framebuffer pixels. The blender (BL) is used in translucent polygon drawing process, the anti-aliasing process, the fog process, the dither process, and so on.
Blender mux control bit
The data used to set the blender hardware. This data defines the blend expression. It is stored in the "othermode" parameter of the RDP.
Bounding volume test
The test used for volume culling. The test checks to see if the object is completely outside the viewing volume. If it is, display list items for that object are not executed, so processing speeds up.
Box filter
One of the modes of the texture filter. It balances the four texels that lie around the sampling point. It is most effective when the sampling point is placed in the center of four texels.
Chroma-key process
The process that sets a specific color (often blue) to be rendered as transparent and then synthesizes more than two images leaving out the parts that have the specific (blue) color.
CI
The color index texture type.
Clamp
A technique that simply uses the edge data for the texture if you specify an area larger than the texture size.
Clipping
The process that cuts off polygons or lines outside of the view in order to reduce the amount of data being processed during rendering. Although clipping takes a relatively long time to process, you can reduce the process time by changing the ratio between the clipping rectangle and screen, and then using clipping along with the faster process of scissoring.
Clipping pyramid or box
The three-dimensional area outside of which clipping occurs. In other words, objects sticking out of this area are clipped.
Color buffer
Color frame buffer, where drawing data is stored.
Coverage value
The information about how much of a pixel is covered by a primitive. There are 16 subpixels for each pixel. It is used by the anti-aliasing process.
CPU
Central processing unit. The main processor in a computer, which in the case of the N64 is a MIPS 4000 series 64-bit processor operating at approximately 93 megahertz. This is very similar to the CPUs in the Silicon Graphics workstations.
Culling
The process whereby unnecessary objects are culled (removed) from the display and from the graphic command pipeline (the display list). For example, the back of an object and objects out of view are culled from the display list.
cvgbit
The coverage value.
Detail texture
Even if you use tri-linear MIP map interpolation, the texture becomes blurry when it approaches the maximum level of MIP mapping. The detail texture shows the detail texture design when MIP mapping is unsuitable.
Diffuse light
Light that reflects in all directions with the same strength as opposed to reflecting light where the strength of reflecting light depends on the angle of incidence.
Display list
The series of GBI commands needed for a drawing routine that provides all the necessary GBI commands each time without rerunning the routine. This makes the program simple, and ensures that the object will always be drawn the same way as quickly as possible.
Dither filter
In the 16-bit format, each color is allocated only 5 bits. So, to enhance the color data, a dither filter is applied to give each color 8 bits by adding correction data in a special pattern in the lowest 3 bit positions. This softens the mach band effect.
Dither matrix
The correction data pattern for the low 3 bits used by the dither filter.
Dithering
A technique used to enhance image quality by increasing the apparent number of colors beyond those that are actually used to display the image. Basically, a different but close color is specified by using neutral tints and placed here and there in the image. This feature is implemented in the N64 RCP graphics hardware as an implementation of the dither filter.
Double buffering
A process that uses a pair of color frame buffers. One color frame buffer is used to display on the screen while the other is being rendered into. When drawing ends, the roles of the two buffers are exchanged. This technique provides smoother animation and higher frame rates.
Environment mapping
A rendering technique used to create realistic-looking reflections on a suface. Reflections are everywhere in the real world but conspicuously absent from most video games due to the extremely high performance required to process reflections in real time. You can execute it easily in N64 development by using reflection mapping. This feature is implemented in the N64 RCP graphics hardware.
Fill rate
The pixel drawing rate per second.
Flat shading
To fill up an entire primitive with a single color.
Flip
To move the texture by switching the coordinates such that the s coordinate goes to the y direction and the t coordinate goes to the x direction.
Flip book animation
Animation that looks like a flip-book comic.
Fog process
The process that makes far-away objects look misty or foggy to simulate normal atmospheric effects. This provides realistic views of objects in the distance. Thanks to this, even if the quality of the far-away object falls, the whole quality of the image is not affected as much. It also can be used to soften the pop-in or pop-out effect. This feature is implemented in the N64 RCP graphics hardware.
Frame buffer
An area of RAM used to store the pixel data for a single screen image (frame).
Frame rate (FPS)
The number of frames displayed per second (FPS). Higher frame rates provide for smoother motion. Broadcast video operates at 30 FPS. Movies are shown at 24 FPS. The N64 can support rates up to 60 FPS, much faster than videos or movies. The maximum is 60 FPS in the NTSC system and 50 FPS in PAL.
Gamma correction
The correction of intensity changes that take into account the fact that the human eye responds to ratios of intensity rather than to absolute values of intensity. Therefore, intensity changes need to be spaced logarithmically rather than linearly to achieve equal steps in brightness. The characteristics of the CRT display are also taken into consideration when gamma correction occurs.

The N64 has gamma correction hardware, and gamma correction is recommended; the antialiasing and video hardware work best when it is enabled.
Geometry
The three-dimensional coordinate data or a graphic form created by it. It is much more efficient to use textures to create complex objects than it is to use geometry.
Geometry engine
A system that executes numeric value calculations using three-dimensional coordinate information to create geometric objects.
Geometric primitive
A basic geometric element of three-dimensional space. Primitives are combined to compose a complex and varied scenes. Examples include points, line segments, polygons, and any area enclosed by line segments.
Global state register
The register that specifies the configuration and synchronization of the pipeline inside the RDP. It sets the cycle type, the synchronization between the pipeline and the attributes, and the information about the atomic primitive mode.
Gouraud shading
A shading technique named after the researcher who developed it. It is also known as "intensity interpolation shading" or "color interpolation shading" or simply "smooth shading." Using Gouraud shading an object is rendered with smoothly changing color across its face. Each vertex can have a unique color and they will be blended evenly between the vertices for reduced "banding" and enhanced realism. This is accomplished by collecting and interpolating each vertex color to eliminate intensity discontinuities and thus make vertices and edges inconspicuous so that a smooth curved surface is created. This feature is implemented in the N64 RCP graphics hardware.

The cost of geometric processing in the RSP follows in order of decreasing performance:
  1. Flat shade
  2. Gouraud shade
  3. Gouraud shade + Z-Buffer
  4. Gouraud shade + Texture
  5. Gouraud shade + Z-Buffer + Texture
Graphic Binary Interface (GBI)
The display list interface used to render graphics. Each command or single instruction in the display list is 64 bits in length. The GBI command string is called the display list.

The CPU assembles the GBI structure in RDRAM for the RSP/RDP to render. The RSP must first download the graphics microcode in order to perform geometry transformation. The RDP performs polygon rasterization. The graphics binary interface (GBI) contains many 3D graphics features. Following are the basic features of the GBI pipeline:

Processor Functionality
CPU GBI assembly
RSP matrix stack operations
3D transformations
frustum clipping and back-face rejection
lighting and reflection mapping
polygon and line rasterization setup
RDPpolygon rasterization
texturing/filtering
blending
z-buffering
antialiasing
GBI Macro
GBI
Graphics pipeline
The calculations that create the image. It includes the rasterizer, the texture filter, the color combiner, the blender, and the memory interface inside of the RDP.
I value
The intensity value.
IA mode
The mode having the I (intensity) and alpha (opacity) information at each texel. The 4-bit format is 3/1, the 8-bit format is 4/4 and the 16-bit format is 8/8-bit.
Intensity gradation
Gradation using brightness (I).
Intensity mode
The mode having only the intensity information at each texel. It has 4-bit and 8-bit formats.
Intensity ramp
The transition difference (slope) of the intensity.
Internal edge
Edges that two visible-displayed polygons share.
Intersection mode
A mode you can use when one surface is sticking into another surface. you don't have to use this mode when objects intersect, but if you do, the intersection is correctly anti-aliased.
Inverse kinematics (IK)
A modeling approach for showing objects in motion. It uses complex mathematical algorithms to move objects so that the motion appears normal. Kinematics refers to the positions and velocities of points in space. Inverse kinematics refers to the determination of how an object would move through space if x force is applied and the object is moving at y speed given the number, positions, and range of motion of the object's joints. It uses the principals governing the behavior of connected parts and joints. This approach is suitable for the animation of humans or animals.
Level of detail (LOD)
The level of detail. Objects that are traveling fast or are far away can be rendered with much less detail without noticeable loss of quality. This greatly improves the drawing rate. This feature is implemented in the N64 RCP graphics hardware.
Material properties or characteristics
Objects can be rendered more realistically if the properties or characteristics of the material are considered. For example, chalk tends to be dull whereas metal tends to be shiny. The reflection and transparency characteristics of an object's material can be mathematically expressed by using the following data:
  • The reflection
  • The transparency
  • The object's internal color
  • The object's surface color
  • The object's density
  • The mirror face factor
  • The plane roughness factor
  • The inside roughness factor
  • The metal factor
  • The inflectional ratio
  • The diffusion factor
Matrix
Matrices are used to describe an object's position and direction in three-dimensional space. Matrix calculations are used for coordinate transformations when rotating or moving an object in three-dimensional space and for projecting an object on the screen.
Matrix stack
The stack used to implement complex matrix operations. There are two types of stacks: a 10-element modeling matrix stack to hold data relating to the object's position or direction and a 1-element viewing matrix stack to hold data relating to the viewing position or direction.
Mesh object
The collection of vertices, lines, and triangle faces.
MIP mapping
A mapping (or filtering) technique for mapping textures onto polygons. MIP stands for multum in parvo, which means "many things in a small place." This technique improves the appearance of a textured surface by computing new textures to be displayed based on the distance of the object from the viewer. This can be used to prevent annoying noise or patterns from developing at certain distances, and it can be used to ensure that a texture viewed up close does not look like giant pixels. This feature is implemented in the N64 RCP graphics hardware.
Modulation texture
The mix-adjusted texture that combines the texture and shade colors. It is provided by the color combiner.
Morphing
An animation technique used to transition between two shapes or images.
Motion Capture
A technology that allows the motion of a human (or other species) to be "captured" by a computer and then used to animate a 3D model.
MPEG
The abbreviation of "Motion Picture Experts Group." The digital compression method for color animation.
Multi-tile texture
By using the maximum of eight texture tiles to display a texture, it's possible to MIP map or use detail textures while in a 2-cycle mode.
Multiprocessing
The ability of a system that contains more than one processor to execute separate processes on each processor simultaneously. The N64 can execute separate processes on the CPU, RSP, and RDP simultaneously allowing it to draw pixels, produce audio, and respond to player input all at the same time. However only one process executes at one time on any one processor.
Multitasking
The ability of an operating system to execute two or more processes simultaneously. The N64 operating system provides support for multitasking the RCP because the RCP contains two processors, the RDP and RSP. However only a single process executes at one time on any one processor. The current process has the full attention of the processor until that process yields.
Multithread programming
A technique used to organize an application into logically separate programs called threads that execute simultaneously. The N64 software libraries and operating system provide support for a multithread-like operation on the CPU by using a preemptive priority system. However, no time slicing or round-robin scheduling is provided. The current process has the full attention of the CPU until it stops on its own or yields the CPU to a process that has a higher priority; that is, until the current process is preempted.
Near clipping
A technique that clips any object that lies closer than a certain distance from the viewer. Usually you'll want to clip these objects that are "too close" to the observer, but you can choose not to do it. There is microcode that prevents clipping under certain conditions.
Near plane and Far plane
The near plane is the plane of the viewing pyramid closest to the observer. The far plane is the farthest plane away from the observer.
NURBS
The abbreviation of "Non-Uniform Rational B-Spline." A method used for expressing a curve or curved surface by using a high-level function.
Nyquist's Law
The sampling theorem that says that if you perform the sampling at more than twice the maximum frequency of the input signal, you can reproduce the original signal accurately.
Octree
Expands a quadtree 2D image encoding system to 3D using the same binary subdivision technique.
Ortho camera
Orthographic camera.
Outside edge
The external or silhouette edge.
Painter's algorithm
A method of rendering polygons from the far to the near plane that provides suitable anti-aliasing and transparency on the N64.
Particle system
A particle is a very small object. A particle system is a modeling technique that uses many of these particles. It is an ideal technique for expressing something that is comprised of many pieces gathered together based on some general law.
Perspective-correct texture mapping
A technique used to produce more realistic textures by taking into account the concept of perspective. This feature is implemented in the N64 RCP graphics hardware.
Pixel
A single dot on the screen
Pixel depth
The number of bits used to represent the color and the alpha (opacity) of a pixel. A pixel depth of 24 bits can represent 16.7 million different colors.
Point sampling
The simplest technique used to view a textureed surface at a given distance. It provides fast but coarse results. Point sampling is possible on the N64, but bilinear or trilinear interpolation is preferred because they offer much better quality.
Polygons
The basic 2D elements from which a 3D object is constructed. Typically a polygon is a triangle, although rectangles are also used.
Pop-out and Pop-in
Pop-out means that the object moves away and suddenly disappears from the screen. Pop-in means that the object moves in and suddenly appears on the screen.
Primitive
The basic elements (dots, lines, and polygons) to be used to draw 3D objects.
Quadtree
A 2D representation format used to encode images. It uses binary subdivision to encode the image by successively subdividing a 2D plane to form quadrants. A quadtree that represents an area of the plane has quadrants that are either full (black), partially full (gray), or empty (white). The partially full quadrants are recursively subdivided until all quadrants are either full or empty.
Raster
A scan line. The horizontal line on the display screen (TV).
Raster image
An image displayed by using the raster scan line.
Rasterize
To use each vertex and color of a primitive to create pixels inside the primitive. Each pixel has attributes such as coordinates, depth value, color value, LOD level, cover value, and so on that are used in calculations later.
RDP pipeline
For RDP in N64 RCP, every rendering function unit must be composed in the pipeline form.
Resolution
The number of pixels in height and width on the screen. There are two modes, high resolution and normal resolution. The normal video mode for the N64 provides a resolution of 320 pixels horizontally and 240 pixels vertically. The high resolution mode, which is used less frequently, provides for 640 pixels horizontally and 480 pixels vertically.
Reflection highlight
A specular highlight.
Reflection mapping
A texture mapping method that dynamically calculates the texture coordinate that reflects into the position by using the normal vector of the reflection mapping object. Used to show the surroundings reflecting on the object's surface.
Rendering
To convert a specified primitive to image data for the framebuffer. Specifically, it is the process of creaing an image on the screen from polygons, textures, lights, and so forth, as opposed to simply displaying pre-computed graphics and animation. It is the real-time rendering that allows a player to move freely in a 3D world.
RGBA mode
The mode having the RGB (red, green, blue) and alpha information at each texel. The 16-bit format is 5/5/5/1 and the 32-bit format is 8/8/8/8-bit.
Scale-up factor
The setting in the VI (video interface) that is the scaling factor for enlarging or reducing images. You can specify from 0.25 through 1.0 for the X direction and from 0.05 through 1.0 for the Y direction.
Scissoring
A process that cuts off parts that lie outside the drawing rectangle.
Span buffer
A buffer in the RCP used to store lines of a polygon. It can speed up processing when you store this information in the RCP instead of leaving it in RDRAM.
Specular highlight
The bright spot that appears when light reflects off a shiny object. Because it is implemented by using a texture, you cannot use a specular highlight on a texture-mapped object.
Sprite
A rectangle image. In N64, a sprite is drawn by using a texture.
Sprite animation
A 2D rendering technique. N64 supports sprite animation with additional 3D features.
Sub-pixel
A piece (1/16) of a pixel obtained when you split one pixel into 16 (4 by 4) sub-pixels. Sub-pixels are used to compute a coverage value.
Texel
A point (pixel) within a texture map.
Texture map
Bitmapped pictures or patterns placed onto the surface of polygon. It's simply called a texture.
Texture mapping
The process of placing a bitmap image (a texture) onto the surface of a polygon during rendering. For example, placing a photograph of bricks onto a polygon to create the illusion of a brick wall. Texture mapping is essential to create realistic 3D worlds.
Texture memory
The 4K-byte special on-chip memory built into the RDP. Because it's separated into 4 simultaneously accessible banks, it can output 4 texels with 1 clock.
Texture tile descriptor
TMEM can store a maximum of eight texture tile descriptors that hold the following information for each tile: the texture size, flags of wrap/clamp/mirror, the format, the TMEM address, and so on.
TLMMI
Trilinear MIP map interpolation. A sophisticated rendering mode that combines trilinear interpolation with MIP mapping. This is generally considered to be the highest quality form of texture mapping. This feature is implemented in the N64 RCP graphics hardware.
TLUT (Texture Look-Up Table)
The color index palette that holds the color information corresponding to each palette number that is created in the last 2K bytes of TMEM when you use the color index (CI) mode.
TMEM
Texture memory, which is only 4K bytes.
Trilinear interpolation
The three-dimensional linear interpolation provided to the vertical, horizontal, and depth directions. It is a rendering technique used to improve the appearance of a textured surface when viewed at a given distance by blending the colors of adjacent texels from two separate texture maps. This feature is implemented in the N64 RCP graphics hardware.
Vertex
A point where two or more lines intersect. In other words, a point in 3D space that defines a corner of one or more polygons.
Vertex alpha
The alpha value (opacity value) specified by the vertex.
Vertex cache
Cache that holds the vertex data after the coordinate transformation operation. The vertex cache size varies depending on microcode type.
Video display logic
The VI (video interface).
Viewing pyramid
The definition of the three-dimensional area that shows the view (inside the screen).
Volume culling
A technique that checks to see which parts of a complicated object are completely off-screen. Then it culls (removes) all operations in the display list that deal with these off-screen objects.
Wrap
A technique that creates large textures by repeating a small texture over and over. If you use wrap, the texture size must be an exponent of 2.
YUV
The digital video signal standard consisting of the intensity (Y) and the color difference (UV) components. Because human eyes are not so sensitive to the color component, it decreases the sampling of the color component and provides effective compression. For example, it is used in MPEG animation.
YUV-RGB conversion
The conversion from YUV to RGB provided by the texture filter and the color combiner.
Z-Buffer
A rendering technique where the distance from the viewer (Z) for each pixel is stored during rendering and used to determine which objects are displayed. If for instance, a pixel representing the dashboard of a car has already been drawn in a given location on the screen, then by comparing the distance from the viewer to the bumper to that of the dashboard, the program knows that the bumper should not be drawn over the top (in front) of the dashboard. This feature is implemented in the N64 RCP graphics hardware.



Nintendo® Confidential

Copyright © 1998
Nintendo of America Inc. All rights reserved
Nintendo and N64 are registered trademarks of Nintendo
Last Updated March 1998