Chapter 6 3D README File

Chapter 6 3D contains the following example programs:

******************************************************************************
    NOTE: No checking is done to see if the monitor supports the
          requested display mode.  Make sure that the monitor
          you are using supports the display mode you are attempting
          to set!
******************************************************************************

ABLEND.EXE
-demonstrates using CCE command packets to set alpha blending states. Draws
two partially overlapping shaded triangles. Source and destination blending
modes and the alpha combining function may be controlled through the
following keys:

    S: cycle through source blending modes.
    D: cycle through destination blending modes.
    C: cycle through alpha blending combine modes.

ATEST.EXE
-demonstrates using CCE command packets to set alpha testing states. Draws
a transparent explosion sprites over a textured background, then draws a
translucent blue film over the sprite. Without alpha testing the parts of
the blue film overlapping the explosion sprite will be occluded by the
sprite due to z testing. With alpha testing enabled, the transparent pixels
in the explosion sprite are rejected do not occlude the blue film. The
alpha testing state and the reference alpha may be controlled through the
following keys:

    A: toggle alpha testing on and off.
    I: increment alpha reference.
    D: decrement alpha reference.

IDXFANI.EXE
-demonstrates how to draw an indexed triangle fan using the
CCE_PACKET3_3D_RNDR_GEN_INDX_PRIM Type-3 command packet. Vertex data is
copied into a dedicated vertex buffer, and vertex indices are copied into the
ring buffer as part of the packet.

IDXFANL.EXE
-demonstrates how to draw a 3D triangle fan using the
CCE_PACKET3_3D_RNDR_GEN_INDX_PRIM Type-3 command packet. Vertices are copied
into a dedicated vertex buffer. No index list is provided in the packet.
Instead, vertices are consumed from the vertex buffer in sequential order
starting from the specified vertex buffer offset up to the specified count of
vertices.

IDXLSTI.EXE
-demonstrates how to draw an indexed triangle list using the
CCE_PACKET3_3D_RNDR_GEN_INDX_PRIM Type-3 command packet. Vertex data is
copied into a dedicated vertex buffer, and vertex indices are copied into the
ring buffer as part of the packet.

IDXLSTL.EXE
-demonstrates how to draw a 3D triangle list using the
CCE_PACKET3_3D_RNDR_GEN_INDX_PRIM Type-3 command packet. Vertices are copied
into a dedicated vertex buffer. No index list is provided in the packet.
Instead, vertices are consumed from the vertex buffer in sequential order
starting from the specified vertex buffer offset up to the specified count of
vertices.

IDXSTPI.EXE
-demonstrates how to draw an indexed triangle strip using the
CCE_PACKET3_3D_RNDR_GEN_INDX_PRIM Type-3 command packet. Vertex data is
copied into a dedicated vertex buffer, and vertex indices are copied into the
ring buffer as part of the packet.

IDXSTPL.EXE
-demonstrates how to draw a 3D triangle strip using the
CCE_PACKET3_3D_RNDR_GEN_INDX_PRIM Type-3 command packet. Vertices are copied
into a dedicated vertex buffer. No index list is provided in the packet.
Instead, vertices are consumed from the vertex buffer in sequential order
starting from the specified vertex buffer offset up to the specified count of
vertices.

LINE3D.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
independent lines. Draws several radial lines within a circle.

MULTITEX.EXE
-demonstrates using CCE command packets to set multitexturing states. Draws
a brick textured square covered by a lightmap texture. The following keys
may be used to control texturing states:

    1: cycle through primary texture color combine functions.
    2: cycle through primary texture color factors.
    3: cycle through primary texture input factors.
    4: cycle through primary texture alpha combine functions.
    5: cycle through primary texture alpha factors.
    6: cycle through primary texture alpha input factors.
    7: cycle through secondary texture color combine functions.
    8: cycle through secondary texture color factors.
    9: cycle through secondary texture input factors.
    0: cycle through secondary texture alpha combine functions.
    A: cycle through secondary texture alpha factors.
    B: cycle through secondary texture alpha input factors.
    C: cycle through secondary texture S  wrap modes.
    D: cycle through secondary texture S clamp modes.
    E: cycle through secondary texture T wrap modes.
    F: cycle through secondary texture T clamp modes.

PLINE3D.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
a polyline. Draws the perimeter of a fan as a polyline.

POINT.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
points. Draws several random points over a black background.

RENDST.EXE
-demonstrates using CCE command packets to set culling, dithering, and
shading states. Draws a shaded triangle over a white background. The
following keys may be used to control rendering states:

    D: toggle dithering on and off.
    S: cycle through shading modes.
    V: switch between D3D and OpenGL flat shading convention:
       D3D-color of 1st vertex, OpenGL-color of 3rd vertex.
    C: switch between CW and CCW front facing directions.
    F: cycle through front facing culling functions.
    B: cycle through back facing culling functions.

RINGFAN.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
a triangle fan. Vertices are copied into the ring buffer as part of the
command packet. Draws a gouraud shaded circle as a fan.

RINGLST.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
a triangle list. Vertices are copied into the ring buffer as part of the
command packet. Draws several small independent triangles in a triangle list.

RINGSTP.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
a triangle strip. Vertices are copied into the ring buffer as part of the
command packet. Draws a gouraud shaded ring as a triangle strip.

STENCIL.EXE
-demonstrates using CCE command packets to set stencil buffering states.
Draws a large gouraud shaded rectangle as the background, and a smaller
shaded rectangle over the background. Uses the stencil buffer to "cookie cut"
a small triangle in the overlapping triangle, thus allowing the background
to show through.

TABFOG.EXE
-demonstrates using CCE command packets to set table fog states. Draws a
shaded, fogged quadrangle.

TRIANGLE.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
a single triangle. Draws a single gouraud shaded triangle.

TRITEX.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
a single triangle, and Type-0 packets to set texture mapping states. The
following keys may be used to control texture states:

    M: cycle through texture magnification blend modes.
    N: cycle through texture minification blend modes.
    C: cycle through texture combine function modes.
    T: toggle between two textures.

TRITXFN.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
a triangle fan, and Type-0 packets to set texture mapping states. Draws a
texture mapped circle as a fan.

TRITXLST.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
a triangle list, and Type-0 packets to set texture mapping states. Draws
several independent texture mapped triangles in a list.

TRITXSTP.EXE
-demonstrates using the 3D_RNDR_GEN_PRIM Type-3 CCE command packet to render
a triangle strip, and Type-0 packets to set texture mapping states. Draws a
texture mapped ring as a triangle strip.

VERTFOG.EXE
-demonstrates using CCE command packets to set vertex fog states. Draws a
shaded, fogged quadrangle.

ZBUF.EXE
-demonstrates using CCE command packets to set zbuffer states. Draws a square
intersected by a triangle. Pressing any key causes the program to cycle
through the z compare functions.

ZBUFTEX.EXE
-demonstrates using CCE command packets to set zbuffer and texture mapping
states simultaneously. Draws a texture mapped square intersected by a
texture mapped triangle. Pressing any key causes the program to cycle
through the z compare functions.

