Gamestudio Links
Zorro Links
Newest Posts
Help with plotting multiple ZigZag
by degenerate_762. 04/30/24 23:23
M1 Oversampling
by 11honza11. 04/30/24 08:16
Trading Journey
by howardR. 04/28/24 09:55
Zorro Trader GPT
by TipmyPip. 04/27/24 13:50
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
Why Zorro supports up to 72 cores?
by jcl. 04/26/24 11:09
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
4 registered members (AndrewAMD, 7th_zorro, VoroneTZ, Quad), 901 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
Newest Members
firatv, wandaluciaia, Mega_Rod, EternallyCurious, howardR
19050 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
Sky rutscht mit ins Wasser #369932
05/09/11 14:48
05/09/11 14:48
Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
xxxxxxx Offline OP
User
xxxxxxx  Offline OP
User

Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
Hallo,
Ich experimentiere grade etwas mit einem Wasser shader aus einem Tutorial(Danke, Slin! wink ) herum, nach dem ich vertex wellen eingefügt habe sah ich einen Effekt(vorher auch scho nur nicht ganz so stark), der sky rutscht in mein Wassr hinein:

(links Wasser rechts kein Wasser und beim anderen siehts mann) das ganze passiert weil von einem Refractions-View das äüssere Terran geklippt wird(da es über der wasser höhe nix rendert und dann natürlich der sky kommt) und dann etwas verzerrt (und angehoben) wird,
jetzt weiß ich das problem beheben soll, einen Filter im Wasser shader, der alles sky color farbende transperent machen sollte, habe ich schon versucht aber er brachte auch nichts(lag aller höchst wahrscheinlich an mir), und was mir auch noch einfallen würde wäre ein filter der beim redern des views jeweis alles mit dem sky color zu dem ersten nicht sky color farbenden pixel in richtung mittel punkt macht oder so, nur ich kann sowas ohne zich-tausend ifs nicht schreiben frown
Code:
float4x4 matWorld;
float4x4 matWorldViewProj;
float4 vecViewPos;
float4 vecTime;

texture entSkin1;
texture entSkin2;
texture b_reflection_bmap;
texture b_refraction_bmap;
texture b_hight_bmap;

sampler2D smpNormal = sampler_state
{
	Texture = <entSkin1>;
	
	MinFilter	= linear;
	MagFilter	= linear;
	MipFilter	= linear;
	
	AddressU		= Wrap;
	AddressV		= Wrap;
};

sampler2D smpRefl = sampler_state
{
	Texture = <b_reflection_bmap>;
	
	MinFilter	= linear;
	MagFilter	= linear;
	MipFilter	= linear;
	
	AddressU		= Clamp;
	AddressV		= Clamp;
};

sampler2D smpRefr = sampler_state
{
	Texture = <b_refraction_bmap>;
	
	MinFilter	= linear;
	MagFilter	= linear;
	MipFilter	= linear;
	
	AddressU		= Clamp;
	AddressV		= Clamp;
};

sampler2D smpHight = sampler_state
{
	Texture = <b_hight_bmap>;
	
	MinFilter	= linear;
	MagFilter	= linear;
	MipFilter	= linear;
	
	AddressU		= Clamp;
	AddressV		= Clamp;
};

sampler2D smpHightMesh = sampler_state
{
	Texture = <entSkin2>;
	
	MinFilter	= linear;
	MagFilter	= linear;
	MipFilter	= linear;
	
	AddressU		= Wrap;
	AddressV		= Wrap;
};

struct VS_OUT
{
	float4 Pos : POSITION;
	float2 Tex : TEXCOORD0;
	float3 ProjTex : TEXCOORD1;
	float3 ViewDir : TEXCOORD2;
};

VS_OUT Shader_VS(float4 inPos : POSITION, float2 inTex : TEXCOORD0)
{
	VS_OUT Out = (VS_OUT)0;
	
	Out.Tex = float2(vecTime.w*125, 0)*0.01+inTex*1000;
	float4 Pos = inPos + float4(0,sin(inPos.x/2+(vecTime.w/5))+sin(inPos.z/4-(vecTime.w/5)),0,0);//float4(0,0,tex2D(smpRefl, Out.Tex).r*5,0);
	
	Out.Pos = mul(Pos, matWorldViewProj);
	Out.ProjTex = Out.Pos.xyw;
	Out.ViewDir = vecViewPos.xyz-mul(inPos,matWorld).xyz;
	
	return Out;
}

