11.4 Vertex State

The RSP state includes a vertex buffer, holding up to 16 vertices. This buffer can be loaded with any number of consecutive vertices, beginning at any location.

Table 11-7 gsSPVertex(Vtx *v,unsigned int n,unsigned int v0)
vpointer to a list of vertices
nnumber of vertices
v0vertex buffer location to load vertices into

At the time the vertices are loaded, they are transformed by the current matrix state and possibly shaded by the current lighting state.

Vertices are not re-transformed again, if the matrix state changes, the old (previously-transformed) vertices are not affected. This feature can be exploited to construct data that is knit together between two groups of points with different transformations (such as an elbow joint of a character).

Since the vertex processing is heavily vectorized and pipelined, it is important that each load loads as many vertices as possible.

Since the vertex loading is a relatively slow operation, it is also important that any triangles that share vertices be rendered using the same vertex state, rather than re-loading these same vertices later.

Please see Section 11.3.4, "Note on Coordinate Systems and Big Numbers" for information about keeping coordinates from becoming too large.