2016-03-23 4 views
1

In meinen (begrenzten) Erfahrungen auf 3D-Programmierung, in der Regel erstellen wir ein 3D-Modell mit Materialien und Textur, dann richten Sie das Licht und die Kamera. Endlich können wir eine 2D-Ansicht durch die Kamera bekommen.Erhalten Textur von Bildern durch 3D-Projektion

Aber ich muss dieses Verfahren umkehren: Bei einem 2D-Ansichtsbild, einem Kamera-Setup und einem 3D-Modell ohne Textur wollte ich die Textur für das Modell so finden, dass es dieselbe 2D-Ansicht ergibt. Um zu vereinfachen, ignorieren wir das Licht und die Materialien, vorausgesetzt, sie sind gleichmäßig.

Obwohl nicht einfach, ich denke, ich kann ein Programm schreiben, um dies zu tun. Aber gibt es irgendwelche Räder da draußen, also muss ich es nicht neu erfinden? (C#, WPF 3D oder openCV)

Antwort

1

Helix3dToolkit für WPF hat ein interessantes Beispiel namens "ContourDemo". Wenn Sie die gesamte Quelle herunterladen, erhalten Sie eine sehr umfassende Beispiel-App, die ihre Fähigkeiten zeigt.

Dieses spezielle Beispiel verwendet eine Reihe von Hilfsmethoden, um ein Konturnetz aus einer gegebenen 3D-Modelldatei zu generieren (.3ds, .obj, .stl).

enter image description here Mit einigen erweitern könnte dies die Grundlage für die umgekehrte Berechnung der uv-Mapping, möglicherweise sein.

Auch wenn es nichts Passendes gibt, um die Kernanforderung (Extrahieren der Textur) zu erfüllen, ist es ein großartiges Toolkit zum Anzeigen Ihrer Originaldateien und aller von Ihnen generierten Ausgaben.