home *** CD-ROM | disk | FTP | other *** search
- //-------------------------------
- // File: ShaderInstancing.vsh
- // Date: 28/1/2005 [Agre]
- //---------------------------------------------------------------------------------------------------------
- // Shader-instancing para objetos con formato de vΘrtice XYZUVI
- // Soporta paleta de 30 matrices
- //
- // c0 -> Constantes globales (0.3f, 0.0f, 3.0f, 1.0f)
- // [c1], c2, c3, c4 -> Matriz de proyeccion/vista
- // [c5], c6, c7 -> matriz de transformaci≤n [paleta 1] 5 + (3 * (i_matriz - 1))
- // c8, c9, c10 -> matriz de transformaci≤n [paleta 2]
- // c11, c12, c13 -> matriz de transformaci≤n [paleta 3]
- // c14, c15, c16 -> matriz de transformaci≤n [paleta 4]
- // c17, c18, c19 -> matriz de transformaci≤n [paleta 5]
- // c20, c21, c22 -> matriz de transformaci≤n [paleta 6]
- // ...
- // C89, c90, c91 -> matriz de transformaci≤n [paleta 29]
- // c92, c93, c94 -> matriz de transformaci≤n [paleta 30]
- //---------------------------------------------------------------------------------------------------------
- vs.1.1
-
- dcl_position v0
- dcl_texcoord v1
- dcl_blendindices v3
-
- mov r0.x, v3.x
- mul r0.x, r0.x, c0.z // c0.z = 3 (n·mero de vectores por matriz de tranformaci≤n)
- mov a0.x, r0.x
- m4x3 r0, v0, c[a0.x + 5] // Posici≤n de la paleta de matrices en las constantes
- mov r0.w, c0.w
- m4x4 r1, r0, c1
- mov oPos, r1
- mov oT0.xy, v1.xy
- mov oD0.xyzw, c0.wwww
- mov oFog, c0.w
-