wie kann ich die schader von ATI Rendermonkey 1.6 so umändern dass sie mit A6 laufen?

hier mal der code den rendermonkey ausspuckt:
Code:
 
//**************************************************************//
// Effect File exported by RenderMonkey 1.6
//
// - Although many improvements were made to RenderMonkey FX
// file export, there are still situations that may cause
// compilation problems once the file is exported, such as
// occasional naming conflicts for methods, since FX format
// does not support any notions of name spaces. You need to
// try to create workspaces in such a way as to minimize
// potential naming conflicts on export.
//
// - Note that to minimize resulting name collisions in the FX
// file, RenderMonkey will mangle names for passes, shaders
// and function names as necessary to reduce name conflicts.
//**************************************************************//

//--------------------------------------------------------------//
// Metal Effects Group
//--------------------------------------------------------------//
//--------------------------------------------------------------//
// MetalEffect
//--------------------------------------------------------------//
//--------------------------------------------------------------//
// Skull Pass
//--------------------------------------------------------------//
string Metal_Effects_Group_MetalEffect_Skull_Pass_Metal_Effect_Skull_Pass_Skull : ModelData = "../../../Programme/ATI Research Inc/RenderMonkey 1.6/Examples/Media/Models/Skull.3ds";

//--------------------------------------------------------------//
// vs1
//--------------------------------------------------------------//
VertexShader Metal_Effects_Group_MetalEffect_Skull_Pass_vs1_ = asm
{
vs.1.1

dcl_position v0
dcl_normal v1
dcl_texcoord v2
dcl_tangent v3
dcl_binormal v4

// output vertex position
m4x4 oPos, v0, c0

// output texture coordinates
mov oT0, v2

// output normal vector
mov oT2, v1

// find the light position in object space
mov r0, c9
m4x4 r1, r0, c5

// find light vector
sub r1, r1, v0

// normalize light vector
dp3 r2.x, r1, r1
rsq r2.x, r2.x
mul r1.xyz, r1.xyz, r2.xxx

// output light vector
mov oT1, r1

// find the eye position in object space
mov r0, c4
m4x4 r2, r0, c5

// find eye vector
sub r2, r2, v0

// normalize eye vector
dp3 r3.x, r2, r2
rsq r3.x, r3.x
mul r2.xyz, r2.xyz, r3.xxx

// output eye vector
mov oT4, r2

// find half angle vector
add r3, r1, r2
mul r3, r3, c10.yyy

// normalize half angle vector
dp3 r4.x, r3, r3
rsq r4.x, r4.x
mul r3.xyz, r3, r4.xxx

mov r3.xy, v1.xy

// normalize half angle vector
dp3 r4.x, r3, r3
rsq r4.x, r4.x
mul r3.xyz, r3, r4.xxx

// output half angle vector vector
mov oT3, r3





















































};

//--------------------------------------------------------------//
// ps1
//--------------------------------------------------------------//
PixelShader Metal_Effects_Group_MetalEffect_Skull_Pass_ps1_ = asm
{
ps.1.4

def c0, 0.0f, 0.0f, 0.0f, 1.0f

texcrd r0.rgb, t0 // env map
texcrd r1.rgb, t1 // L
texcrd r2.rgb, t2 // N
texcrd r3.rgb, t3 // H
texcrd r4.rgb, t4 // V

// N.L
dp3 r5, r2, r1

// offset basemap
mov r0.a, c0.a
add r0, r0, r5

// N.H
dp3 r4.r, r2, r3

// H.H (aka ||H||^2)
dp3_sat r4.g, r3, r3
mov r4.g, 1-r4.g

phase

texld r1, r4 // N.H^k
texld r0, r0 // base

mul r1.rgb, r1, r5
mul r1.rgb, r1, c1

mul r5.rgb, r5, c2
mul r0.rgb, r5, r0

add_sat r0, r0, r1




};

//--------------------------------------------------------------//
// Disc Pass
//--------------------------------------------------------------//
string Metal_Effects_Group_MetalEffect_Disc_Pass_Metal_Effect_Disc_Pass_Disc : ModelData = "../../../Programme/ATI Research Inc/RenderMonkey 1.6/Examples/Media/Models/Disc.3ds";

