PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie beschleunigt ein BSP-Tree eine 3D-Engine?


Nasenbaer
2009-04-03, 19:04:49
Erstmal vorab: Mir ist klar wie ein BSP-Tree funktioniert, wie man ihn anlegt usw.
Mit ist auch klar, dass bei Nutzung des Painter-Algorithmus eine Back-to-Front Sortierung notwendig ist und dazu ein BSP-Tree genutzt werden kann.
Nun nutzen aber auch 3D-Engines BSP-Trees als Beschleunigung aber wie funktiniert das da, da ich ja nur eine Sortierung der Polygone erreiche und IMO keine Reduktion der Polygon-Daten.
Die einzige Idee, die ich habe, ist, dass durch eine Front-to-Back Sortierung und eine vorgezogenen Tiefentest Arbeit beim Fragment-Processing gespart wird. Sehe ich das so richtig oder hab ich da was noch nicht verstanden?

Gast
2009-04-03, 21:09:09
Soweit ich weiss, werden nur die Zweige des Baums abgearbeitet, die sichtbar sind.
Als plastisches Beispiel kann man sich vorstellen, die Kamera durch das Innere eines Baummodelles zu bewegen, wenn diese sich in einem Zweig befindet, ist das Abarbeiten der meisten anderen Zweige nicht nötig.
Das funktioniert aber nur bei geschlossenen Leveln, nicht bei offenen Landschaften.

Nasenbaer
2009-04-03, 22:26:26
So wie ich die BSP-Tree Funktionsweise kennen gelernt habe, wird zwar der Blickpunkt einsortiert aber dabei die Blickrichtung nicht berücksichtigt. Wenn ich diese aber nicht betrachte, dann kann ich ja nicht entscheiden, welche Bereiche im View-Frustum liegen und welche nicht.

Coda
2009-04-03, 22:44:25
Man kann wie bei jedem Scenegraph zB Frustrum Culling damit machen. Die Quake 1-3 Engines speichern pro Leaf aber ein PVS, also welche anderen Leafs sichtbar sind. Aber auch sonst kann man zB hardware occlussion querries darauf anwenden wie bei jedem anderen Szenenbaum auch.

Nasenbaer
2009-04-03, 23:04:35
Thx. Das hilft mir schonmal weiter. Dann ist der BSP-Algorithmus, den wir behandelt haben wirklich noch die Urform, die nur beim Painter-Algorithmus sinnvoll ist. Bei Nutzung von 3D-Hardware ist dann noch ein wenig Zusatzaufwand notwendig um Nutzen aus dem BSP-Tree ziehen zu können.

Coda
2009-04-04, 10:32:30
Heute sind andere spatial trees eh besser geeignet wenn man nicht irgend etwas sehr spezielles machen will z.B. eine Bounding Volume Hierachie. CSG geht aber mit einem BSP gut...

Nasenbaer
2009-04-04, 21:29:33
Heute sind andere spatial trees eh besser geeignet wenn man nicht irgend etwas sehr spezielles machen will z.B. eine Bounding Volume Hierachie. CSG geht aber mit einem BSP gut...
Ahh gut zu wissen. Für Indoor-Games dürfte sich auch immer noch Portal-Culling denk ich mal.

Coda
2009-04-05, 11:59:19
Dafür braucht man aber auch keinen BSP.

Nasenbaer
2009-04-05, 12:07:14
Dafür braucht man aber auch keinen BSP.
Ja ich meinte ja als Alternative zu BSPs.