PACKET LIST FORMAT Note When mode and flag are set with the values shown here, they default to creating a one-sided primitive that will be rendered with no semitransparency. To alter these, see earlier notes. Pigment refers to the inherent colour of the primitive, before lightsources alter the appearance on screen. A gradient pigment has a different RGB value at each vertex, and by using the same interpolation algorithm that gouraud shading uses, a smooth transition between colours is achieved. LIST OF PRIMITIVES INCLUDED SO FAR 3 SIDED, FLAT SHADING, FLAT PIGMENT 3 SIDED, GOURAUD SHADING, FLAT PIGMENT 3 SIDED, FLAT SHADING, GRADIENT PIGMENT 3 SIDED, GOURAUD SHADING, GRADIENT PIGMENT 3 SIDED, TEXTURED, FLAT SHADING, NO PIGMENT 3 SIDED, TEXTURED, GOURAUD SHADING, NO PIGMENT 3 SIDED, NO SHADING, FLAT PIGMENT 3 SIDED, NO SHADING, GRADIENT PIGMENT 3 SIDED, TEXTURED, NO SHADING, FLAT PIGMENT 3 SIDED, TEXTURED, NO SHADING, GRADIENT PIGMENT 3 SIDED, FLAT SHADING, FLAT PIGMENT olen = 0x04; ilen =0x03; flag =0x00; mode =0x20; { u_char R, G, B; - pigment of polygon u_char mode2; - same as mode (above) u_short Normal0; - index value of normal element u_short Vertex0; - index value of vertex element u_short Vertex1; u_short Vertex2; } TMD_3_FS_FP; 3 SIDED, GOURAUD SHADING, FLAT PIGMENT olen = 0x06; ilen =0x04; flag =0x00; mode =0x30; { u_char R, G, B; - pigment of polygon u_char mode2; - same as mode (above) u_short Normal0; - index value of normal element u_short Vertex0; - index value of vertex element u_short Normal1; u_short Vertex1; u_short Normal2; u_short Vertex2; } TMD_3_GS_FP; 3 SIDED, FLAT SHADING, GRADIENT PIGMENT olen = 0x06; ilen =0x05; flag =0x04; mode =0x20; { u_char R0, G0, B0; - pigment of polygon at Vertex0 u_char mode2; - same as mode (above) u_char R1, G1, B1; - pigment of polygon at Vertex1 u_char pad1; - ignored u_char R2, G2, B2; - pigment of polygon at Vertex2 u_char pad2; - ignored u_short Normal0; - index value of normal element u_short Vertex0; - index value of vertex element u_short Vertex1; u_short Vertex2; } TMD_3_FS_GP; 3 SIDED, GOURAUD SHADING, GRADIENT PIGMENT olen = 0x06; ilen =0x06; flag =0x04; mode =0x30; { u_char R0, G0, B0; - pigment of polygon at Vertex0 u_char mode2; - same as mode (above) u_char R1, G1, B1; - pigment of polygon at Vertex1 u_char pad1; - ignored u_char R2, G2, B2; - pigment of polygon at Vertex2 u_char pad2; - ignored u_short Normal0; - index value of normal element u_short Vertex0; - index value of vertex element u_short Normal1; u_short Vertex1; u_short Normal2; u_short Vertex2; } TMD_3_GS_GP; 3 SIDED, TEXTURED, FLAT SHADING, NO PIGMENT olen = 0x07; ilen =0x05; flag =0x00; mode =0x24; { u_char U0, V0; - X and Y coordinate of texture for Vertex0 u_short CBA; - position of CLUT for texture in VRAM (see earlier) u_char U1, V1; - X and Y coordinate of texture for Vertex1 u_short TSB; - information about texture in VRAM (see earlier) u_char U2, V2; - X and Y coordinate of texture for Vertex2 u_short pad; - ignored u_short Normal; - index value of normal element u_short Vertex0; - index value of vertex element u_short Vertex1; u_short Vertex2; } TMD_3_TX_FS_NP; 3 SIDED, TEXTURED, GOURAUD SHADING, NO PIGMENT olen = 0x9; ilen =0x06; flag =0x00; mode =0x34; { u_char U0, V0; - X and Y coordinate of texture for Vertex0 u_short CBA; - position of CLUT for texture in VRAM (see earlier) u_char U1, V1; - X and Y coordinate of texture for Vertex1 u_short TSB; - information about texture in VRAM (see earlier) u_char U2, V2; - X and Y coordinate of texture for Vertex2 u_short pad; - ignored u_short Normal0; - index value of normal element u_short Vertex0; - index value of vertex element u_short Normal1; u_short Vertex1; u_short Normal2; u_short Vertex2; } TMD_3_TX_GS_NP; 3 SIDED, NO SHADING, FLAT PIGMENT olen = 0x04; ilen =0x03; flag =0x01; mode =0x21; { u_char R, G, B; - pigment of polygon u_char mode2; - same as mode (above) u_short Vertex0; - index value of vertex element u_short Vertex1; u_short Vertex2; u_short pad; - ignored } TMD_3_NS_FP; 3 SIDED, NO SHADING, GRADIENT PIGMENT olen = 0x06; ilen =0x05; flag =0x01; mode =0x35; { u_char R0, G0, B0; - pigment of polygon at Vertex0 u_char mode2; - same as mode (above) u_char R1, G1, B1; - pigment of polygon at Vertex1 u_char pad1; - ignored u_char R2, G2, B2; - pigment of polygon at Vertex2 u_char pad2; - ignored u_short Vertex0; - index value of vertex element u_short Vertex1; u_short Vertex2; u_short pad; - ignored } TMD_3_NS_GP; 3 SIDED, TEXTURED, NO SHADING, FLAT PIGMENT olen = 0x07; ilen =0x06; flag =0x01; mode =0x25; { u_char U0, V0; - X and Y coordinate of texture for Vertex0 u_short CBA; - position of CLUT for texture in VRAM (see earlier) u_char U1, V1; - X and Y coordinate of texture for Vertex1 u_short TSB; - information about texture in VRAM (see earlier) u_char U2, V2; - X and Y coordinate of texture for Vertex2 u_short pad1; - ignored u_char R, G, B; - pigment of polygon u_char pad2; - ignored u_short Vertex0; - index value of vertex element u_short Vertex1; u_short Vertex2; u_short pad; - ignored } TMD_3_TX_NS_FP; 3 SIDED, TEXTURED, NO SHADING, GRADIENT PIGMENT olen = 0x9; ilen =0x08; flag =0x01; mode =0x35; { u_char U0, V0; - X and Y coordinate of texture for Vertex0 u_short CBA; - position of CLUT for texture in VRAM (see earlier) u_char U1, V1; - X and Y coordinate of texture for Vertex1 u_short TSB; - information about texture in VRAM (see earlier) u_char U2, V2; - X and Y coordinate of texture for Vertex2 u_short pad1; - ignored u_char R0, G0, B0; - pigment of polygon at Vertex0 u_char pad2; - ignored u_char R1, G1, B1; - pigment of polygon at Vertex1 u_char pad3; - ignored u_char R2, G2, B2; - pigment of polygon at Vertex2 u_char pad4; - ignored u_short Vertex0; - index value of vertex element u_short Vertex1; u_short Vertex2; u_short pad; - ignored } TMD_3_TX_NS_GP;