float fastFresnel(float3 I, float3 N, float R0, float power)
{
	return R0+(1.0-R0)*pow(1.0-dot(I,N),power);
}

float4 Shader_PS(float2 inTex : TEXCOORD0, float3 ProjTex : TEXCOORD1, float3 ViewDir : TEXCOORD2, float deph : TEXCOORD3) : COLOR
{
	ProjTex.xy = ProjTex.xy/ProjTex.z;
	ProjTex.xy = ProjTex.xy*0.5+0.5;
	
	float4 Bump = tex2D(smpNormal, inTex/500)*2.0-1.0;
	float4 Reflect = tex2D(smpRefl, ProjTex.xy+Bump.rg*0.2);
	float4 Refract = lerp(tex2D(smpRefr, ProjTex.xy+Bump.rg*0.2),float4(0,0.1,0.2,0),tex2D(smpHight, ProjTex.xy+Bump.rg*0.2));
	
	float fresnel = fastFresnel(normalize(ViewDir), Bump.rbg, 0.0204,7);
	
	float4 Color = lerp(Refract,Reflect,fresnel);
	Color.a = 1.0;
	
	return Color;
}

technique tech_00
{
	pass pass_00
	{
		CullMode = None;
		
		VertexShader = compile vs_2_0 Shader_VS();
		PixelShader = compile ps_2_0 Shader_PS();
	}
}



Nochwas: kann man texturen in nem Vertex shader benutzen für wellen habe ich bis jetzt sinus vom x * ein paar faktoren genommen, würde es aber gerne über eine Textur regeln
xxxxxxx


Es ist immer wieder erstaunlich, dass Leute die riesen Scripte schreiben die einfachsten sachen nicht können zb. mich mit SIEBEN x zu schreiben! tongue
Re: Sky rutscht mit ins Wasser [Re: xxxxxxx] #370234
05/11/11 18:16
05/11/11 18:16
Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
xxxxxxx Offline OP
User
xxxxxxx  Offline OP
User

Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
hat denn keiner eine Idee?


Es ist immer wieder erstaunlich, dass Leute die riesen Scripte schreiben die einfachsten sachen nicht können zb. mich mit SIEBEN x zu schreiben! tongue
Re: Sky rutscht mit ins Wasser [Re: xxxxxxx] #371265
05/19/11 16:59
05/19/11 16:59
Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
xxxxxxx Offline OP
User
xxxxxxx  Offline OP
User

Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
Neues Problem(vergässt das andere Zeug, Vertex-Wellen will ich nichtmehr und nach einer neuen Normalmap hat sich das andere Problem auch verflüchtigt. laugh ), eine Lichtreflexion kriege ich nicht allzu schön bzw. nur total hässlich hin.

diese weißen teile sind lichtquellen und das Terrain hat einen normalmapping shader laugh
hier der shader-code
Code:
float4x4 matWorld;
float4x4 matWorldViewProj;
float4 vecViewPos;
float4 vecTime;
float4 vecLightColor[8];
float4 vecLightPos[8];
float3x3 matTangent;

texture entSkin1;
texture b_reflection_bmap;
texture b_refraction_bmap;

sampler2D smpNormal = sampler_state
{
	Texture = <entSkin1>;
	
	MinFilter	= linear;
	MagFilter	= linear;
	MipFilter	= linear;
	
	AddressU		= Wrap;
	AddressV		= Wrap;
};

sampler2D smpRefl = sampler_state
{
	Texture = <b_reflection_bmap>;
	
	MinFilter	= linear;
	MagFilter	= linear;
	MipFilter	= linear;
	
	AddressU		= Mirror;
	AddressV		= Mirror;
};

sampler2D smpRefr = sampler_state
{
	Texture = <b_refraction_bmap>;
	
	MinFilter	= linear;
	MagFilter	= linear;
	MipFilter	= linear;
	
	AddressU		= Clamp;
	AddressV		= Clamp;
};

struct VS_OUT
{
	float4 Pos : POSITION;
	float2 Tex : TEXCOORD0;
	float3 ProjTex : TEXCOORD1;
	float3 ViewDir : TEXCOORD2;
	
