Beste Tweakers,
Ik probeer aan de hand van het boek 'Shaders for Game Programmers and Artists' mezelf het 1 en ander over shaders aan te leren, helaas loop ik vast op een van de tutorial onderdelen van het boek.
In de tutorial (met RenderMonkey van AMD) wordt getracht eerder geconstrueerde passes naar een texture (render target) te laten renderen en deze in een 3de pass d.m.v. een screen aligned quad af te beelden op het scherm. Ik blijf echter, zelfs met de code uit het boek en andere code online, met een zwart beeld zitten. De vorige passes renderen zover ik kan zien wel prima, aangezien als ik 'render to screen' selecteer voor de tweede pass, het beeld wel prima weergegeven wordt.
Is er iemand die mij in de goede richting kan sturen?
Ik gebruik de volgende shaders:
Vertex shader:
Pixelshader:
Ik probeer aan de hand van het boek 'Shaders for Game Programmers and Artists' mezelf het 1 en ander over shaders aan te leren, helaas loop ik vast op een van de tutorial onderdelen van het boek.
In de tutorial (met RenderMonkey van AMD) wordt getracht eerder geconstrueerde passes naar een texture (render target) te laten renderen en deze in een 3de pass d.m.v. een screen aligned quad af te beelden op het scherm. Ik blijf echter, zelfs met de code uit het boek en andere code online, met een zwart beeld zitten. De vorige passes renderen zover ik kan zien wel prima, aangezien als ik 'render to screen' selecteer voor de tweede pass, het beeld wel prima weergegeven wordt.
Is er iemand die mij in de goede richting kan sturen?
Ik gebruik de volgende shaders:
Vertex shader:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| float4x4 matViewProjection; struct VS_INPUT { float4 Position : POSITION0; float2 TexCoord : TEXCOORD0; }; struct VS_OUTPUT { float4 Position : POSITION0; float2 TexCoord : TEXCOORD0; }; VS_OUTPUT vs_main( VS_INPUT Input ) { VS_OUTPUT Output; Output.Position = float4(sign(Input.Position.xy),0.0,1.0); Output.TexCoord.x = (Output.Position.x+1.0) * 0.5; Output.TexCoord.y = 1.0 - ((Output.Position.y+1.0) * 0.5); return( Output ); } |
Pixelshader:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| sampler Texture0; struct PS_INPUT { float2 TexCoord: TEXCOORD0; }; struct PS_OUTPUT { float4 Color : COLOR0; }; PS_OUTPUT ps_main(PS_INPUT Input) { PS_OUTPUT Output; Output.Color = tex2D(Texture0, Input.TexCoord); return (Output); } |
[ Voor 5% gewijzigd door Verwijderd op 22-02-2009 14:23 ]