Autor Beitrag
Andreas Pfau
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Fr 24.01.03 19:50 
Hallo Leute,

villeicht stehe ich ja gewaltig auf dem Schaluch, aber eines beschäftigt mich bei der CollisionDetection: Ich muss doch eigentlich jeden Beerich mit jedem auf Collision prüfen, oder? Aber wie machen das moderen Games wie UT2K3, die tausende von Objekten haben? Gibt es da einen einfachen Trick, die Rechenzeit zu verringern?????
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Fr 24.01.03 23:47 
Hi,

Ja.. bei der Collision Detection mußt du die Kollision mit JEDEM Polygon überprüfen... :)

Natürlich ist das bei einem Level wo ~500.000 Polygone sind recht.. ähm.. aufwendig *g*
Aber dafür wurden in irgendeinem schlauen Kopf die BSP-Trees, bzw Octrees entwickelt.

Bei einem Octree z.B. wird um das gesammte Level eine große Box gespannt, diese Box wird dann in 8 kleine Boxen unterteil, diese 8 Boxen jeweils wieder in 8... die 8 wieder in 8... etc...

Das kann man dann soweit machen wie man will... (Octree erstellung kann bei großen Levels durchaus mal nen Taglang dauern :roll: )
Später beim Rendern prüft man dann per FrustumCulling "Ist Box1 Sichtbar?" wenn ja werden die 8 unterboxen kontrolliert, wenn nein wird sie weggelassen... usw... bis man halt bei der letzten Box angekommen ist :D

Das ist eine sehr sehr schnelle methode um rauszubekommen was sichtbar ist und was nicht (Wird auch von den aktuellen spielen genutzt).

Für die CollisionDetection ist es genauso hilfreich, denn du brauchst die CollisionDetection ja nur in den Boxen durchführen in denen deine Spielfigur sich befindet... :)

Hoffe du hast es einigermaßen verstanden...

Bei problemen der Umsetzung...
In 4-6 Tagen werde ich auf www.DelphiGL.com ein Tutorial über die erstellung von Octrees schreiben :)

Au'revoir,
Aya~
Andreas Pfau Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Sa 25.01.03 12:07 
Wow, vielen dank! :D

Dan werde ich mich mal in ein paar Tagen DelphiGL aufsuchen, denn so ganz habe ich das nicht verstanden. Totzdem, jetzt kapiere ich das gröbste, Danke.