//--------------------------------------------------------------//
// Vertex Shader
//--------------------------------------------------------------//
VertexShader Metal_Effects_Group_MetalEffect_Disc_Pass_Vertex_Shader_ = asm
{
vs.1.1

dcl_position v0
dcl_normal v1
dcl_texcoord v2
dcl_tangent v3
dcl_binormal v4

// Swizzle pos to orient disc
mov r0.x, v0.x
mov r0.y, v0.z
mov r0.z, v0.y
mov r0.w, v0.w

// Offset disc
add r0, r0, c10

// Transform to viewproj space
m4x4 r1, r0, c0
mov oPos, r1

// output texture coordinates
mov oT0, v2.yx

// find the light position in object space
mov r0, c9
m4x4 r1, r0, c5

// find light vector
sub r1, r1, v0

// normalize light vector
dp3 r2.x, r1, r1
rsq r2.x, r2.x
mul r1.xyz, r1, r2.xxx

// rotate light vector into tangent space
dp3 r2.x, r1, c9
dp3 r2.y, r1, v4

// orient normal
mov r3.x, v1.x
mov r3.y, v1.z
mov r3.z, v1.y

dp3 r2.z, r1, r3
mov r2.w, v1.w

// output light vector
mov oT1, r2

// find the eye position in object space
mov r0, c4
m4x4 r1, r0, c5

// find eye vector
sub r1, r1, v0

// normalize eye vector
dp3 r3.x, r1, r1
rsq r3.x, r3.x
mul r1.xyz, r1, r3.xxx

// rotate eye vector into tangent space
dp3 r3.x, r1, c9
dp3 r3.y, r1, v4
dp3 r3.z, r1, v1
mov r3.w, v1.w

// output eye vector
mov oT4, r3

// find half angle vector
add r1, r2, r3

// normalize half angle vector
dp3 r3.x, r1, r1
rsq r3.x, r3.x
mul r1, r1, r3.xxx

// output half angle vector
mov oT3, r1

















};

//--------------------------------------------------------------//
// Pixel Shader
//--------------------------------------------------------------//
PixelShader Metal_Effects_Group_MetalEffect_Disc_Pass_Pixel_Shader_ = asm
{
ps.1.4

def c0, 0.0f, 0.0f, 0.0f, 1.0f

texld r0, t0 // base map
texld r1, t0 // N
texcrd r2.rgb, t3 // H
texld r3, t0 // k
texcrd r4.rgb, t1 // L

// N.L
dp3_sat r4, r1_bx2, r4

// N.H
dp3 r1.r, r1_bx2, r2

// (N.H)^2
mul r1.r, r1.r, r1.r

// ||H||^2
dp3_sat r1.b, r2, r2

// ||H||^2 * k * 0.5
mul_d2_sat r1.g, r1.b, r3.r

mov r1.g, 1-r1.g

phase

texld r2, r1_dz

mov r0.a, c0.a

mov r4.a, c0.a
mul r2, r2, r4
mul r2, r2, r0


mul r0, r0, r4
add_sat r0, r0, r2



};

//--------------------------------------------------------------//
// Car Paint Effects
//--------------------------------------------------------------//
//--------------------------------------------------------------//
// CheapShiny
//--------------------------------------------------------------//
//--------------------------------------------------------------//
// Pass 1
//--------------------------------------------------------------//
string Car_Paint_Effects_CheapShiny_Pass_1_Teapot : ModelData = "../../../Programme/ATI Research Inc/RenderMonkey 1.6/Examples/Media/Models/Teapot.3ds";

//--------------------------------------------------------------//
// Vertex Shader
//--------------------------------------------------------------//
VertexShader Car_Paint_Effects_CheapShiny_Pass_1_Vertex_Shader_ = asm
{

vs.1.1

dcl_position v0
dcl_normal v1
dcl_texcoord v2
dcl_tangent v3
dcl_binormal v4

m4x4 oPos, v0, c0


// get the y component of the normal and transform it into viewspace
mov r0, v1
m3x3 r1, r0, c4

// scale and bias to get it to range [0,1]
mul r1.y, r1.y, c8.y

// output as tex coord to index horizon gradient
add oT0, r1.y, c8.y







};

//--------------------------------------------------------------//
// Pixel Shader
//--------------------------------------------------------------//
PixelShader Car_Paint_Effects_CheapShiny_Pass_1_Pixel_Shader_ = asm
{

ps.1.4


// use the normalized horizon angle to index the horizon gradient
texld r0, t0

mov r1.rgb, c0
+mov_sat r1.a, c0.a

// scale reflection by inverse base alpha
mul r0, r0, 1-r1.a

// scale base by base alpha then add base and reflection colors
mad_sat r0, r1, r1.a, r0







};

//--------------------------------------------------------------//
// CarPaint2Tone
//--------------------------------------------------------------//
//--------------------------------------------------------------//
// Pass 1
//--------------------------------------------------------------//
string Car_Paint_Effects_CarPaint2Tone_Pass_1_Teapot : ModelData = "../../../Programme/ATI Research Inc/RenderMonkey 1.6/Examples/Media/Models/Teapot.3ds";

//--------------------------------------------------------------//
// Vertex Shader
//--------------------------------------------------------------//
VertexShader Car_Paint_Effects_CarPaint2Tone_Pass_1_Vertex_Shader_ = asm
{

vs.1.1

dcl_position v0
dcl_normal v1
dcl_texcoord v2
dcl_tangent v3
dcl_binormal v4

m4x4 oPos, v0, c4 //OutPos = ObjSpacePos * WVP Matrix

mov r0, c2 // find the eye position in object space
m4x4 r1, r0, c8

sub r8, r1, v0 //viewer direction

dp3 r10.x, r8, r8 //magnitude
rsq r10.y, r10.x //normailize
mul r8, r8, r10.y //V normalized view vector in r2
add r1, r8, r8 //2V
dp3 r10.x, r1, v3 //2V.N
mad r7, v1, r10.x, -r8 // W=(2V.N)N-V reflevted view vector in r1
mov r5, v1 //normal (tZ)
mov r4, v3 //tangent (tY)
mul r3, r4.yzxw, r5.zxyw
mad r3, r4.zxyw, -r5.yzxw, r3 //setup binormal (tX) vector perp to normal in r3

m3x3 oT1, v1, c12 //xform view vec into tangent space
mul oT0, v2, c1.x //output bumpmap texcoords

m3x3 oT2, v1, c12









};

//--------------------------------------------------------------//
// Pixel Shader
//--------------------------------------------------------------//
PixelShader Car_Paint_Effects_CarPaint2Tone_Pass_1_Pixel_Shader_ = asm
{

ps.1.4
texld r0, t0 //bump map

texld r1, t1 //view vector lookup (norm cube)
texld r2, t2 //env map reflection vector lookup

lrp r3.rgb, c7.a, r0_bx2, c7
+mov_sat r3.a, r1_bx2.b
mul_x8 r5.rgb, r2, r2.a
+mad_sat r5.a, 1-r3.a, 1-r3.a, c3.a // (1-N.V)^2 + fresnel boost

mul r5.rgb, r5, r5.a // mult HDR by fresnel term
dp3 r3.a, r3, r1_bx2 //sparkle N.V
mul r3.a, r3.a, r3.a // (N.V)^2

mad_sat r3.rgb, c1, r3_x2.a, r5
+mad_sat r3.a, r3.a, r3.a, c0.a // ~(N.V)^8


mad_sat r0.rgb, c2, r3_x2.a, r3 //add sparkles


+mul_sat r0.a, r2.a, r2.a //hdr glow in alpha + sparkles






};

//--------------------------------------------------------------//
// CarPaintMetalic
//--------------------------------------------------------------//
//--------------------------------------------------------------//
// Single Pass
//--------------------------------------------------------------//
string Car_Paint_Effects_CarPaintMetalic_Single_Pass_Teapot : ModelData = "../../../Programme/ATI Research Inc/RenderMonkey 1.6/Examples/Media/Models/Teapot.3ds";

//--------------------------------------------------------------//
// Vertex Shader
//--------------------------------------------------------------//
VertexShader Car_Paint_Effects_CarPaintMetalic_Single_Pass_Vertex_Shader_ = asm
{
vs.1.1

dcl_position v0
dcl_normal v1
dcl_texcoord v2
dcl_tangent v3
dcl_binormal v4

m4x4 oPos, v0, c4 // OutPos = ObjSpacePos * WVP Matrix

mov r0, c2 // Find the eye position in object space
m4x4 r1, r0, c8

sub r8, r1, v0 // Compute view direction

dp3 r10.x, r8, r8 // Normalize the view vector
rsq r10.y, r10.x //
mul r8, r8, r10.y //

add r1, r8, r8 // Compute 2V
dp3 r10.x, r1, v1 // Compute 2V.N
mad r7, v1, r10.x, -r8 // Compute reflected view vector
// W = (2V.N)N - V

mov r5, v1 // The normal vector
mov r4, v3 // The tangent vector
mul r3, r4.yzxw, r5.zxyw // Setup binormal (tX) vector perp to normal in r3
mad r3, r4.zxyw, -r5.yzxw, r3 //
m3x3 r6, r8, r3 // Transform view vector into tangent space
mul oT0, v2, c1.x // Output bump map texture coordinates

m3x3 oT1, r7, c12 // Output reflection vector (in object space)
mov oT2, r3 // Output inverse tangent space basis vector 0 (X)
mov oT3, r4 // Output inverse tangent space basis vector 1 (Y)
mov oT4, r5 // Output inverse tangent space basis vector 2 (Z)
mov oT5, r8 // Output view vector in object space

mov oD0.xyz, r6 // Output view vector in tangent space









};

