transparente Objekte in Landschaft (OGL).... wie jetzt?
-
Dein Problem ist, das du die Polys in der falschen Reihenfolge renderst.
Das wäre normalerweise kaum ein Problem - Aber da du Blending benutzt, kann das komische Nebeneffekte haben. Du renderst anscheinend erst den Hügel und dann den Baum - Obwohl der Baum sich hinter dem Hügel befindet.
Du solltest die Szenerie aber von hinten nach vorne rendern (Das weit entfernteste zuerst usw).
Dann musst du noch beachten:
Malst du einen Baum ? -> Depth Testing aus
Malst du die Hügel -> DT ein
-
Das hört sich zwar vernünftig an, aber normal ist das terrain rendern doch eine (zum Teil sehr komplexe) Einheit. Ich kenne keinen Algorithmus zum Rendern von Terrain, wo auch noch auf so etwas geachtet wird. Die zeichnen ja oft kreuz und quer.
Wenn man da noch etwas implementieren will, dass das Terrain mit irgendwelchen Bäumen abgleicht steht man doch vor einer ziemlich schweren Aufgabe..
-
Also sinnvollerweise rendert man das Terrain normal und dann alle Bäume von hinten nach vorn mit z-write disabled.
-
Was ist denn z-write
-
Depth Write - nur unter DX
-
Kannst du das mal mit Depth-Write erklären.
Meinst du, das man nur in den Depth-Buffer schreibt,
oder das man Depthtesting abschaltet.Beides wird nämlich von Gl unterstützt.
-
Nein - Depthwrite disabled. So daß er nur lesen, aber nicht schreiben kann.
-
Original erstellt von SnorreDev:
Nein - Depthwrite disabled. So daß er nur lesen, aber nicht schreiben kann.Sag ich doch
-
Stimmt, mit
glDepthMask(False);
kommt man schon weiter. Sieht jetzt perfekt in der landschaft aus. Sieht nur Mist aus, wenn man zB zwei Bäume hintereinander hat, dann wird die Textur plötzlich auch da transparent, wo sie eigentlich nicht transparent sein sollte (also der baum an sich).
Ich benutze übrigens die masking Methode ausm nehe Tut http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=20.
-
Das geht auch mit Gl
glDepthMask(GL_FALSE);//writing disabled
glDepthMask(GL_TRUE);//gegenteil
-
Das geht auch mit int
glDepthMask(0);//writing disabled
glDepthMask(1);//gegenteil
-
ok, jetzt funzt alles, thx für jede Hilfe(-bemühung)
Nur anscheinend haben die Delphi leute mehr drauf , da wurde das mit dem glDepthMask(XXX) sofort erwähnt...
-
Verdirb es dir hier nicht! :p
-
Falsch - sie haben nur mehr Zeit, weil sie nen Job suchen
-
Der war gut
-
Original erstellt von SnorreDev:
Falsch - sie haben nur mehr Zeit, weil sie nen Job suchenAhh, deswegen wird im DSB so wenig gepostet