Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 15:52

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Aug 01, 2006 09:31 
Offline
DGL Member

Registriert: Di Jun 22, 2004 12:13
Beiträge: 46
Das ist noch die einfache Frage, aber das Problem hier ist komplizierter, vielleicht hat ja doch jemand eine Idee.

Was sind die Eingangsdaten meiner Software? Es sind 3D Bilder von einer speziellen Kamera. Es gibt 64x16 Pixel, jeder Pixel hat einen z-Wert. Ich möchte innerhalb meiner Software und zur Laufzeit daraus ein Mesh bilden, aber ich filtere mehrere Objekte aus dem Bild heraus, so dass ich am Ende mehrere Objekte habe. Jedes Objekt soll die Vertices und Faces speichern.

Und da liegt nun das Problem. In welcher Reihenfolge müssen die Vertices darein, damit es später ohne Probleme gezeichnet werden kann? Oben links im Bild kann ich nicht anfangen zu suchen, wenn grosse Lücken im Objekt sind, versucht er später diese Lücken zu schliessen, weil das Dreieck nicht komplett ist und er sich den nächsten freien Vertex aussucht.

Ich hoffe, das Problem ist irgendwie klar geworden. Zur Zeit sehe ich keine Idee, wie ich alle Objekte sauber in der richtigen Reihenfolge zeichnen kann. Ich meine, statische Normale Objekte fangen ja auch irgendwo mit einem Face-Index 0 an und hangeln sich durch ein kompliziertes Objekt zum letzten Face.

Beispiel: Wie macht man das bei einer 3D Person? Fängt man unten bei den Beinen an, arbeitet sich hoch und wo und wie entscheidet man dann, welcher Arm zuerst abgehandelt wird? Da muss es doch Algorithmen für geben oder? Andere Software, die Objekte in Vertex- und Facelisten unterteilt, kann das ja auch.

Vielen Dank für Eure Ideen!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 01, 2006 10:44 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
die kamera ist ein 3d scanner ? ich habs sowas mal an der fachhochschule gesehen, da wurde ein gitter projeziert und einzelne punkte von allen seiten entnommen, ich denke mal bei dir ist das das gleiche nur von einer seite oder ?

das programm hat zuerst eine punktwolke erstellt und diese dann zu polygonen weiterverarbeitet. wie du jetzt objekte von einander separieren kannst, weiß ich auch net Oo bin in sachen 3d net so erfahren, hört sich auf jedenfall interessant an, vielleicht kannst ja mal n screen posten wenns was zu sehen gibt ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 01, 2006 11:34 
Offline
DGL Member

Registriert: Di Jun 22, 2004 12:13
Beiträge: 46
Nein, kein 3D Scanner, sondern eine PMD-Kamera. Liefert ein 2D Bild mit z-Werten. Die Objektseparierung ist schon fertig, ich muss nur noch sehen, wie ich eine Menge an Punkten pro Objekt in eine sinnvolle Reihenfolge bekomme.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 01, 2006 13:48 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
du machst dir ein raster und nimmst zb jeden 10. punkt und kannst dann die dazwischen liegenden interpolieren oder direkt polygone aufspannen, da gabs irgendwo nen algo zu ....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 01, 2006 13:59 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 29, 2006 21:13
Beiträge: 142
Wohnort: Ballenstedt/Sachsen-Anhalt
Zum Anfang ist sicherlich eine Punktwolke ganz gut, wird bei medizinischen Sachen (MRT-Scans) auch nicht anders gemacht.

Brauchst du unbedingt Faces?

_________________
Gott sei Dank bin ich Atheist!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 01, 2006 14:50 
Offline
DGL Member

Registriert: Di Jun 22, 2004 12:13
Beiträge: 46
Ich brauche Faces für die Normalenberechnung. Ein Mesh (aber nur eines, wenn ich alles als ein Objekt ansehe) kann ich ja zeichnen, aber ich muss eine Lichtquelle haben, um die Tiefe sehen zu können (einfarbiges Mesh), und dazu muss ich Normalen berechnen, und dazu muss ich Faces haben. Das Problem ist wie gesagt nur, wenn ich versuche, mehrere Objekte aus den 1024 Punkten zu erstellen. Ich verteile quasi 1024 Punkte auf 2 oder 3 Objekte, bloss in welcher Reihenfolge, das ist die Frage...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 01, 2006 17:00 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo JPSelter,

wie genau unterscheidest du eigentlich deine 'Objekte'?
Vergleichst du benachbarte z-Werte oder wie soll man sich das vorstellen?

Ich habe bisher leider noch nichts von PMD-Kameras gehört, finde das Thema aber ziemlich interessant :)

Viele Grüße
dj3hut1


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 01, 2006 17:19 
Offline
DGL Member

Registriert: Di Jun 22, 2004 12:13
Beiträge: 46
Ich teile die z-Achse in Blöcke auf, ist variable und kann während der Laufzeit verfeinert werden. Wenn in einem Block eine bestimmte Anzahl Pixel enthalten sind, ist das ein Anzeichen für ein Objekt. Funktioniert aber nur mit Objekten, deren Oberfläche senkrecht zur Blickrichtung stehen. Na mal sehen, was ich nun mache. Ist nur eine 4-monatige Diplomarbeit und in 20 Tagen will ich abgeben und muss noch das Dok schreiben. Wahrscheinlich belasse ich die Objekttrennung bei der Würfelansicht (jeder Pixel ist ein Würfel im 3D-Raum) und mache in der Meshansicht EIN Objekt draus. Die Zeit fehlt einfach und gefordert war diese Funktion ohnehin nicht.

Infos zur PMD-Technik: http://www.pmdtec.com/inhalt/download/d ... rt2004.pdf


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 02, 2006 10:47 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du könntest ja bei der Objekttrennung sowas wie Quadtrees benutzen. Und dann die Sektoren versuchen zu verbinden, wenn sie benachbart sind.


Also so als grobe idee:

- Du versuchst BoundingBoxes um die Punkte im Raum zu legen. Wenn die Bounding boxes/Spehres/whatever sehr nah aneinander liegen -> 1 Objekt.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 02, 2006 13:02 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
Die Punkte liegen in form eines Raster vor, lege erst einmal ein normales Trianglemesh düber. Die Normalen lasen sich auch mit hilfe der nachbarpunke berechnen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 02, 2006 15:55 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ein Suchbegriff für dich wäre glaub ich "Objektrekonstruktion".

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 14 Queries | GZIP : On ]