home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2005 May / Gamestar_73_2005-05_dvd.iso / Dema / IMPERIAL_GLORY / data1.cab / NewComponent1 / Data.pak / Engine / LinearTweenFog.vsh < prev    next >
Text File  |  2005-02-12  |  2KB  |  42 lines

  1. //----------------------------------------------------------------------------------------
  2. // Constantes especificadas por la aplicacion
  3. //----------------------------------------------------------------------------------------
  4. // c0-c3     = view/projection matrix
  5. // c4         = diffuse color constant
  6. // c5         = (fWeight1, 1.0 - fWeight, 1.0, 0.0)
  7. // c6       = punto de vista
  8. // c7       = factores niebla (A,B,1,0)
  9. // c8-c10   = world matrix
  10. //
  11. // Vertex components (as specified in the vertex DECL)
  12. //    v0    = Position 1 (stream 1)
  13. //    v1    = Position 2 (stream 2)
  14. //    v2    = Texcoords     (stream 3)
  15. //----------------------------------------------------------------------------------------
  16. // Vertex-Shader interpola 2 posiciones desde 2 streams y aplica transformacion 
  17. // e iluminacion constante, y asigna coordenadas de textura desde canal independiente!
  18. //----------------------------------------------------------------------------------------
  19. vs.1.1
  20. dcl_position0 v0                //    v0    = Position 1 (stream 1)
  21. dcl_position1 v1                //    v1    = Position 2 (stream 2)
  22. dcl_texcoord0 v2                //    v2    = Texcoords     (stream 3)
  23.  
  24. mul r0, v0, c5.y                // Multiplicamos posicion vertice 1 por (1-fblending)
  25. mad r0, v1, c5.x, r0            // Sumamos a eso posicion vertice 2 por (fblending)
  26. m4x3 r5, r0, c8                 // Matriz de mundo (r5 --> punto en mundo)
  27. mov r5.w, c7.z
  28. m4x4 oPos, r5, c0               // Matriz de vista/proyecci≤n
  29. mov oD0.xyzw, c5.zzzz             // load constant color
  30. mov oT0.xy, v2                    // Copiamos coordenadas de textura
  31.  
  32.  
  33. //--------------------------
  34. // - Calculo de la NIEBLA - 
  35. //--------------------------
  36. add r6, c6, -r5
  37. dp3 r6.w, r6.xyz, r6.xyz
  38. rsq r6.w, r6.w
  39. rcp r6.w, r6.w                  // Obtenemos la distancia del punto a la cßmara para que sirva para calcular la niebla
  40. mul r6.w, -r6.w, c7.y           // F = A - B*d      A = (end / (end - start))       B = 1 / (end - start)
  41. add oFog, r6.w, c7.x
  42.