Texturen unabhängig verschieben

Posted By: ChrisB

Texturen unabhängig verschieben - 09/05/04 01:18

Hallo
in meinen effekt hab ich zwei Texturen die ich miteinander mische. Nun möchte ich das sich die zwei Texturen unabhängig voneinander verschieben. Wie mach ich das??
Ich raff das echt nicht. Jedesmal verschwindet eine Textur. Helft mir bitte!

Code:
 
material at3{
event = mtl_at3_texture;
ambient_blue = 150;
ambient_green = 80;
ambient_red = 80;
skin2=atmo_bmp;
albedo = 20;
effect="
texture entSkin1; // die Entity Skin
texture mtlSkin2;
matrix matMtl;
technique test
{
pass p0
{
//CullMode=5;
EdgeAntialias=TRUE ;

Texture[0] = <entSkin1>;
Texture[1] = <mtlSkin2>;
ColorArg1[0] = Texture; // stage 0 = skin texture
ColorOp[0] = SelectArg1;
ColorArg2[0] = Diffuse; // von der Beleuchtung moduliert
ALPHAARG1[0] = TEXTURE;
AlphaOp[0]=SelectArg1;


ColorArg1[1] = Texture; // stage 0 = skin texture
ColorOp[1] = Modulate;
ColorArg2[1] = Current;
ALPHAARG1[1] = Texture;
AlphaOp[1]=SelectArg1;
AlphaArg2[1]=Current;
}
}
";
}



Danke
Posted By: ello

Re: Texturen unabhängig verschieben - 09/06/04 03:47

also wenn du assemblercode benutzen würdest, dann könntest du sowas verwenden:
Code:
 

...
VertexShaderConstant[10]=<vecSkill1>;
VertexShader=
asm {
...
add oT0,v7,c10.xy
add oT1,v7,c10.zw
...


und per material.skill1,2(oT0),3,4(oT1) könntest du die x/y verschiebung steuern.



achja: aus dem handbuch :

material.matrix
material.matrix11..material.matrix44
A user-writable matrix that is available for effect scripts through
<matMtl>, and can be used for shaders or texture transformations. The
matrix parameter can be used for matrix operations, while the
elements of the matrix are accessible through the matrix11..matrix44
parameters.

Remarks:
The material matrix can be used for scaling and shifting a texture
according to the following formula:

u' = u * mtl.matrix11 + v * mtl.matrix21 + mtl.matrix41
v' = u * mtl.matrix12 + v * mtl.matrix22 + mtl.matrix42
(u,v = skin coordinates)

Shifting and scaling a texture this way is faster than using the
entity.u and v parameters, or the material.scale1 and scale2
parameters, which directly affect the model mesh. Therefore,
entity.u and entity.v will be abandoned, and material.scale1,scale2
can not be changed anymore during gameplay.

// use an effect for scaling or shifting a texture with a matrix
effect = "
matrix matMtl;
technique scale {
// use material transformation matrix, leave everything else at default values
pass p0
{
TextureTransformFlags[0] = Count2; // use u,v values
TextureTransform[0] = <matMtl>;
} }
technique fallback { pass p0 { } }
";

das würde bei deinem beispiel besser sein.
Posted By: ChrisB

Re: Texturen unabhängig verschieben - 09/07/04 23:06

Danke für deine Antwort.
Ich kann leider keine shader benutzen.
Den abschnitt im Handbuch hab ich auch mehr als einmal durchgelesen aber ich glaub ich bin einfach zu doof dafür.

Wo müsste in meinem Beispiel dieses TextureTransformDings hin wenn ich die 2 Texture verschieben will. Vor oder nach den anderen anweisungen???

Und wie genau verschieb ich die dann?? wie muss ich denn die Formel da umstellen?? oder was??

Danke
Posted By: ello

Re: Texturen unabhängig verschieben - 09/07/04 23:28

Code:
 
material at3{
event = mtl_at3_texture;
ambient_blue = 150;
ambient_green = 80;
ambient_red = 80;
skin2=atmo_bmp;
albedo = 20;
effect="
texture entSkin1; // die Entity Skin
texture mtlSkin2;
matrix matMtl;
technique test
{
pass p0
{
//CullMode=5;
EdgeAntialias=TRUE ;

Texture[0] = <entSkin1>;
Texture[1] = <mtlSkin2>;
ColorArg1[0] = Texture; // stage 0 = skin texture
ColorOp[0] = SelectArg1;
ColorArg2[0] = Diffuse; // von der Beleuchtung moduliert
ALPHAARG1[0] = TEXTURE;
AlphaOp[0]=SelectArg1;


ColorArg1[1] = Texture; // stage 0 = skin texture
ColorOp[1] = Modulate;
ColorArg2[1] = Current;
ALPHAARG1[1] = Texture;
AlphaOp[1]=SelectArg1;
AlphaArg2[1]=Current;
TextureTransform[1]=<matMtl>;
TextureTransformFlags[1] = Count2;
}
}
";
}




hier findest du auch noch was...
Posted By: ChrisB

Re: Texturen unabhängig verschieben - 09/08/04 03:08

wow Danke, ich stand total aufm Schlauch.

ChrisB
Posted By: Otsego

Re: Texturen unabhängig verschieben - 09/09/04 04:44

Ich hoffe mal, dass das der richtige Platz dafür ist: Damit könnte man doch auch einen Wassershader machen, bei dem das Wasser so ähnlich aussieht wie in Quake 3 (oder Rtc Wolfenstein), oder? Zumindest sieht es schwer danach aus, dass dort auch zwei Texturen unabhängig voneinander verschoben werden.
Kann jemand vielleicht so einen Wassershader machen ? Ich kann es leider nicht selbst.
Das war der beste Screenshot, den ich zu dem Wasser finden konnte:

Posted By: ChrisB

Re: Texturen unabhängig verschieben - 09/09/04 04:51

Ich hab da noch ein Problem. Sobald mein Material sichtbar wird verzerrt es mein Hud-hintergrundbild und die Partikel sehen nicht so aus wie sie sollten. Hat jemand ähnliches bemerkt oder liegts (hoffentlich) an meiner uralt KyroII??

@Otsego: Hm jo, könnte man wohl machen. Sieht dann aber wohl etwas "old-fashioned" aus.
Die DX-renderstates sind irgendwie voll cool, damit kriegt man auch ohne Shader mit den richtigen Texturen coole sachen hin.
Posted By: Otsego

Re: Texturen unabhängig verschieben - 09/10/04 00:15

Ja, so ein Wasser würde zwar nicht mehr nach ganz so aktueller Technik aussehen, dafür aber besser in mein Spiel passen. Steempipes Wassershader sehen leider zu hell und "lebendig" für meine Zwecke aus, ich brauche etwas für dunkle Höhlen und Ruinen.
Mit den DX Renderstates kann ich leider nicht besonders viel mit anfangen - würde man die auch mit Material zuweisen?
Posted By: blafasel

Re: Texturen unabhängig verschieben - 09/10/04 14:25

Du kannst ja eine andere Textur entwerfen und bentutzen, wenn es Dir zu hell ist...
Hast Du das schon mal versucht?
ansonsten gibts in der AUM34 noch was mit Wasser...

morgendliche Grüsse
Blafasel
© 2024 lite-C Forums