Ja, das ist echt faszinierend.
Aber es funktioniert ja auch nicht bei ALLEN Objekten.
Wenn man z.B. Fotos von Objekten hat, die von allen Seiten gleich oder sehr ähnlich aussehen (z.B. eine Orange), dann tut sich auch die Software schwer. Da muss man dann mit Markern arbeiten, oder zumindest sollten auf dem Tisch, auf dem die Orange liegt, auch noch andere Objekte liegen, die eindeutig erkannt werden können.

Soviel ich weiß, analysiert die Software zunächst nur ein paar wenige markante Punkte auf den Fotos, und richtet dann für jedes Foto die "virtuelle Kamera" entsprechend aus. Dabei verwendet sie, wenn vorhanden, auch die Exif-Daten aus den Fotos (Objektiv Brennweite), um die virtuellen Kamera so exakt wie möglich an die tatsächliche Kameraposition zu positionieren, aus der das Foto geschossen wurde.

Und dann wird eine "Punktwolke" erzeugt. Wie das gemacht wird, ist mir ein Rätsel. Ich könnte mir vorstellen, dass es so ähnlich wie Raytracing funktioniert. Aus Sicht jeder virtuellen Kamera wird dann sozusagen für jedes Pixel vom Foto ein Lichtstrahl losgeschickt, und wenn die Lichtstrahlen von den verschiedenen Kameras zusammentreffen, dann ist das die Position, an der sich dieser Pixel im Raum (in der Punktwolke) befinden müsste.
Aber das ist nur eine Vermutung von mir, und es ist sicher viel viel komplizierter. wink

Bei der Textur machen es sich die meisten 3D-Scanner recht einfach. Da wird zunächst kein aufwändiges UV-Mapping gemacht, sondern es wird mit Vertex-Colors gearbeitet. Da das Mesh ja sehr sehr viele Vertices hat, reicht es aus, wenn je Vertex die Farbe gespeichert wird. Erst beim nachträglichen Optimieren vom Mesh wird dann daraus eine Textur generiert.