	float3 WorldPos : TEXCOORD3;
	float3 tangent0 : TEXCOORD4;
	float3 tangent1 : TEXCOORD5;
	float3 tangent2 : TEXCOORD6;
};

VS_OUT Shader_VS(float4 inPos : POSITION, float2 inTex : TEXCOORD0, float3 inTangent : TEXCOORD2, float3 inNormal : NORMAL)
{
	VS_OUT Out = (VS_OUT)0;
	
	Out.Tex = float2(vecTime.w*125, 0)*0.01+inTex*1000;
	float4 Pos = inPos;
	
	Out.Pos = mul(Pos, matWorldViewProj);
	Out.ProjTex = Out.Pos.xyw;
	Out.ViewDir = vecViewPos.xyz-mul(inPos,matWorld).xyz;
	
	inNormal = -inNormal;
	
	Out.tangent0 = mul(inTangent, matWorld);
	Out.tangent1 = mul(cross(inTangent, inNormal), matWorld);
	Out.tangent2 = mul(inNormal, matWorld);
	
	Out.WorldPos = mul(inPos, matWorld);
	
	return Out;
}

float fastFresnel(float3 I, float3 N, float R0, float power)
{
	return R0+(1.0-R0)*pow(1.0-dot(I,N),power);
}

float4 Shader_PS(float2 inTex : TEXCOORD0, float3 ProjTex : TEXCOORD1, float3 ViewDir : TEXCOORD2, float3 inPos : TEXCOORD3, float3 tangent0 : TEXCOORD4, float3 tangent1 : TEXCOORD5, float3 tangent2 : TEXCOORD6) : COLOR
{
	ProjTex.xy = ProjTex.xy/ProjTex.z;
	ProjTex.xy = ProjTex.xy*0.5+0.5;
	
	float4 Bump = tex2D(smpNormal, inTex/500)*2.0-1.0;
	
	matTangent[0] = tangent0;
	matTangent[1] = tangent1;
	matTangent[2] = tangent2;
	float4 SpecNormal = Bump;
	float3 Normal = SpecNormal.rgb*5.0-2.50;
	Normal = mul(Normal, matTangent);
	Normal = normalize(Normal);

	
	float4 Reflect = tex2D(smpRefl, ProjTex.xy+Bump.rg*0.2);
	float4 Refract = tex2D(smpRefr, ProjTex.xy+Bump.rg*0.2);
	Refract = lerp(Refract,float4(0,0.1,0.2,0.5),0.3);
	
	float i;
	for(i=0;i<=7;i++)
	{
		float3 lightdir = normalize(inPos-vecLightPos[i].xyz);
		float3 viewdir2 = normalize(inPos-vecViewPos);
		float3 halfvec = normalize(viewdir2+lightdir);
		float specularity = saturate(dot(halfvec, Normal));
	}
	
	float fresnel = fastFresnel(normalize(ViewDir), Bump.rbg, 0.0204,5);
	float4 Color = lerp(Refract,Reflect,fresnel);
	Color.a = 1.0;
	return Color;
}

technique tech_00
{
	pass pass_00
	{
		CullMode = None;
		
		VertexShader = compile vs_2_0 Shader_VS();
		PixelShader = compile ps_3_0 Shader_PS();
	}
}

Ich habe versucht Spectularty Light dem ganzen hinzuzufügen um einen solchen effect hinzukriegen. nur das es kein skycube sein soll! tongue brachte leider nicht viel.

xxxxxxx

Last edited by xxxxxxx; 05/19/11 17:00.

Es ist immer wieder erstaunlich, dass Leute die riesen Scripte schreiben die einfachsten sachen nicht können zb. mich mit SIEBEN x zu schreiben! tongue
Re: Sky rutscht mit ins Wasser [Re: xxxxxxx] #371572
05/22/11 17:09
05/22/11 17:09
Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Rondidon Offline
Expert
Rondidon  Offline
Expert

Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Frag doch mal Hummel. Bei Shadern ist er wohl Adresse Nr. 1 wink

Re: Sky rutscht mit ins Wasser [Re: Rondidon] #371573
05/22/11 17:11
05/22/11 17:11
Joined: Apr 2007
Posts: 3,751
Canada
WretchedSid Offline
Expert
WretchedSid  Offline
Expert

Joined: Apr 2007
Posts: 3,751
Canada
Originally Posted By: Rondidon
Frag doch mal Hummel. Bei Shadern ist er wohl Adresse Nr. 1 wink

