Shademodes für einzelne Objekte setzen?
-
Hi,
man kann ja durch
IDirect3DDevice9::SetRenderState() den Shademode auf Flat oder
Gouraud setzen, d.h. das Objekte entweder geglättet oder hart dargestellt
werden. Wenn ich allerdings einen Quader und eine Kugel in einer Szene
hätte, wie kann ich dann für jedes Objekt einzeln die Shademodes
einstellen? Weiß nicht ob es einen Unterschied machen würde, aber nehmen
wir einfach mal an, dass die Objekte vom Typ ID3DXMesh sind und über
Vertex- und Indexbuffer initialisiert worden sind..
Danke schonmal.
Norman.
-
dann musst du 2 renderdurchgänge machen.
zuerst die kugel mit ihren states, dann den Quader mit anderen states. anders gehts leider nicht
-
Normalerweise "verdoppelt" (wie nennt ein Grafiker das?) man an scharfen Ecken einfach die Vertices und rendert dann alles Gouraud.
Bye, TGGC (NP Intelligenz)
-
Hm das mit den zwei Renderdurchgängen hört sich logisch an.
Wie realisier ich das praktisch gesehen?
-
Norman0406 schrieb:
Hm das mit den zwei Renderdurchgängen hört sich logisch an.
Eher ziemlich dumm.
Bye, TGGC (Pipe my World.)
-
Dann gib mal nen konstruktiven Beitrag und erklär mal wie man dieses Problem praktisch umsetzen kann.
-
Wer lesen kann, ist klar im Vorteil.
Bye, TGGC (Pipe my World.)
-
na klar kann man an den Ecken, deren Polygone "Flat" sein sollen, die Anzahl der Vertices verdoppeln, aber jenachdem wie mein Level aussieht könnte das die Framerate ziemlich in die Tiefe ziehen, stell dir ein Level vor indem alles Flat ist nur eine Kugel Gouraud sein soll.
-
Könnte. Könnte aber auch nicht.
Bye, TGGC (Pipe my World.)
-
Norman0406 schrieb:
na klar kann man an den Ecken, deren Polygone "Flat" sein sollen, die Anzahl der Vertices verdoppeln, aber jenachdem wie mein Level aussieht könnte das die Framerate ziemlich in die Tiefe ziehen, stell dir ein Level vor indem alles Flat ist nur eine Kugel Gouraud sein soll.
Wenns genau umgekehrt ist zieht es aber auch die FrameRate in den Keller wenn du immer RenderStates neu stellst. Also musst du selbst abschätzen in wie weit das bei dir der Fall ist.
Ansonsten musst du eben RenderStates umsetzen und danach den anderen Teil rendern. Ist ja bei Material/Textur/Was auch immer nicht anders.
MfG SideWinder