//--------------------------------------------------------------//
// Pixel Shader
//--------------------------------------------------------------//
PixelShader Car_Paint_Effects_CarPaintMetalic_Single_Pass_Pixel_Shader_ = asm
{
ps.1.4

texld r0, t0 // Read from microflake noise map to get perturbed normals
texld r1, t1 // Environment map reflection vector lookup ( for the gloss coat)
texcrd r3.rgb, t2 // Inverse tangent space base vector 0 ( tan X )
texcrd r4.rgb, t3 // Inverse tangent space base vector 1 ( tan Y )
texcrd r5.rgb, t4 // Inverse tangent space base vector 2 ( ten Z )
texcrd r2.rgb, t5 // The view vector

lrp r0.rgb, c5.a, r0_bx2, c5 // Increase the microflake perturbed normal a bit

mul r3.rgb, r0.r, r3
mad r3.rgb, r0.g, r4, r3
mad r3.rgb, r0.b, r5, r3 // Convert the perturbed normal from
dp3_sat r4, r2, r3 // Nbw.Vw

mad r3.rgb, r3_x2, r4, -r2 // Compute Rw = 2N(V.N)-V

mul_x8 r1.rgb, r1, r1.a // Brighten up the luminosity by 8
mov r5, r1

phase
texld r0, t0 // Load the second microflake normal from the microflake
texld r1, r3 // noise map to simulate second layer of metallic flakes

mul_sat r1.rgb, r1, r1.a // Increase the 2nd microflake layer normal
+mad_sat r0.a, 1-v0.b, 1-v0.b, c1.a // Compute (1-N.V)^2

lrp r4.rgb, c3, r4, v0.b // Simulate color scattering
mul r4.rgb, r4_x2, c4 // Combine resulting color with base color
mul r1.rgb, r1, r0 // Add microflakes color
mad r1.rgb, r1, r5, r4 // Combine sparkles with base color gradient
lrp r0.rgb, r0.a, r5, r1 // Add reflections from the environment map

mul r0.a, r1.a, c2.a // Final color composite


};

//--------------------------------------------------------------//
// Technique Section for Metal Effects Group
//--------------------------------------------------------------//
technique MetalEffect
{
pass Skull_Pass
{
CULLMODE = CCW;
ZFUNC = LESS;
ZENABLE = TRUE;

VertexShader = (Metal_Effects_Group_MetalEffect_Skull_Pass_vs1_);
PixelShader = (Metal_Effects_Group_MetalEffect_Skull_Pass_ps1_);
}

pass Disc_Pass
{
ZFUNC = LESS;
CULLMODE = NONE;

VertexShader = (Metal_Effects_Group_MetalEffect_Disc_Pass_Vertex_Shader_);
PixelShader = (Metal_Effects_Group_MetalEffect_Disc_Pass_Pixel_Shader_);
}

}

//--------------------------------------------------------------//
// Technique Section for Car Paint Effects
//--------------------------------------------------------------//
technique CheapShiny
{
pass Pass_1
{

VertexShader = (Car_Paint_Effects_CheapShiny_Pass_1_Vertex_Shader_);
PixelShader = (Car_Paint_Effects_CheapShiny_Pass_1_Pixel_Shader_);
}

}

technique CarPaint2Tone
{
pass Pass_1
{

VertexShader = (Car_Paint_Effects_CarPaint2Tone_Pass_1_Vertex_Shader_);
PixelShader = (Car_Paint_Effects_CarPaint2Tone_Pass_1_Pixel_Shader_);
}

}

technique CarPaintMetalic
{
pass Single_Pass
{

VertexShader = (Car_Paint_Effects_CarPaintMetalic_Single_Pass_Vertex_Shader_);
PixelShader = (Car_Paint_Effects_CarPaintMetalic_Single_Pass_Pixel_Shader_);
}

}






Wenn alles schläft und einer spricht, den Zustand nennt mann UNTERRICHT