3D Modell in Schichten zerlegen
Übersicht

blink-182Betreff: 3D Modell in Schichten zerlegen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich brauche eine Möglichkeit ein gewöhnliches 3D modell in sehr Dünne Schichten zu Zerlegen. Im Klartext will ich eine 3D Datei einlesen können und anschließend sozusagen einige tausend MAsken erhalten. Man kann sich das so vorstellen, wie wenn man mit einer ebene das Modell von unten nach oben abfährt und überall, wo das Modell die Ebene Schneidet soll dann z.B. in einer Bilddatei ein schwarzes und ansonsten ein weißes Pixel gezeichnet werden. Ich hoffe ihr wisst, was ich meine Als kleines einfaches beispiel wären es bei einer Kugel z.B. zunächst eine weiße Bilddatei, in den nächsten Bildern ein wachsender ausgefüllter Kreis und zum schluss noch ein kleiner Punkt bzw. eine weiße Bilddatei. Natürlich muss dieses Problem nicht mit einer Ebene gelöst werden. Satt dessen habe ich mich gefragt, ob man dieses problem mit der Blitz Collission lösen kann. außerdem sollen auch wirklich die echten Konturen erfasst werden. Also z.B. bei einem Hohlem Zilinder ein unausgefüllter Kreis etc... Schonmal Danke für eure Hilfe. ciao FLO |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was willst du denn dann damit machen? Auf Pappe ausdrucken, ausschneiden und zusammen kleben um die Spielhelden von Half-Life, Doom, Quake etc. sich dann ins Zimmer zu stellen? ![]() Ich könnte mir folgendes vorstellen: Man nehme eine winzig kleine Kugel (Sphere) und bewege sie nun zunächst auf Höhe 0 rasterförmig in X und Z mit jeweils einer Schleife und überprüft dessen Kollision. Wenn Kollision, dann wird in einer Bitmap ein Punkt eingezeichnet. X in 3D währe X in 2D Z in 3D währe Y in 2D Wenn die Höhe in 3D abgeschlossen ist, wird die Bitmap gespeichert und auf nächster Höhe weiter gemacht. |
||
blink-182 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
genauso habei ch mir das auch überlegt und auch schon angefangen zu Programmieren. Mit deinem auf Pappe Drucken hattest du sogar fast recht! Nur das das ganze Teil eines Jugend Forscht Projektes ist: Entwicklung eines farbigen 3D Druckers. Aber dazu werde ich euch später noch mehr erzählen. Auf jeden fall mal Danke für eure Hilfe! Falls noch jemandem eine bessere möglichkeit einfällt kann er diese gerne anbringen. ciao FLO |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine Idee hätte ich, die schneller geht, weiß aber nicht ob sie funktioniert...
Dein Meshl darf kein Lighting besitzen, und Backfaceculling muss ebenfalls abgeschalten sein. Jetzt setzt du Wireframe auf True. Dann brauchst du eine Kamera mit orthogonalen Rendering. CameraRange muss möglichst klein sein. Die Differenz zwischen Far und Nearclippingplane der Kamera ist ja praktisch die dicke deiner Scheibe. Dann fährst du die Kamera von oben nach unten. Dabei erfasst sie jede Schicht deines Meshs. Aber eben nur im Bereich zwischen Far und Near. Das ist aber keine genaue oder gute Methode. Die beste wäre, die Schnittpunkte mit der Plane selber zu berechnen. mfg olli |
||
vertex.dreamfall.at | GitHub |
blink-182 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey, Danke für die coole Idee ![]() ![]() Also vlt nur en grundgedanken.. den Kopf zerbrech ich mir dann schon selber ![]() danke FLO |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Vertex,
die Idee hatte ich auch mal ausprobiert. Es gibt allerdings ein Problem wenn die Fläche des Meshes annährend der Kamera zugewand ist. Dann wird diese garnicht oder nur mit ein paar Pixel dargestellt. Der Körper erscheint dann auch mit der Farbe des Hintergrunds. Somit kann man einige Stellen nicht als Körper identifizieren. Leider... |
||
blink-182 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Stimmt genau. Leider erscheinen in diesem Fall wenn überhaupt nur wenige Pixel, aus denen mann leider so ghut wie keine Informationen gewinnen kann.
Am besten wäre tatsächlich eine genaue Berechnung der Schnittpunkte, da ich so auch nicht umbedingt an blitz3D gebunden wäre. Schließlich muss ich die erhaltenen Daten anschließend entweder über den Druckerport oder USB Port ausgeben, und dafür eignen sich andere Sprachen vlt. doch besser. Interessant wäre zunächst mal zu wissen, wie die 3D Objekte in den verschiedenen Formaten gespeichert sind. Anschließend könnte man jedes der "Dreiecke" zerlegen, sodass man nur ncoh linien hat. Dann geht man zunächst linie für Linie druch und speichert die absolute höhe, sodass man im nächsten schritt nicht jedes mal alle "Linien" auf eine Kollision mit der ebene prüfen muss. Danach setzt man die eben unten an und überprüft alle Linien, die in diesem Höhenbereich sind. Die schnittpunke sollten relativ leicht zu errechnen sein. Was haltet Ihr von diesem Grundkonzept? eventuell Verbesserungsvorschläge? Ciao FLO Was haltet ihr von diesem Grund |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hiermit kann man ein solides 3D Objekt z.B. mit nem flachen Cube
in Scheiben schneiden , das dann wieder Orthogonal rendern und das Bild speichern . http://www.blitzbasic.com/code...p?code=560 http://home.kamp.net/home/r155...2003_1.jpg |
||
blink-182 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gute Nachrichten! Nach längerer Suche habe ich nun ein Format gefunden, dass sich für meine Zwecke perfekt eignet! Das 3D Modell wird in Layern, also Schichten gespeichert, von denen die Dicke bekannt ist. außerdem ist für jede Schicht eine Kontur angegeben. Also DAS Format für meine Zwecke. Jetzt brauche ich nur noch ein Programm finden, mit dem ich in dieses Format extrahieren kann und schon wäre mir sehr viel Erbeit erspart. Achja.. Ihr wollt bestimmt wissen, wie es heißt ![]() .SLC Ciao FLO |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group