|
|
Re: terrain multitexturing shader
[Re: Darkstorm]
#17325
01/22/04 04:38
01/22/04 04:38
|
Joined: Jul 2002
Posts: 156 Thüringen
SFMAT4
Member
|
Member
Joined: Jul 2002
Posts: 156
Thüringen
|
Hallo, ich habe den Shader mit den Detailmap Änderungen versehen. Allerdings wird angezeigt, dass das meine Hardware nicht unterstützt. Habe ich etwas falsch gemacht oder kann ich diesen Effekt nicht auf einer Geforce 4 Ti 4200 nutzen? Vielen Dank für die Hilfe! MfG SF Code:
material mat_terrain_multitexture { effect= " texture entSkin1; texture entSkin2; texture entSkin3; texture entSkin4;
matrix matWorldViewProj; matrix matWorld; matrix matWorldView;
vector vecSunDir; vector vecDiffuse; vector vecAmbient; vector vecLight; vector vecFog; vector vecSkill41;
technique multitexture { pass p { texture[0]=<entSkin1>; texture[1]=<entSkin2>; texture[2]=<entSkin3>; Texture[3]=<entSkin4>;
magFilter[2]=linear; minFilter[2]=linear; mipFilter[2]=linear;
zWriteEnable=true;
vertexShaderConstant[0]=<matWorldViewProj>; vertexShaderConstant[4]=<matWorld>; vertexShaderConstant[8]=<matWorldView>;
vertexShaderConstant[16]=<vecSunDir>; vertexShaderConstant[17]=<vecDiffuse>; vertexShaderConstant[18]=<vecAmbient>; vertexShaderConstant[19]=<vecLight>; vertexShaderConstant[20]=<vecFog>;
vertexShaderConstant[64]=<vecSkill41>; //(u_scale1, v_scale1, u_scale2, v_scale2) VertexShaderConstant[65]=(1.0f,1.0f,0.0f,0.0f); // specifies the tiling of the detail map vertexShaderConstant[95]=(0.0f,0.0f,0.0f,0.0f);
vertexShader= decl { stream 0; float v0[3]; //position float v3[3]; //normal float v7[2]; //uv } asm { vs.1.1 m4x4 oPos,v0,c0 // transform position to clip space
mul oT0.xy,v7.xy,c64.xy // output scaled uvs - stage 0 mul oT1.xy,v7.xy,c64.zw // output scaled uvs - stage 1 mov oT2.xy,v7.xy // output uvs - stage 2 mul oT3.xy,v7.xy,c65.xy // output scaled uvs for the detailmap
m3x3 r0,v3,c4 // transform normal to world space dp3 r0.w,r0,r0 // renormalize it rsq r0.w,r0.w mul r0,r0,r0.w
dp3 r0,r0,-c16 // normal.light -> lighting constant mul r0.xyz,r0,c17 // modulate against material diffuse color add oD0.xyz,r0,c19 // add environment light
mov r1.w,c20.w // r1.w=1 dp4 r0,v0,c10 // distance to camera position add r0,r0,-c20.x // distance-fog_start mad r0.x,-r0.x,c20.z,r1.w // 1-(distance-fog_start)*(1/(fog_end-fog_start)) max oFog.x,r0.x,c95.w // clamp with custom max value }; pixelShader= asm { ps.1.3 def c0,1,1,1,1 tex t0 // sample colormap1 tex t1 // sample colormap2 tex t2 // sample macromap tex t3 // sample detailmap lrp r0.rgb,t2.a,t0,r1 // blend t0 with t1 using the alpha channel of t2 +mov r0.a,c0 //add r0.rgb,r0,t2_bias // add(signed) rgb of t2 mul r0.rgb,r0,t3_bias // add(signed) rgb of t3 (detailmap) mul r0.rgb,r0,v0 // modulate with diffuse vertex lighting }; } } "; }
|
|
|
Re: terrain multitexturing shader
[Re: ventilator]
#17327
01/26/04 03:10
01/26/04 03:10
|
Joined: Jul 2002
Posts: 156 Thüringen
SFMAT4
Member
|
Member
Joined: Jul 2002
Posts: 156
Thüringen
|
Hallo, so langsam wirds mir peinlich  Ich habe deine Änderungen eingefügt. Allerdings kommt entweder eine Fehlermeldung wenn ich den leeren fallback um den Shader lege, oder es wird kein Multytexturing angezeigt wenn ich die Zeile nur über den Shader schreibe. Warscheinlich habe ich nur irgendwas falsch verstanden. Aber ich befasse mich erst seit kurzen mit Shader effekten. Ich bitte meine "dumme" Frage daher zu entschuldigen  Danke für eure GEdult. MfG SF Code:
technique fallback { pass p0 { } } technique multitexture { pass p { . . .
Code:
technique fallback { pass p0 { technique multitexture { pass p { . . . } }
|
|
|
Re: terrain multitexturing shader
[Re: Rhuarc]
#17329
01/26/04 09:29
01/26/04 09:29
|
Joined: Dec 2003
Posts: 1,097 Maryland, USA
Steempipe
Serious User
|
Serious User
Joined: Dec 2003
Posts: 1,097
Maryland, USA
|
I am working on learning the shaders. But have a couple of small shots here: http://steempipe.technicalfoundry.com/terrainshots.htmlThis is using Vent's stock multitexture shader. Just some one-offs for comparison. The shader is using (1) Grass Tex, (1) Dirt Tex, and (1) alphamap for blending. Small pics, and not *very* exciting, yet.
|
|
|
|