ich bin grad ein wenig.. äh... na ja, weiß halt nich weiter *g*
Ich hab grad meinen Octree gebastelt, funktioniert bis auf eine kleinigkeit und eine etwas größere sache, schon sehr gut...
Also: Wie bekomme ich raus ob ein Polygon in einem Würfel liegt..?
sobald ein Vertex des Polygons im Würfel liegt ist es kein Problem mehr, nur was wenn alle Vertex'e des Polygons ausserhalb des Würfels liegen, das Polygon aber trotzdem durch den Würfel druchgeht...?
Weiß jemand wie ich das rausbekommen kann???
Au'revoir,
Aya~
PS: Die andere größere sache ist wie man Polygone Splitten kann, aber da hab ich schon irgendwo nen Tutorial gesehen.. würd mich aber auch freuen wenn mir da wer noch schöne Seiten sagt (ausser die eine von Steffan Zerbst)
Wenn sich der Würfel und das Polygon schneiden , dann geht entweder eine Kante des Polygons durch den Würfel, eine Seitenkante des Würfels schneidet das Polygon oder ein Punkt des Polygons ist im Würfel.
Aber einfacher wäre es die Bounding Box des Polygons zu nehmen und zu prüfen, ob sie die den Würfel, der ja vermutlich auch eine Boundind Box ist, schneidet. Das ist aber nicht so genau, aber wenn das Polygon den Würfel schneidet, dann trifft auch dieser Test zu, so das vermutlich keine Fehler entstehen dürften.
mhh.... "nicht so genau" reicht mir hierfür leider nicht.. Hierbei ist's auch relativ egal wie lange das berechnen dauert, denn das ist für meinen Octree gedacht, und der brauch bei großen Leveln sowieso ne ganze Zeit bis er berechnet ist...
Es gibt soetwas wie polygon - polygon intersection tests - wird meist für collision detection verwandt, mach dich dort aber mal schlau. übrigens, dieser test ist meist "recht" aufwendig, es könnte sich lohnen erst um das polygon eine AABounding Box zu berechnen und diese auf überschneidungen mit dem Octree Leaf zu testen. Ansonsten musst du halt mal nach solchen Überschneidungstests ausschau halten, ich hab mich damit bislang noch nicht beschäftig, ich weiß nur, dass es sie gibt und dass es im Netz schiere unmengen an Tutorials dazu gibt, meist unter dem Begriff Collision Detection doer Intersection test.
Unter <a href='http://www.realtimerendering.com/int' target='_blank'>http://www.realtimerendering.com/int</a> gibt es Beispiele für alle nur denkbaren Kombinationen von Kollisionen zwischen Kugel,AABB,Dreieck,Linie usw...
<a href='http://www.magic-software.com/Source/Intersection3D/MgcIntr3DTriBox.cpp' target='_blank'>http://www.magic-software.com/Source/Inter...ntr3DTriBox.cpp</a>
Das scheint auch genau das zu sein was ich brauche, nur leider versteh ich da rein garnix..
Wenn also wer lust hat mir das zu erklären oder auf Delphi umzuschreiben, da wär ich seeehr dankbar..
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Hi,
habe gerade unter Allgemein/Mathe-Schnittpunkte etwas gepostet.
Wenn Du die Unit geomtry.pas von M. Lischke bzw. JEDI verwendet, ist unter <a href='http://www.seban.de/download/PLCollision.pas' target='_blank'>http://www.seban.de/download/PLCollision.pas</a> eine Unit zu finden, die eine Collision zwischen einer Ebene und einer Linie behandelt. Sie ist im Orignal von Maarten Kronberger, unter http:// www.sulaco.co zu finden, habe diese nur an die Unit Geometry.pas angepasst und ein wenig umformatiert. Um sicher zu ein, must Du für jede Kante deines Würfels den Intersection Test machen, aber da Geschwindigkeit kein Problem ist....
Du uebergibst die 4 Vertices des Plane und 2 Vertices des Würfes und bekommst einen Boolean-Rückgabewert. Hoffe hilft Dir weiter.
Mitglieder in diesem Forum: 0 Mitglieder und 8 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.