N
neoexpert
Gast
Guten Abend.
Was ist die effizienteste Methode für Kollisionserkennung für Objekte in einem Raum?
Man kann ja z.B. jedes Objekt mit jedem auf Kollision prüfen. Es wäre ziemlich rechenintensiv bei vielen Objekten die sich bewegen (O(n^2)).
Dann habe ich überlegt den Raum zu "verpixeln" (vervoxeln) also grobe Kollisionserkennung zu machen, die man verfeinern kann wenn Objekte näher zu einander kommen. Stellt euch mal vor die Objekte bewegen sich in einem "Integer-Raum" und sind zunächst Würfel mit Kantenlänge 1.
Man kann dann mit
Direkt und schnell auf jeden Objekt zugreifen der im RaumVoxel P liegt.
So könnte man schnell checken ob unser würfel in einen belegtten RaumVoxel fliegt und damit kollidiert. Das wäre O(n) aber grob. Was meint Ihr dazu?
Was ist die effizienteste Methode für Kollisionserkennung für Objekte in einem Raum?
Man kann ja z.B. jedes Objekt mit jedem auf Kollision prüfen. Es wäre ziemlich rechenintensiv bei vielen Objekten die sich bewegen (O(n^2)).
Dann habe ich überlegt den Raum zu "verpixeln" (vervoxeln) also grobe Kollisionserkennung zu machen, die man verfeinern kann wenn Objekte näher zu einander kommen. Stellt euch mal vor die Objekte bewegen sich in einem "Integer-Raum" und sind zunächst Würfel mit Kantenlänge 1.
Man kann dann mit
Java:
HashMap<Point,Object> objects;
So könnte man schnell checken ob unser würfel in einen belegtten RaumVoxel fliegt und damit kollidiert. Das wäre O(n) aber grob. Was meint Ihr dazu?