Gamestudio Links
Zorro Links
Newest Posts
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
Change chart colours
by 7th_zorro. 05/11/24 09:25
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
3 registered members (AndrewAMD, bigsmack, 1 invisible), 1,341 guests, and 14 spiders.
Key: Admin, Global Mod, Mod
Newest Members
AemStones, LucasJoshua, Baklazhan, Hanky27, firatv
19057 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Materialzuweisung und zusätzliche Action #324958
05/24/10 07:50
05/24/10 07:50
Joined: Jan 2008
Posts: 353
G
grinseengel Offline OP
Senior Member
grinseengel  Offline OP
Senior Member
G

Joined: Jan 2008
Posts: 353
Hallo,

ich habe mal wieder ein Problem. Folgendes möchte ich machen und folgendes funktioniert nicht.

Ich habe ein Baummodell welches sich windmäßig bewegt. Das mache über material und Zuweisung für das entsprechende Modell. Die zweite Sache die ich bewerkstelligen möchte ist eine automatische Anpassung des Ambientwertes an das Sonnenlicht. Das bekomme ich auch hin.
Allerdings funktioniert beides zusammen nicht. Wenn ich in der Aktion vorher die funktion für die Anpassung der Helligkeit aufrufe und danach das Material , dann wird mein Modell leider nicht an die Helligkeit angepasst. Es funktioniert nur immer eine von beiden Möglichkeiten. Gibt es eine Lösung diesbezüglich, dass beides funktionieren könnte?

Gruß, Andreas

Re: Materialzuweisung und zusätzliche Action [Re: grinseengel] #324962
05/24/10 09:56
05/24/10 09:56
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Poste mal den Shader Code.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Materialzuweisung und zusätzliche Action [Re: Superku] #325016
05/24/10 15:57
05/24/10 15:57
Joined: Jan 2008
Posts: 353
G
grinseengel Offline OP
Senior Member
grinseengel  Offline OP
Senior Member
G

Joined: Jan 2008
Posts: 353
Hallo, hier der Code:

