|
DirectX-Forum - Beitragsübersicht - |
|
Thema | DX9: StencilBuffer |
Von |
Nico |
E-Mail |
nico.schertler@gmx.de |
Datum |
13. Januar 2009 um 14:13:07 |
Frage |
Hallo!
Ich versuche gerade, das Rendern eines Primitives auf einen rautenförmigen Bereich einzugrenzen, der als Textur auch vorliegt. Soweit ich ich, werden dazu doch StencilBuffer verwendet, oder? Also hab ich mir mal das Sample StencilMirror aus dem SDK angesehen. Dazu mal eine Frage: Wer sagt denn dort DX, dass die Wasseroberfläche in der Sub RenderMirror in den StencilBuffer gerendert wird und nicht auf den Backbuffer. Ein anderes RenderTarget wird da ja nicht eingestellt.
Nico |
|
Antwort: |
Von |
mdx |
E-Mail |
mdx@vb-fun.de |
Datum |
23. Januar 2009 um 19:59:02 |
Antwort |
Stimmt, das D16 hat nichts für den Stencilbuffer frei, das gängigste ist wohl D24S8. Das Flackern der Schatten liegt an der Shadow Matrix. Denke du verwendest eine. Dadurch kann es sein, das mehrer Polygone übereinander liegen und es kommt zum Flackern. Mit SetRenderState(D3DRS_STENCILPASS, D3DSTENCILOP_INCR) sollte das behoben werden können. So kannst du nur jeden Bereich einmal zeichnen.
Weiteres Flackern tritt durch den ZBuffer auf. Dies passiert, wenn 2 Surfaces annähernd die gleiche Tiefe haben. Der Z-Buffer kann nicht entscheiden welches oben ist. Es kommt zum z-fighting. Also den ZBuffer disablen.
Ich bin dabei einige SlimDX Demos für VB-Fun zu schreiben. Da kannst du dir die Settings auch nochmal anschauen. Gruß MDX |
|
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|