MichaelH Member
Anmeldedatum: 29.11.2009 Beiträge: 227
|
Verfasst am: 08.05.2010, 11:11 Titel: |
|
Danke.
Toller kleiner Shader.
Ist in meiner Sammlung itegriert.
Warum komm ich nicht mal selbst auf sowas ?  |
|
| Nach oben |
|

|
Ganda Member
Anmeldedatum: 29.10.2009 Beiträge: 521 Wohnort: Germany, NRW
|
Verfasst am: 08.05.2010, 14:01 Titel: |
|
Normalerweise benutzt man doch solche Funktion, um die Übergänge von z.B. grünen Wiesen auf kahlen Fels bei Terrains darzustellen.
Hier ist der Effekt aber auch sehr interessant.
Den weißen Schleier auf Steinmauern soll man übrigens mit Coca-Cola gut wegbekommen.
Gruß Ganda _________________ Mein Gameblog! |
|
| Nach oben |
|

|
Astror Enales XNA.mag - Team
Anmeldedatum: 20.08.2007 Beiträge: 712
|
Verfasst am: 08.05.2010, 14:06 Titel: |
|
Bei Terrain Textur-Übergängen benutzt man weiches Alpha-Fading. Das hier macht ja einen harten Schnitt wenn der Grenzwert überschritten ist.
Die Intention gab mir folgendes Video bei ca. Sekunde 40. (Erklärung schon eher)
http://www.youtube.com/watch?v=cj2NARWGI6M |
|
| Nach oben |
|

|
Ganda Member
Anmeldedatum: 29.10.2009 Beiträge: 521 Wohnort: Germany, NRW
|
Verfasst am: 21.05.2010, 15:56 Titel: |
|
Darf ich mal eine Frage dazu anbringen?
Ich benutze folgenden Code im Shader, wie Du ähnlich auch:
| Code: | texture Textur;
sampler2D TexSampler0;// = sampler_state
//{
// Texture = (Textur);
// MIPFILTER = LINEAR;
// MAGFILTER = LINEAR;
// MINFILTER = LINEAR;
//};
texture BumpTextur;
sampler2D BumpSampler;// = sampler_state
//{
// Texture = (BumpTextur);
// MIPFILTER = LINEAR;
// MAGFILTER = LINEAR;
// MINFILTER = LINEAR;
//}; // : register(s1) |
Wenn ich die sampler_state nicht auskommentiere, meckert er dann zwar nicht, aber die Texturen sind danach einfach schwarz.
Compiled werden beide mit 2.0:
| Code: |
VertexShader = compile vs_2_0 VertexShaderFunction();
PixelShader = compile ps_2_0 PixelShaderFunction(); |
Kann sich das jemand erklären?
Gruß Ganda
Edith sagt: Sorry, Ganda hat es gefunden. Die Übergabe der Textur hatte er anders gemacht:
| Code: |
LightEffect1.Parameters["Textur"].SetValue(texture1);
LightEffect1.Parameters["BumpTextur"].SetValue(texture2);
//this.GraphicsDevice.Textures[0] = texture1;
//this.GraphicsDevice.Textures[1] = texture2; |
smpler_state funktioniert scheinbar nicht mit der Übergabe an die Register! _________________ Mein Gameblog! |
|
| Nach oben |
|

|
Ganda Member
Anmeldedatum: 29.10.2009 Beiträge: 521 Wohnort: Germany, NRW
|
Verfasst am: 21.05.2010, 17:46 Titel: |
|
Sorry wegen Doppelpost, aber ich habe da noch eine Verbesserung für den Shader.
Da spart man sich die zweite Textur und kann auch noch einstellen, wie dreckig das Weiß sein soll.
| Code: | float4x4 World;
float4x4 View;
float4x4 Projection;
float Strength=0.5f;
float Whiteness=0.6f; //Neuer Parameter "Weißheit"
texture Texture0; //bleibt so
sampler2D sampler0 = sampler_state
{
Texture = (Texture0);
MIPFILTER = LINEAR;
MAGFILTER = LINEAR;
MINFILTER = LINEAR;
};
//texture Texture1; //nicht mehr benötigt
//sampler2D sampler1 = sampler_state
//{
// Texture = (Texture1);
// MIPFILTER = LINEAR;
// MAGFILTER = LINEAR;
// MINFILTER = LINEAR;
//};
//..
float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
float4 color0 = tex2D(sampler0, input.TexCoords); //bleibt so
//float4 color1 = tex2D(sampler1, input.TexCoords); wird nicht mehr benötigt
float4 color1 =(color0.r+color0.g+color0.b)* Whiteness; //"Weißheit" wird errechnet
//....
|
_________________ Mein Gameblog! |
|
| Nach oben |
|

|
Astror Enales XNA.mag - Team
Anmeldedatum: 20.08.2007 Beiträge: 712
|
Verfasst am: 22.05.2010, 12:07 Titel: |
|
Freut mich zu sehen das du dich mit dem kleinen Artikel so sehr beschäftigst
Für Weiß blenden hast du natürlich recht, dann wäre dein neuer Ansatz einfacher und hätte weniger Instructions, aber es geht ja insgesamt nicht nur um Weiße Texturen sonder jede beliebige Kombination. (z.b. eine Wand wie bisher mit einer Plakattextur, oder Holz). Da würde das dann nicht mehr funktionieren  |
|
| Nach oben |
|

|
Miniboy767 Member
Anmeldedatum: 05.03.2009 Beiträge: 156 Wohnort: Bayern - Niederaudorf
|
Verfasst am: 08.09.2010, 21:54 Titel: |
|
danke das tutorial hat mir sehr geholfen habs auch gleich wild durchprobiert und hab hier mal ne demo von ner "blutigen" Wand:
und hier sind auch noch nen paar masken falls ihr die gebrauchen könnt. sehen ganz gut aus (alles selber gemacht also zur freien nutzung):
(das hier hab ich beim oberen bild verwendet)
also nochmals danke, war auch gut zu verstehen, und hat mir wie gesagt gut geholfen _________________ Real Life ist was für Versager, die Ingame nichts erreichen. |
|
| Nach oben |
|

|
|