Code:
material grass {
	flags = tangent;
	effect
	"
		texture entSkin1;
		
		matrix matWorldViewProj;
		matrix matWorldView;
		
		vector vecFog;
		vector vecTime;
		
		technique tree
		{
			pass p0
			{
				texture[0]=<entSkin1>;
				zWriteEnable=true;
				alphaTestEnable=true;
				cullMode=none;
		
				vertexShaderConstant[0]=<matWorldViewProj>;
				vertexShaderConstant[8]=<matWorldView>;
				vertexShaderConstant[16]=<vecFog>;
				vertexShaderConstant[32]=<vecTime>;
				vertexShaderConstant[33]={0.0f,0.5f,1.0f,2.0f};										// common constants
				vertexShaderConstant[34]={-0.16161616f,0.0083333f,-0.00019841f,0.000002755731f};	// {-1/3!,1/5!,-1/7!,1/9!}
				vertexShaderConstant[35]={4.0f,1.57079632f,3.14159265f,6.28318530f};				// {4.0,pi/2,pi,pi*2}
				vertexShaderConstant[36]={1.07f,0.0f,0.0f,0.0f};									// fixup factor
		
				vertexShaderConstant[40]={2.5f,1.0f,0.5f,0.1f};										// wave distort x
				vertexShaderConstant[41]={1.0f,1.5f,1.25f,0.1f};									// wave distort y
				vertexShaderConstant[42]={-1.0f,-1.01f,-1.04f,-0.01f};								// wave distort z
				vertexShaderConstant[43]={-0.1f,-0.2f,0.1f,0.05f};									// wave dir x
				vertexShaderConstant[44]={-0.005f,-0.01f,-0.005f,-0.0025f};							// wave dir y
				//vertexShaderConstant[45]={0.02f,0.04f,0.05f,0.1f};									// wave speed
				vertexShaderConstant[45]={0.005f,0.01f,0.01f,0.1f};									// wave speed
				vertexShaderConstant[46]={0.35f,0.1f,0.1f,0.04f};									// lighting wave scale
				vertexShaderConstant[47]={0.6f,0.8f,0.3f,0.0f};										// lighting scale bias
		
				vertexShader=
				asm
				{
					vs.1.1
		
					dcl_position  v0
					dcl_normal    v3
					dcl_texcoord0 v7
					dcl_texcoord1 v8
		
					mov r1.w,c16.w                  // r1.w=1
					dp4 r0,v0,c10                   // distance to camera position (v0 is the position without sinusodial warping!)
					add r0,r0,-c16.x                // distance-fog_start
					mad r0.x,-r0.x,c16.z,r1.w       // 1-(distance-fog_start)*(1/(fog_end-fog_start))
					max oFog,r0.x,c33.x           // clamp with custom max value
		
					mul r0,c43,v0.x                 // use vertex pos x as inputs to sinusoidal warp
					mad r0,c44,v0.y,r0              // use vertex pos y as inputs to sinusoidal warp
		
					mov r1,c32.w                    // get current time
					mad r0,r1,c45,r0                // add scaled time
					frc r0.xy,r0                    // take fraction of all 4 components
					frc r1.xy,r0.zwzw
					mov r0.zw,r1.xyxy
		
					mul r0,r0,c36.x                 // multiply by fixup factor (due to inaccuracy of taylor series)
					sub r0,r0,c33.y                 // subtract 0.5
					mul r1,r0,c35.w                 // range -pi to pi
		
					mul r2,r1,r1                    // wave_vec^2
					mul r3,r2,r1                    // wave_vec^3
					mul r5,r3,r2                    // wave_vec^5
					mul r7,r5,r2                    // wave_vec^7
					mul r9,r7,r2                    // wave_vec^9
		
					mad r0,r3,c34.x,r1              // wave_vec-(wave_vec^3)/3!
					mad r0,r5,c34.y,r0              // +(wave_vec^5)/5!
					mad r0,r7,c34.z,r0              // -(wave_vec^7)/7!
					mad r0,r9,c34.w,r0              // +(wave_vec^9)/9!
		
					dp4 r3.x,r0,c40
					dp4 r3.y,r0,c41
					dp4 r3.zw,r0,c42
		
					sub r4,c33.z,v7.y               // attenuate sinusoidal warping by (1-uv.y)^2
					mul r4,r4,r4
					mul r3,r3,r4
		
					mov r2.w,v0
					add r2.xyz,r3,v0                // add sinusoidal warping to grass position
					m4x4 oPos,r2,c0                 // transform position to clip space
		
					dp4 r1.x,r0,c46                 // scale and add sin waves together
					mad oD0,c47.xzxz,-r1.x,c47.y    // scale and bias color values (green is scaled more than red and blue)
					mov oT0.xy,v7.xy                // output uvs
				};
		
				pixelShader=
				asm
				{
					ps.1.3
					def c0,1,1,1,1
					def c1,0,0,0,0
					tex t0                  // sample t0
					mov r0,t0
					cnd r0.a,r0.a,c0,c1     // if(r0.a>0.5){r0.a=1;}else{r0.a=0;}
					//mul_x2 r0.rgb,r0,v0     // modulate with lighting
				};
			}
		}


	";
}



Re: Materialzuweisung und zusätzliche Action [Re: grinseengel] #325019
05/24/10 16:04
05/24/10 16:04
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Oh weia, mit solch einem Shader Code (ASM) kenne ich mich leider nicht aus.
Auf jeden Fall müsstest du "vector vecAmbient;" zu Beginn einfügen, damit der Shader den ambient-Wert deiner Entity verarbeiten kann. Der Vektor muss dann im Pixel Shader mit einbezogen werden. Wie das funktioniert, weiß ich leider nicht.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Materialzuweisung und zusätzliche Action [Re: Superku] #325172
05/25/10 08:16
05/25/10 08:16
Joined: Jan 2002
Posts: 4,225
Germany / Essen
Uhrwerk Offline
Expert
Uhrwerk  Offline
Expert

Joined: Jan 2002
Posts: 4,225
Germany / Essen
Das ist der Uralt-Shader aus dem Wiki, oder? Ich glaube mit dem Pendant aus MtlFx.c bist Du deutlich besser bedient.


Always learn from history, to be sure you make the same mistakes again...

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

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