Objekte beliebig zerschneiden - Schnittfest

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

biggicekey

Betreff: Objekte beliebig zerschneiden - Schnittfest

BeitragSo, Dez 19, 2010 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

ich suche eine Möglichkeit, bzw. überhaupt das Prinzip zu verstehen, ein 3d Objekt an beliebiger Stelle zu zerschneiden. Zum einen müssten auf der Mantelfläche des Objektes neue Vertices an den Schnittpunkten erstellt werden, zum anderen muss entsprechend hinterlegt sein, wie das Objekt im inneren aussieht und die Schnittfläche müsste "on the fly" errechnet werden.
Das einzige mit bekannte Beispiel ist das Minigame "Schnittfest" aus dem Wii-Spiel "Wii Sports Resort".
user posted image
http://www.youtube.com/watch?v=nePm-j3cWfU
Wer kann sich das Vorgehen genauer vorstellen?

mfg

ZaP

BeitragSo, Dez 19, 2010 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Die untere Grafik hier veranschaulicht das ganz nett, aber wie man das implementiert kann ich dir jetzt nicht sagen Wink Wahrscheinlich müsste man die neuen Vertices mit Vektor/Ebenen-Schnittpunkt Formeln errechnen, und dann alles irgendwie verbinden. Ich denke, wenn man das ganze erstmal auf 2D herunterbricht, kommt man eher drauf.
Starfare: Worklog, Website (download)

darth

BeitragSo, Dez 19, 2010 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

wenn man davon ausgeht, dass du das Objekt komplett zerschneiden möchtest, dann ist das gar nicht so schwer. Wenn du sowas wie in ZaPs Link machen möchtest (teilweise rausschneiden) wirds etwas komplizierter.

Zuerst definierst du eine Schnittebene (A*x + B*y + C*z + D = 0, wobei [A;B;C] der Normalenvektor der Ebene ist und D das Offset).
Mit dieser Gleichung kannst du Geradenschnitte zwischen den Seiten der Triangles und der Ebene durchführen, und dein Objekt anhand der erhaltenen Punkte.

Das grösste Problem, das ich im Moment sehe wäre, die korrekte Einordnung der erhaltenen Schnittpunkte in die jeweiligen neuen Meshes (du kriegst ja aus 1 -> 2), weil du ja nicht einfach nur den Endpunkt der Gerade zum neuen Schnittpunkt verschieben kannst :/ Da müsste man etwas mehr Gedanken investieren vermute ich.

Wenn ich mich recht erinnere, hat Noobody mal sowas ins Codearchiv gepostet, vllt find ichs noch gleich, dann editier ich einen Link rein.

MfG,
Darth

[Edit]

Link: https://www.blitzforum.de/foru...hp?t=31471

Das ist zumindest die "Hälfte" der Arbeit. Das Objekt wird zerschnitten und in zwei neue Objekte geteilt (vermutlich.. oder beide Schnitthälften wieder ins selbe, so genau hab ich mir den Code nicht angesehn). Das bestehende Problem ist, die entstehende Schnittfläche zu füllen. Aber wie es scheint hat er das Problem der "Anordnung" der neuen Punkte gelöst. Ich bin mir nicht sicher inwieweit das allgemein zutrifft, da es sich hier nur um ein "einfaches" Objekt handelt (wenn z.b durch den Deckel geschnitten würde, was würde passieren?).
Aber es eignet sich bestimmt als Ausgangspunkt um weiterzuarbeiten.

MfG,
Darth
Diese Signatur ist leer.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group