Raindropseffekt:

Hallo es tut mir leidt aber in der Beispielfunktion des Raindropseffekts im Tutorial sind mir ein paar fehler passiert. Ich werde diese hier nun berichtigen. Die Fehler sind allesamd im Shaderteil.

Fehler Nr.: 1
Da als Effekttexture Slot 0 angegeben wurde wird effTex1 verwendet nicht effTex2

Fehler Nr.: 2
Die Bumpwerte werden im Shader nicht beachtet.


Im nachfolgenden hier die Korektur des ganzen: Shaders

Korrekter Post-Processing Raindrops
Code:

// Texturen:
texture postTex1; // Scene nach letzten Post-Processing Pass
texture postTex2; // Original Scene
texture effTex1; // Effekttexture 1
texture effTex2; // Effekttexture 2

// Variablen
float4 vecValues1; // Effektskills 1-4
float4 vecValues2; // Effektskills 5-8

// Temporäre variablen
float4 pixel;
float2 temp;
sampler postTex = sampler_state
{
texture = (postTex1);
MinFilter = linear;
MagFilter = linear;
MipFilter = linear;
AddressU = Clamp;
AddressV = Clamp;
};

sampler bumpTex = sampler_state
{
texture = (effTex1);
MinFilter = linear;
MagFilter = linear;
MipFilter = linear;
AddressU = Wrap;
AddressV = Wrap;
};

// Pixelshader
float4 PS_RainDrops(float2 tex0 : TEXCOORD0) : COLOR
{
temp.x = tex0.x * 0.6f;
temp.y = (tex0.y + vecValues1.x) * 0.6f;
pixel = tex2D(bumpTex,temp);
temp.x = (tex0.x + pixel.x * 0.05f);
temp.y = (tex0.y - pixel.y * 0.05f);
return tex2D(postTex,temp * 0.90f);

}

// Technik 1
technique t01
{
pass p0
{
PixelShader = compile ps_2_0 PS_RainDrops();
}
}



Ich hoff das hilft allen weiter.