So I got the Shader ATI used in their nature demo, but for some reason it doesn't work. It's DX 8.0, but it just gives me errors.
Any help?
matrix matWorldViewProj;
matrix matWorldView;
technique water
{
pass p0
{
ZWriteEnable=true;
AlphaTestEnable=true;
CullMode=none;
VertexShader=
decl
{
stream 0;
float v0[3]; //position
float v3[3]; //normal
float v7[2]; //uv
}
asm
{
vs.1.1
mul r0, c14, v7.x
mad r0, c15, v7.y, r0
mov r1, c16.x
mad r0, r1, c13, r0
add r0, r0, c12
frc r0.xy, r0
frc r1.xy, r0.zwzw
mov r0.zw, r1.xyxy
mul r0, r0, c10.x
sub r0, r0, c0.y
mul r0, r0, c1.w
mul r5, r0, r0
mul r1, r5, r0
mul r6, r1, r0
mul r2, r6,r0
mul r7, r2, r0
mul r3, r7, r0
mul r8, r3, r0
mad r4, r1, c2.y, r0
mad r4, r2, c2.z, r4
mad r4, r3, c2.w, r4
mov r0, c0.z
mad r5, r5, c3.x, r0
mad r5, r6, c3.y, r5
mad r5, r7, c3.z, r5
mad r5, r8, c3.w, r5
dp4 r0, r4, c11
mul r0.xyz, c0.xxzx, r0
add r0.xyz, r0, v0
mov r0.w, c0.z
m4x4 oPos, r0, c4
mul r1, r5, c11
dp4 r9.x, -r1, c14
dp4 r9.yzw, -r1, c15
mov r5, c0.xxzx
mad r5.xy, r9, c10.y, r5
mov r4, v9
mad r4.z, -r9.x, c10.y, r4.z
dp3 r10.x, r5, r5
rsq r10.y, r10.x
mul r5, r5, r10.y
dp3 r10.x, r4, r4
rsq r10.y, r10.x
mul r4, r4, r10.y
mul r3, r4.yzxw, r5.zxyw
mad r3, r4.zxyw, -r5.yzxw, r3
sub r1, c9, r0
sub r2, c8, r0
dp3 r10.x, r1, r1
rsq r10.y, r10.x
mul r1, r1, r10.y
dp3 r6.x, r1, r3
dp3 r6.y, r1, r4
dp3 r6.z, r1, r5
dp3 r10.x, r2, r2
rsq r10.y, r10.x
mul r2, r2, r10.y
dp3 r7.x, r2, r3
dp3 r7.y, r2, r4
dp3 r7.z, r2, r5
mov r0, c16.x
mul r0, r0, c24
frc r0.xy, r0
mul r1, v7, c26
add oT0, r1, r0
mov r0, c16.x
mul r0, r0, c25
frc r0.xy, r0
mul r1, v7, c27
add oT1, r1, r0
dp4 r0.x, v0, c20
dp4 r0.y, v0, c21
dp4 r0.zw, v0, c22
mov oT2, r0
mov oT3, r7
mov oT4, v7
mov oT5, r6
};
PixelShader=
asm
{
ps.1.4
texld r0, t0
texld r1, t1
texcrd r2.xy, t2_dw.xyw
texcrd r4.xyz, t3
texcrd r5.xyz, t5
add_d2 r1.rgb, r0_bx2, r1_bx2
mov r3.xy, r2
dp3 r0.r, r4, r1
dp3 r0.g, r1, r5
mad_sat r5.rg, r1, c2, r3
mad_sat r4.rg, r1, c1, r3
phase
texcrd r0.rgb, r0
texld r2, r4
texld r3, r5
mul_sat r2.rgb, r3, c3
+mul r2.a, r0.g, r0.g
mul_sat r3.rgb, r3, c4
+mul_sat r2.a, r2.a, r2.a
mad_sat r0.rgb, 1-r0.r, r2, r3
+mul_sat r2.a, r2.a, r2.a
mad_sat r0.rgb, r2.a, c6, r0
+mov r0.a, r0.r
};
}
}