Gamestudio Links
Zorro Links
Newest Posts
Zorro Beta 2.61: PyTorch
by jcl. 06/10/24 14:42
New FXCM FIX Plugin
by flink. 06/04/24 07:30
AlpacaZorroPlugin v1.3.0 Released
by kzhao. 05/22/24 13:41
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
1 registered members (AndrewAMD), 1,394 guests, and 11 spiders.
Key: Admin, Global Mod, Mod
Newest Members
AemStones, LucasJoshua, Baklazhan, Hanky27, firatv
19058 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Ati zu 3dgs shader #54571
09/10/05 06:41
09/10/05 06:41
Joined: Sep 2004
Posts: 238
N - Österreich
Sybercool Offline OP
Member
Sybercool  Offline OP
Member

Joined: Sep 2004
Posts: 238
N - Österreich
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
Re: Ati zu 3dgs shader [Re: Sybercool] #54572
09/11/05 12:20
09/11/05 12:20
Joined: Dec 2002
Posts: 1,999
Switzerland Zürich
JeyKey II Offline
Serious User
JeyKey II  Offline
Serious User

Joined: Dec 2002
Posts: 1,999
Switzerland Zürich
Ich denke, die Arbeit muss Du schon selber machen. Es gibt 100te von Shader im Netz welche angepasst werden könnten.

Ich wusste, dass Du eines Tages diesen Wunsch anbringen wirst.web page


[Jeder ist sich selbst am Nächsten]
Re: Ati zu 3dgs shader [Re: JeyKey II] #54573
09/11/05 13:34
09/11/05 13:34
Joined: Apr 2005
Posts: 4,506
Germany
F
fogman Offline
Expert
fogman  Offline
Expert
F

Joined: Apr 2005
Posts: 4,506
Germany
Ich glaube da bist Du schneller wenn Du es selbst lernst und Dir
einen schreibst...

Quote:

Ich wusste, dass Du eines Tages diesen Wunsch anbringen wirst.




Donnerwetter! Und es hat nur acht Tage gedauert


no science involved

Moderated by  Blink, Hummel, Superku 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1