Computergrafik
Programmable Pipeline #1
← Fixed Function Pipeline | ● | Programmable Pipeline 2 →
- Evolutionsstufe #1: Vertex und Fragment Programme
- Ersetzen die Per-Vertex und Per-Fragment Operationen der Pipeline
- Abstrakte Assemblersprache, muss für jeweilige Hardware umgesetzt werden
- Grunddatenelement sind nicht Variablen (Skalare) sondern Vektor-Register
Perspektivische Projektion als Vertex Program:
PARAM mat[4]={state.matrix.mvp};
TEMP vtx,col,pos;
### fetch actual vertex
MOV vtx,vertex.position;
MOV col,vertex.color;
### transform vertex with combined modelview
DP4 pos.x,mat[0],vtx;
DP4 pos.y,mat[1],vtx;
DP4 pos.z,mat[2],vtx;
DP4 pos.w,mat[3],vtx;
### write resulting vertex
MOV result.position,pos;
MOV result.color,col;