Per Voreinstellung werden neue 3D-Objekte mit einer durchgehenden einfarbigen Oberfläche dargestellt. Um die Darstellung zu ändern, müssen Sie eine Textur für das 3D-Objekt festlegen. Eine Textur ist eine 2D-Grafik, mit der das 3D-Objekt umhüllt wird.

Objekte

Die Oberfläche eines 3D-Objekts kann mit folgenden Blockdiagrammobjekten geändert werden:

Vorgehensweise

Die Darstellung eines 3D-Objekts kann programmatisch mithilfe des folgenden Blockdiagramms geändert werden. Die grauen Bereiche können je nach Zweck der Anwendung variabel gestaltet werden.



Nachfolgend werden wichtige Einzelheiten zum dargestellten Blockdiagramm erläutert:

Ermitteln Sie eine Referenz auf das 3D-Objekt, dessen Darstellung Sie ändern möchten. Je nach Zweck der Programmierung kann die Referenz unterschiedlich bezogen werden. Die gängigste Methode zum Beziehen einer Referenz auf ein 3D-Objekt besteht darin, ein neues 3D-Objekt zu erstellen. In diesem Beispiel wird die Referenz auf das 3D-Objekt durch Erstellen eines neuen 3D-Würfels erzeugt.
Mit der Eigenschaft "Extras:Textur" können Sie ein 3D-Objekt mit einer Textur versehen. Wenn die Eigenschaft "Extras:Textur" nicht auf On eingestellt ist, kann keine Textur auf das 3D-Objekt übertragen werden. Wenn das Objekt, auf das die Oberflächentextur angewendet werden soll, ein Unterobjekt eines anderen Objekts ist, können Sie die Eigenschaft "Extras:Textur" auf Inherit Value setzen, um die Einstellungen zur Textur vom Elternobjekt zu übernehmen.
Stellen Sie die LabVIEW-Bilddaten für die Textur bereit. Gehen Sie dazu nach einer der folgenden Methoden vor:
  • Wandeln Sie ein Standardbildformat wie JPG in LabVIEW-Bilddaten um, indem Sie von der Palette Grafikformate das entsprechende Lese-VI auswählen.
  • Verwenden Sie eine Eigenschaft oder Methode für 3D-Bildelemente, um die Bilddaten aus einem bestehenden 3D-Objekt zu extrahieren.
  • Erstellen Sie selbst eine Grafik, indem Sie einen Bild-Cluster verwenden.
In diesem Beispiel wird mit Hilfe des VIs "JPEG-Datei lesen" eine JPG-Datei in LabVIEW-Bilddaten umgewandelt.
Das VI "Textur" wandelt die LabVIEW-Bilddaten in eine Szenentexturreferenz um. Sie müssen Bilddaten in eine Szenentexturreferenz umwandeln, so dass Sie mittels der Eigenschaften und Methoden für Szenentexturen die Darstellung der Textur für ein 3D-Objekt festlegen können.
Die Eigenschaft "Übertragungsmodus" gibt das Aussehen der Textur eines 3D-Objekts an. Wenn Sie keinen Übertragsmodus für die Textur auswählen, werden die Bilddaten der Textur mit der Hintergrundfarbe des Objekts gemischt. Wenn die Textur die Farben der Original-2D-Grafik beibehalten soll, setzen Sie den Übertragungsmodus auf As a Decal oder As a replacement. In diesem Beispiel wird mit der Eigenschaft "Übertragungsmodus" festgelegt, dass die Textur mit ihren Originalfarben wie ein Abziehbild über das Objekt gelegt werden soll.
Mit der Methode "Textur:Textur festlegen" wird einem durch eine Referenz angegebenen 3D-Objekt eine Textur verliehen.
Verwenden Sie die Szenenobjektreferenz, um das neue 3D-Objekt darzustellen oder zu bearbeiten. Diese Referenz ist für folgende Zwecke geeignet:
  • Zur Anzeige eines 3D-Objekts—Erstellen Sie auf dem Frontpanel ein 3D-Bildelement und verbinden Sie die Referenz des Elements mit dem entsprechenden Blockdiagrammobjekt.
  • Zum Festlegen von Größe und Position des 3D-Objekts—Verbinden Sie die Referenz mit einem Tansformations-VI.
  • Zum Hinzufügen des Objekts zu einer Szene mit mehreren 3D-Objekten—Verwenden Sie die Referenz zum Erstellen einer Szene mit mehreren 3D-Objekten.
  • Zur Interaktion mit anderen Attributen des 3D-Objekts—Verbinden Sie die Referenz mit einer Eigenschaft oder Methode für Szenenobjekte. Diese Eigenschaften und Methoden bestimmen die Attribute und Eigenschaften des 3D-Objekts, wie beispielsweise Farbe, Lichtquelle oder Textur.
Im vorliegenden Beispiel wird das texturierte 3D-Objekt in einem 3D-Bildelement dargestellt.

Tipps und Fehlerdiagnose

  • Sie können auch komplexere Texturen erstellen. Mit den Szenentextureigenschaften der Szenentexturreferenz können Sie andere Textureigenschaften festlegen, z. B. den Filtermodus, den Hüllmodus (horizontal oder vertikal) sowie auf die Textur anzuwendende Transformationen.
  • Wird die Textur unerwarteterweise für mehrere 3D-Objekte in der Szene angezeigt? Möglicherweise haben Sie die Textur auf das übergeordnete Objekt in einer Hierarchie von 3D-Objekten angewendet. Änderungen an einem übergeordneten 3D-Objekt werden auf alle Unterobjekte übertragen. Zum Beheben des Problems muss für die Textur die Referenz des Unterobjekts statt des übergeordneten Objekts verwendet werden.
  • Wird die Textur überhaupt nicht angezeigt? Die Eigenschaft „Extras:Textur“ muss auf Ein gesetzt werden, indem Sie entweder die Eigenschaft direkt auf Ein setzen oder indem der Wert Ein vom übergeordneten Objekt abgeleitet wird. Prüfen Sie, ob Sie die Eigenschaft "Extras.Textur" auf den richtigen Wert eingestellt haben.
  • Wird das 3D-Bildelement als Referenz auf dem Frontpanel angezeigt? Sie müssen das 3D-Bildelement vom Frontpanel aus erstellen, nicht von einem Anschluss auf dem Blockdiagramm aus. Nach dem Erstellen des 3D-Bildelements auf dem Frontpanel müssen Sie das dazugehörige Blockdiagrammobjekt mit einer Szenenobjektreferenz verbinden, so dass das referenzierte Objekt angezeigt wird.
  • Sie können nicht mit dem 3D-Bildelement auf dem Frontpanel interagieren? Sie müssen eine Kamera konfigurieren, um eine 3D-Szene aus verschiedenen Perspektiven zu sehen.
  • Verbinden Sie alle Anschlüsse des Typs "Fehler (Eingang)" und "Fehler (Ausgang)". In dem hier aufgeführten Beispiel wird die Fehlerbehandlung zur Veranschaulichung der Programmierlogik weggelassen, aber normalerweise sollten die Möglichkeiten zur Fehlerbehandlung ausgeschöpft werden, da sie für die Fehlerdiagnose und die Steuerung des Datenflusses von Bedeutung ist.

Beispiele

Ein Beispiel für eine 3D-Szene, die Objekte mit Texturen enthält, finden Sie im VI "3D Model of Solar System.vi" im Verzeichnis labview\examples\Graphics and Sound\3D Picture Control.

Ähnliche Themen