Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Jul 08, 2025 00:57

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Mesh und VBO, fragen dazu
BeitragVerfasst: Fr Apr 29, 2011 11:55 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Serv,

wie kombiniert man denn ein Mesh und ein VBO/IBO?

Genau genommen geht es darum, ich habe ein mesh das enthält positionsdaten, normalen, texturekoordinaten, oberflächen, indextabellen etc. Bisher alles im normalen Speicher gehalten.

Nun erzeuge ich ein VBO/IBO aus diesen Daten. Dadurch packe ich ja alle daten die für das VBO notwendig sind in den VRAM der Grafikkarte. Nun lösche ich das Mesh, weil die Daten sind ja nun im VRAM. Doppelt brauch ich das ja nicht.

So mach ich es aktuell, aber bin nun auf ein Design Problem gestoßen.

Ich wollte nun das ganze um eine AABB erweitern damit ich simple AABB kollisionen durchführen kann.
Wobei ich das auch noch nach der AABB kollision um eine Triangle-AABB kollision erweitern wollte.

Die Frage die ich habe, wie Teilt man diese Daten auf, bzw. wie sieht so eine Datenstruktur aus?

Ich muss ja in jedem Frame Update zyklus zugriff auf die AABB´s/Dreiecke haben die im RAM liegen,
aber benötige nicht die Geometry Daten im RAM, sondern eigentlich sind die im VRAM besser aufgehoben.

Und ich will vielleicht später noch eine Transformationsmatrix nutzen, um objekte nicht stur immer an der selben position zu zeichnen.

Man muss ja dann die AABB´s/Dreiecke die für die Kollision zuständig sind mit der Matrix verrechnen oder?

Danke,
Final


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mesh und VBO, fragen dazu
BeitragVerfasst: Sa Apr 30, 2011 14:05 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Üblicherweise sind die Trianglemeshes für Physik andere als für Grafik.
Es ist selten notwendig die komplexen Grafikmeshes für die Physik berechenung zu verwenden, denn es kostet Speicherplatz und viel Performance die ganzen Triangle zu verwalten. Daher wird oft die Grafikvariante in den VRam gepackt und die Physikvariante liegt im Arbeitsspeicher. Sollte man diese trennung nicht machen, gibt es die Möglichkeit die Daten in VRam und Ram doppelt zu haben, sehr kostspielig die Daten vom VRam ab zu fragen oder die Physik auf die Grafikkarte zu verlagern.

Je nach geschmack und Kentnisse nutzt du für jedes Objekt einen Positionsvektor und ein Quaternion oder eine Matrix, um die Transformation ab zu bilden. Da sich die AABB durch transformationen verändern, hast du ein dynamisches system, das ändert aber nicht die Daten, deines Meshes, die bleiben im Speicher immer gleich. Also du berechnest für jede Änderung deiner Transformation die Punkte mit den Transformationsdaten temporär, daraus das neue AABB und verwirfst dann wieder die Punktdaten. Mit OBB hast du dieses Problem nicht, dafür sind die OBB-OBB tests ein bisschen aufwendiger aber nichts im vergleich zu dem Berechnen der Punktdaten.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 16 Queries | GZIP : On ]