transparente Objekte in Landschaft (OGL).... wie jetzt?
-
Ne, sortiert hab ich erst mal gar nichts. ich versteh auch nicht, was das bringen soll.
Die Bäume sind doch auch sortiert hinter den Hügeln des Terrains sichtbar. Oder versteh ich etwas falsch?
-
Vielleicht läßt sich da mit Alphatest was machen.
-
Inwiefern? Es ist ja eigentlich egal, wie ich dei Masking Technick realisiere. Der DepthBuffer muss trotzdem aus, damit man hinter den unsichtabren Teilen der Textur was sieht.
-
Was ist so schlimm daran, das man den Baum auch hinter einem Hügel sieht ?
Oder sieht man den Baum durch den Hügel ? Das wäre wiederrum sehr bemerkenswertund liegt wohl daran, das du das Alpha-Blending auf alles anwendest und nicht nur auf die Bäumchen.
-
Also, man sieht die Bäume durch die Hügel. Das liegt ja ach daran, dass der Depth Test DEAKTIVIERT ist. Das heißt, OPENGL schaut nicht nach, ob der Baum vom Hügel verdeckt ist. Das Terrain wird korrekt ohne Blending gezeichnet.
Ich hoffe ihr versteht mich jetzt endlich. Ich muss halt beim Zeichnen der Bäume, den Depth Test deaktivieren, weil man sonst die Sachen hinter den transparenten Flächen nicht mehr sieht.
Aber wie gesagt, dann gibt es halt das Problem, dass ich die Bäume durch den Hügel sehe.
-
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