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
> > RDP | polygon 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