D3D: Überschneidende Grafiken



  • Versuche mal die Objekte so zu sortieren das du Back to Front renderst. Wenn ich dich richtig verstanden habe könnte das der Fehler sein.



  • Ja, das ist der Grund. Wenn ich das ganze von der Seite betrachte, dass Back-to-Front gerendert wird funktioniert es. Nur leider kann man in meinem Fall jederzeit die Kameraposition und Richtung verändern, so dass auch die Renderreihenfolge dauernd geändert werden müsste. Und ich habe leider keine Ahnung, wie ich berechnen kann, in welcher Reihenfolge nun gerendert werden muss.

    Außerdem würde das Problem weiter bestehen, wenn 2 Objekte direkt übereinander liegen (zumindest teilweise). Also wenn sie z.B. die gleichen Z-Koordinaten haben und nur in X-Richtung etwas verschoben sind.

    mfg


  • Mod

    mach den zbuffer-write aus, zeichne alle objekte, mach den zbuffer-write an und colorwrite aus und zeichne deine objekte.
    dann hast du den colorbuffer so wie er funktioniert hat (mit dem zbuffer aus) und den zbuffer hast du dann auch wie gewünscht.

    rapso->greets();



  • Christoph Redl schrieb:

    nur leider brauche ich auch den BackBuffer.

    Der Back-Buffer ist das, wo reingezeichnet wird. Vielleicht verwechselst Du da irgendwas?


  • Mod

    Wenn ich den Z-Buffer abschalte funktioniert es einwandfrei, nur leider brauche ich auch den BackBuffer.

    TomasRiker schrieb:

    Christoph Redl schrieb:

    nur leider brauche ich auch den BackBuffer.

    Der Back-Buffer ist das, wo reingezeichnet wird. Vielleicht verwechselst Du da irgendwas?

    er meint wohl den zbuffer?

    rapso->greets();



  • Ja, ich mein natürlich den Z-Buffer.

    mfg



  • rapso schrieb:

    mach den zbuffer-write aus, zeichne alle objekte, mach den zbuffer-write an und colorwrite aus und zeichne deine objekte.
    dann hast du den colorbuffer so wie er funktioniert hat (mit dem zbuffer aus) und den zbuffer hast du dann auch wie gewünscht.

    rapso->greets();

    Sortiert man die Objekte nicht besser nach ihrem Abstand zur Kamera? Vor allem wenn man Transparenz verwendet.



  • Christoph Redl schrieb:

    Und ich habe leider keine Ahnung, wie ich berechnen kann, in welcher Reihenfolge nun gerendert werden muss.

    Vielleicht mit dem Satz von Pythagoras?

    Bye, TGGC (Reden wie die Großen)


  • Mod

    H.L.T.O schrieb:

    rapso schrieb:

    mach den zbuffer-write aus, zeichne alle objekte, mach den zbuffer-write an und colorwrite aus und zeichne deine objekte.
    dann hast du den colorbuffer so wie er funktioniert hat (mit dem zbuffer aus) und den zbuffer hast du dann auch wie gewünscht.

    rapso->greets();

    Sortiert man die Objekte nicht besser nach ihrem Abstand zur Kamera? Vor allem wenn man Transparenz verwendet.

    er hatte doch geschrieben, dass es für ihn ok ausschaut wenn der zbuffer-vergleich aus ist, er möchte aber den zbuffer zusätzlich haben. meine lösung erfüllt alle seine voraussetzungen, somit ist es perfekt 🙂

    sortieren kann man, gibt aber natürlich sehr viele mögliche fehler die dabei auftreten können. z.b. sich schneidende objekte, nicht konvexe objekte. Es ist ja nichtmal klar ob man nach zentrum der space extends, oder dem zentrum der gewichtung ( (x1+x2+x3)/3 ) oder nach nachestem/entferntestem punkt sortieren sollte, für jede art der sortierung kann man nachweisen dass eine andere besser wäre.

    aber es geht zum glück einfacher.

    rapso->greets();



  • Dann definiert besser aber keine totale Ordnung auf den Sortierungen,

    Bye, TGGC (Reden wie die Großen)


  • Mod

    Definiere die Ordnung die du hattest als es gut aussah und du noch den zbuffer zusätzlich haben wolltest.

    rapso->greets();



  • Dat is genau wie letztens mit dem VS. Ohne funktionierte es, aber er wollte ihn einfach nicht abschalten. 😎

    Bye, TGGC (Reden wie die Großen)


Anmelden zum Antworten