Vor zwei Jahren hätte man noch "Frag doch mal Slin" geschrieben ^^


Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com
Re: Sky rutscht mit ins Wasser [Re: WretchedSid] #371599
05/23/11 07:03
05/23/11 07:03
Joined: Dec 2003
Posts: 1,225
germany
gri Offline
Serious User
gri  Offline
Serious User

Joined: Dec 2003
Posts: 1,225
germany

Vor 5 Jahren hätte man noch "Frag doch Ello" geschrieben.


"Make a great game or kill it early" (Bruce Shelley, Ensemble Studios)
Re: Sky rutscht mit ins Wasser [Re: gri] #371661
05/23/11 23:30
05/23/11 23:30
Joined: Feb 2010
Posts: 482
in deinem Kopf
Otter Offline
Senior Member
Otter  Offline
Senior Member

Joined: Feb 2010
Posts: 482
in deinem Kopf
Quote:
Frag doch mal Hummel. Bei Shadern ist er wohl Adresse Nr. 1

Jap, Hummel kann ich wirklich empfehlen,... er ist ne echte granate!

....
Oh! Und seine Shader sind auch fantastisch.


Be my UBB-Buddy, without any reason!
Re: Sky rutscht mit ins Wasser [Re: Otter] #371681
05/24/11 10:04
05/24/11 10:04
Joined: Mar 2006
Posts: 2,252
Hummel Offline
Expert
Hummel  Offline
Expert

Joined: Mar 2006
Posts: 2,252
Quote:
Jap, Hummel kann ich wirklich empfehlen,... er ist ne echte granate!
Wieder eine bei der ich mich nicht dran erinnern kann...verdammter Alkohol-.-

@3.5xx:
Du musst deine Glanzpunkte natürlich noch iwo mit dazu addieren, versuchs mal damit:
Code:
[...]
float i;
float specularity = 0;
for(i=0;i<=7;i++)
{
	float3 lightdir = normalize(vecLightPos[i].xyz-inPos);
	float3 viewdir2 = normalize(vecViewPos-inPos);
	float3 halfvec = normalize(viewdir2+lightdir);
	specularity += pow(saturate(dot(halfvec, Normal)),20.f);
}

Reflect += specularity ;
[...]



Re: Sky rutscht mit ins Wasser [Re: Hummel] #371686
05/24/11 10:40
05/24/11 10:40
Joined: Apr 2007
Posts: 3,751
Canada
WretchedSid Offline
Expert
WretchedSid  Offline
Expert

Joined: Apr 2007
Posts: 3,751
Canada
Originally Posted By: Hummel
Quote:
Jap, Hummel kann ich wirklich empfehlen,... er ist ne echte granate!
Wieder eine bei der ich mich nicht dran erinnern kann...verdammter Alkohol-.-

Kommt davon wenn man den ganzen Tag nur Met trinkt =/


Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com
Re: Sky rutscht mit ins Wasser [Re: WretchedSid] #371718
05/24/11 16:16
05/24/11 16:16
Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
xxxxxxx Offline OP
User
xxxxxxx  Offline OP
User

Joined: Jan 2011
Posts: 797
Da wo du nicht bist! Muhahaha!
Danke Hummel, ich habe es bereits getan, nur hab warum auch immer die eine Zeile nicht geposted^^
Bingt genau das gleiche nur wie das andere nur in wieß(weil spectularity ja ein float ist). so jetzt meine Probleme:
1. Die Licht reflexion findet irgend wie nicht in richtung kamera statt, es sollte so wie in dem Stück sky ausehen was ich gepostet habe.
2. Punkt die "Normalentoleranz"(ich meine dem Bereich in dem Licht reflectiert wird) ist zu groß.
3. Ich weiß nicht ob es durch Punkt 2 schon behoben wird, aber der sichtbare Lichtkegel(also der beleuchtete Teil auf dem Wasser) ist zu breit.

Ich hoffe ihr(oder Hummel) könnt mir helfen!
xxxxxxx

Last edited by xxxxxxx; 05/24/11 16:17.

Es ist immer wieder erstaunlich, dass Leute die riesen Scripte schreiben die einfachsten sachen nicht können zb. mich mit SIEBEN x zu schreiben! tongue
Page 1 of 2 1 2

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