ich wollte mal nachfragen was so das übliche verfahren ist, um z.b. AABBs zu rendern ohne den Immediate Mode zu nutzen. Oder z.b. nen Gitter rendern, etc. Mit dem immediate mode ist das ziemlich simpel, aber mit VBO und Shadern würden mir nur 2 Sachen einfallen:
- VBO rendern mit GL_LINE_LOOP, das die größe 1 x 1 x 1 und dann mittels Modelview Matrix die Skalierung der AABB multiplizieren und die Position dazurechnen.
- Das ganze mit einem Geometry Shader irgendwie rendern, nur wüsste ich da nicht wo man ansetzt... Dachte da vielleicht, das ich nen einfachen Point (Mittelpunkt vom AABB) Rendere und im Geo shader, die AABB größe/position mitgebe und dann die Line_Loops Generiere??? Könnte das Funktionieren? Normalen kann man ja so auch rendern, nur wird da ja das gesamte Mesh gerendert.
Wie gebe ich da die Line Size mit? oder muss ich das selbst mit dem Frag-Shader selbst berechnen?
Achja, das wichtigste Frage überhaupt, wie vereine ich eigentlich so debug Renderkram im GBuffer (Deferred Rendering)? Einfach im Diffuse target dazu rendern, aber per Material flag nicht beleuchten?
Achja, das wichtigste Frage überhaupt, wie vereine ich eigentlich so debug Renderkram im GBuffer (Deferred Rendering)? Einfach im Diffuse target dazu rendern, aber per Material flag nicht beleuchten?
Entweder nicht beleuchten oder einfach wie auch Transparente Objekte im nachhinein erst zeichnen. Solange du den Depth Buffer hast kannst du ja problemlos nach dem Deferred Rendering noch Sachen in die Scene rendern.
Jo das mti dem Deferred Rendering hat sich erledigt. Während ich im GBuffer pass bin, kann ja beliebigen kram noch in den Color Buffer schreiben. Über Immediate funktioniert das auch schon super, wie erwartet... aber mit modernen Mitteln habe ich noch keine wirkliche idee.
Wenn es nur zu Debugging zwecken ist, erstelle ich mir für sowas einfach ein extra VBO dafür. Natürlich ist das vermutlich nicht das beste was die Performance angeht, aber das ist bei Debug zwecken in der Regel ja egal.
Also ich erstelle mir einen VBO für einen Würfel (8 Vertices) und update die Vertex-Positionen für jede BoundingBox so wie ich sie brauche, also quasi der Immediate Mode in nen VBO gebastelt
Wenn es um Performance geht und die BoundingBoxen sich nicht ständig ändern ist es vermutlich geschickter alle Bounding Boxen in einen statischen VBO zu packen (den man dann ggf. mit Range Draw zeichnet wenn man nur manche braucht) oder via Geo Shader etc..
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Debug daten kannst du auch nicht so performance kritisch betrachten und einfach 2-3 primitive in ein vbo quetschen. 2*2*2 unit cube, sphere, cross sollten eigentlich reichen, die kannst du dann über eine matrix entsprechend auf die richtige größe skalieren und muss nicht an dem vbo fummeln. Des weiterem liegen alle debug primitiven in einem vbo, damit sparst du dir den switch und shadermässig würde ich ein unlit green oder so benutzten. Es gibt von Nv auch schicke line extensions, um muster auf die linien zu malen. Wenn du alles mit einmal renderst, dann ist das ausreichend performant
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.