Einzelnen Beitrag anzeigen

OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#14

Re: Alphatransparent von Bildern bei Direct3D

  Alt 26. Aug 2007, 00:04
Zitat:
oder ich hab an irgend ner Stelle die Renderstates verstellt.
Was irrelevant gewesen wäre, wenn du dich nicht auf bestimmte Werte in den Renderstates verlassen hättest, wie ich sagte
In deinem funktionierenden Code-Beispiel zeigst du sehr deutlich, dass du viele Renderstates und TextureStageStates eben nicht eingestellt hast. Wenn sie auf Default standen, prima, wenn sie irgendwoanders schon umgestellt wurden, Happy Bughunting.
Also, wirklich, lieber einen Renderstate mehr passend einstellen als einen weniger, aber direkt hintereinander nach Möglichkeit, und nicht zwischen lauter DrawPrimitive-Aufrufen. Oder du speicherst den State immer, wenn du Änderungen machst, und stellst ihn anschließend wieder her.

Was das Sortieren angeht, üblicherweise werden tatsächlich alle Primitives, die alpha-geblendet werden müssen, von hinten nach vorne gezeichnet. Was dummerweise genau das Gegenteil von dem ist, was man sonst macht, denn normalerweise zeichnet man von vorne nach hinten, weil durch den Z-Test eine Menge Overdraw ausgeschlossen wird. Andererseits braucht man sich z.B. bei Partikelsystemen, einer typischen Anwendung für massives Alphablending, nicht darum kümmern, weil man da additiv arbeitet (DESTBLEND = ONE), und damit die Reihenfolge wieder egal ist.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat