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 >
Wrap
Text File
|
2005-02-12
|
2KB
|
42 lines
//----------------------------------------------------------------------------------------
// Constantes especificadas por la aplicacion
//----------------------------------------------------------------------------------------
// c0-c3 = view/projection matrix
// c4 = diffuse color constant
// c5 = (fWeight1, 1.0 - fWeight, 1.0, 0.0)
// c6 = punto de vista
// c7 = factores niebla (A,B,1,0)
// c8-c10 = world matrix
//
// Vertex components (as specified in the vertex DECL)
// v0 = Position 1 (stream 1)
// v1 = Position 2 (stream 2)
// v2 = Texcoords (stream 3)
//----------------------------------------------------------------------------------------
// Vertex-Shader interpola 2 posiciones desde 2 streams y aplica transformacion
// e iluminacion constante, y asigna coordenadas de textura desde canal independiente!
//----------------------------------------------------------------------------------------
vs.1.1
dcl_position0 v0 // v0 = Position 1 (stream 1)
dcl_position1 v1 // v1 = Position 2 (stream 2)
dcl_texcoord0 v2 // v2 = Texcoords (stream 3)
mul r0, v0, c5.y // Multiplicamos posicion vertice 1 por (1-fblending)
mad r0, v1, c5.x, r0 // Sumamos a eso posicion vertice 2 por (fblending)
m4x3 r5, r0, c8 // Matriz de mundo (r5 --> punto en mundo)
mov r5.w, c7.z
m4x4 oPos, r5, c0 // Matriz de vista/proyecci≤n
mov oD0.xyzw, c5.zzzz // load constant color
mov oT0.xy, v2 // Copiamos coordenadas de textura
//--------------------------
// - Calculo de la NIEBLA -
//--------------------------
add r6, c6, -r5
dp3 r6.w, r6.xyz, r6.xyz
rsq r6.w, r6.w
rcp r6.w, r6.w // Obtenemos la distancia del punto a la cßmara para que sirva para calcular la niebla
mul r6.w, -r6.w, c7.y // F = A - B*d A = (end / (end - start)) B = 1 / (end - start)
add oFog, r6.w, c7.x