|
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 |
Nico |
E-Mail |
nico.schertler@gmx.de |
Datum |
23. Januar 2009 um 15:37:59 |
Antwort |
Hallo!
wie meinst du denn "Das Blending über Spriteflags aktivieren"? Zum Initialisieren des Alpha-Blendings habe ich bis jetzt folgendes:D3DDevice.RenderState.AlphaFunction = Compare.Greater D3DDevice.RenderState.AlphaTestEnable = True D3DDevice.RenderState.DestinationBlend = Blend.InvSourceAlpha D3DDevice.RenderState.SourceBlend = Blend.SourceAlpha D3DDevice.RenderState.DiffuseMaterialSource = ColorSource.Material D3DDevice.RenderState.AlphaBlendEnable = True D3DDevice.TextureState(0).ColorOperation = TextureOperation.Modulate D3DDevice.TextureState(0).ColorArgument0 = TextureArgument.Diffuse D3DDevice.TextureState(0).ColorArgument1 = TextureArgument.TextureColor D3DDevice.TextureState(0).AlphaOperation = TextureOperation.Modulate D3DDevice.TextureState(0).AlphaArgument0 = TextureArgument.Diffuse D3DDevice.TextureState(0).AlphaArgument1 = TextureArgument.TextureColor Aber ich werde da wohl lieber mal ein Polygon nehmen und darauf rendern um Fehlerquellen zu vermeiden. Ich hätte mal noch ein Problem: Bis jetzt hatte ich als BackBufferFormat D16. Da ist ja nun aber kein StencilBuffer dabei. Also hab ich mal probiert, welche Formate bei mir noch so gehen. In Frage würde da nur noch der D24S8 kommen. Da werden ja auch wie bei D16 die 16 bit für den z-Buffer verwendet. Aber wenn ich das neue Format verwende, flackern Texturen, die an ähnlichen Positionen liegen. Also mal ist die eine Textur oben, mal die andere. Ich hab schon versucht, den Abstand zu vergrößern, aber so weit, wie ich den vergrößern müsste, kann ich das nicht machen. Zur Info: Die Texturen stellen Straßen dar und sollten möglichst auf einer Höhe sein, ich habe jetzt einen Unterschied von 0.1 Einheiten. Außerdem flackert auch der FlatShadow, wenn der darüber gelegt wird. Gibt es eine Möglichkeit, das zu umgehen?
Nico |
|
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|