Relative Adressierung (HLSL VS-Referenz)
Die [ ] Syntax kann nur in Registertypen verwendet werden, die in bestimmten Shadermodellen relativ adressiert werden können. Die unterstützten Syntaxformen [ ] sind wie folgt aufgeführt:
Hierbei gilt:
- "R" gibt jeden Registertyp an, der relativ adressiert werden kann.
- "A" gibt jedes Register an, das als Index verwendet werden kann, um relativ andere Register zu adressieren.
- n0 - ni, m0 - mj und k sind ganze Zahlen >= 0.
| []Syntax | Effektiver Index | Beispiele |
|---|---|---|
| R [ A + m0 + ... + mj ] | A + m0 + ... + mj | c [ a0.x + 3 + 7 ] |
| R [ k ( = ] Rk ) | k | c [ 10 ] ( = c10 ) |
| R [ A ] | Ein | c [ a0.y ] |
| Rk [ n0 + ... + ni + A + m0 + ... + mj ] | A + k + n0 + ... + ni + m0 + ... + mj | c8 [ 3 + 2 + a0.w + 5 + 6 + 1 ] |
| R [ n0 + ... + ni + A + m0 + ... + mj ] | A + n0 + ... + ni + m0 + ... + mj | c [ 2 + 1 + aL + 3 + 4 + 5 ] |
| Rk [ A ] | A + k | c12 [ aL ] , c0 [ a0.z ] |
| Rk [ A + m0 + ... + mj ] | A + k + m0 + ... + mj | v1 [ aL + 4 + 8 ] |
| R [ n0 + ... + ni + A ] | A + n0 + ... + ni | o [ 3 + 1 + aL ] |
| Rk [ n0 + ... + ni + A ] | A + k + n0 + ... + ni | o1 [ 2 + 1 + 3 + aL ] |
Die Register sind in den folgenden Versionen verfügbar:
| Registertyp | Vertex-Shaderversionen |
|---|---|
| a0 | Alle |
| Al | Im Vergleich _ zu _ 2 0 und höher |
| cn | Im Vergleich zu _ _ 1 1 und höher |
| on | Vs _ 3 _ 0 |