Hi,
Ich verwende gerade das Feuer aus dem Partikeltutorial I für ein kleines Demo. Das Problem ist der Depth-Buffer, der ja für das Feuer ausgeschaltet werden muss. Jetzt werden die Flammen natürlich hinter allen anderen Objekten gerendert. Wenn ich den Depth-Buffer aktiviert lasse, dann sind die Flammen zwar im Prinzip an der richtigen Stelle gerendert, aber das Blending geht nicht mehr.
Ich hab auch schon im Redbook unter Blending nachgeschaut. Da steht ein Artikel über 3d-blending mit dem Depth-buffer drin. Dort wird glaub ich dieses Problem beschrieben und mit glDepthMask gelöst.
Aber bei mir hilft das nicht wirklich.
Man muss doch irgendwie etwas übereinander blenden können, ohne das der Depth-buffer dazwischenfunkt.
Registriert: Di Nov 26, 2002 22:12 Beiträge: 259 Wohnort: Dresden
Da bei Blending die Reihenfolge, in welcher du die Flächen zeichnest, nicht egal ist, musst du die einzelnen Partikel nach der Entfernung von deiner Kamera sortieren. Zuerst zeichnest du die von der Kamera am weitesten entfernte Fläche und zuletzt die Fläche, die dem Betrachter am nächsten ist. Auf diese Art und Weise solltest du mit dem Tiefenpuffer keine Probleme bekommen.
Die zweite Möglichkeit wäre, dass du erst deine gesamte Szene zeichnest und zuletzt deine Partikelsysteme. Aber spätestens bei Anwendungen wo man sich frei bewegen kann funktioniert dies nicht mehr.
_________________ Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650
Das Einfachste ist wirklich, die Partikel am Ende zu zeichnen. Besonders weil sie mit dem Hintergrund geblendet werden geht es ja kaum anders.
Wenn man dabei, wie Fiji-Fighter meinte, nicht mehr in den ZBuffer schreibt, sollte das keine Probleme geben. Die Partikel verdecken sich gegenseitig nicht und wenn sie als letztes gezeichnet werden ist es egal, welcher Wert danach im ZBuffer steht.
Die Sortierung wegen Blending kann eigentlich vernachlässigt werden, da sich die Partikel bewegen und man einzelne Partikel danach nicht genau verfolgen kann.
Also, das Problem ist, dass die Flammen auf kleinen Würfeln sitzen und zwar in der Mitte und nicht irgendwo dahinter. Ich probier jetzt mal glDepthFunc(GL_LEQUAL) für die Flammen zu verwenden. Vielleicht geht's ja damit.
Wenn alles klappt, wird es vielleicht in ferner Zukunft eine Basis-"Engine" für Strategiespiele nach C&C-Art geben.
Mitglieder in diesem Forum: 0 Mitglieder und 20 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.