disp_object_model_3d
— Ausgeben von 3D Objektmodellen.
disp_object_model_3d( : : WindowHandle, ObjectModel3D, CamParam, Pose, GenParamName, GenParamValue : )
disp_object_model_3d
zeigt die 3D Objektmodelle
ObjectModel3D
im Fenster WindowHandle
an.
Die Szene wird über die Kameraparameter CamParam
und die
Posen (in Pose
) der 3D Objektmodelle definiert.
Wird ein leeres Tupel für CamParam
übergeben, verwendet
disp_object_model_3d
Default-Kameraparameter, die auf der
Fenstergröße beruhen.
Pose
kann entweder eine Pose enthalten, die für alle 3D
Objektmodelle gilt, oder eine individuelle Pose für jedes 3D Objektmodell.
Wird ein leeres Tupel für Pose
übergeben, schätzt
disp_object_model_3d
diese Parameter so, dass
alle Objekte sichtbar sind.
Die Posen werden in der Form ,
erwartet. Dabei steht
ccs für das Kamerakoordinaten und
mcs für das Modellkoordinatensystem (ein 3D Weltkoordinatensystem),
siehe auch Transformationen / Posen und
„Solution Guide III-C - 3D Vision“
.
3D Objektmodelle, die Dreiecke oder Polygone beinhalten, werden als
geschlossene Körper dargestellt. 3D Objektmodelle, die nur Koordinaten
enthalten, werden dagegen als Punktwolken visualisiert. 3D-Primitive
(wie sie zum Beispiel von fit_primitives_object_model_3d
erzeugt
werden), werden auch als geschlossene Körper dargestellt. Mit dem
generischen Parameter 'attribute' kann explizit die Art der
Darstellung ausgewählt werden.
Um 3D Objektmodelle in ein Bild zu rendern, kann der Operator
render_object_model_3d
benutzt werden.
Mit GenParamName
und GenParamValue
können weitere
Eigenschaften der Szene konfiguriert werden. Die folgenden Werte
beeinflussen die gesamte Szene:
Flag, ob der gegenwärtige Fensterinhalt als Hintergrund verwendet werden soll.
Werte: 'true' oder 'false'
Defaultwert: 'false'
Position der Lichtquelle. Dieser Parameter muss als String mit vier Fließkommawerten (getrennt durch Leerzeichen) übergeben werden. Ist der vierte Wert 0.0, wird eine gerichtete Lichtquelle verwendet, wobei die ersten drei Werte die Richtung bestimmen. Ansonsten wird eine Punktlichtquelle verwendet, deren Position durch die ersten drei Werte bestimmt ist.
Defaultwert: '-100.0 -100.0 0.0 1.0'
Ambienter Anteil der Lichtquelle. Dieser Parameter muss als String mit drei Fließkommawerten (getrennt durch Leerzeichen) übergeben werden.
Defaultwert: '0.2 0.2 0.2'
Diffuser Anteil der Lichtquelle. Dieser Parameter muss als String mit drei Fließkommawerten (getrennt durch Leerzeichen) übergeben werden.
Defaultwert: '0.8 0.8 0.8'
Darstellung von 3D Objektmodellen mit unterschiedlichen Farben. Der Wert dieses Parameters bestimmt die Anzahl der verwendeten Farben.
Werte: 3, 6 oder 12
Defaultwert: alle 3D Objektmodelle werden weiß dargestellt
Muss auf 'true' gesetzt werden, wenn der Objektindex
mit get_disp_object_model_3d_info
abgefragt werden
soll.
Werte: 'true' oder 'false'
Defaultwert: 'false'
Muss auf 'true' gesetzt werden, wenn die Tiefe mit
get_disp_object_model_3d_info
abgefragt werden
soll.
Werte: 'true' oder 'false'
Defaultwert: 'false'
Kann auf 'low' gesetzt werden um schnelleres Rendering ohne Antialiasing zu erzielen.
Werte: 'low' oder 'high'
Defaultwert: 'high'
Die folgenden Parameter können entweder für alle 3D Objektmodelle der Szene oder für ein einzelnes 3D Objektmodell gesetzt werden (indem der Index des 3D Objektmodells an den Parameternamen angehängt wird, z.B. 'color_0' ).
Wählt explizit die Art und Weise aus, wie ein 3D Objektmodell visualisiert wird.
Werte: 'auto', 'faces', 'primitive', 'points', 'lines'
Defaultwert: 'auto'
Farbe des 3D Objektmodells. Die verfügbaren Farben können mit dem
Operator query_color
erfragt werden.
Darüberhinaus kann die Farbe auch über ein RGB-Tripel in der Form
'#rrggbb' gesetzt werden, wobei 'rr', 'gg' und 'bb'
jeweils hexadezimale Zahlen zwischen '00' und 'ff' sind.
Werte: 'red', 'green', ...
Defaultwert: 'white'
Transluzenz des 3D Objektmodells. Das Darstellen von 3D Objektmodellen mit Transluzenz kleiner 1.0 kann zu signifikant höherer Laufzeit führen.
Werte: Fließkommawerte zwischen 0.0 (transparent) und 1.0 (opak).
Defaultwert: 1.0
Flag, ob die Pose des 3D Objektmodells visualisiert werden soll.
Werte: 'true' oder 'false'
Defaultwert: 'false'
Flag, ob die Konturen der Polygone des 3D Objektmodells angezeigt werden sollen.
Werte: 'true' oder 'false'
Defaultwert: 'false'
Flag, ob die Oberflächennormalen der Polygone des 3D Objektmodells angezeigt werden sollen.
Werte: 'true' oder 'false'
Defaultwert: 'false'
Farbe der Konturen, falls 'disp_lines' auf 'true'
gesetzt ist. Die verfügbaren Farben können mit dem Operator
query_color
erfragt werden.
Darüberhinaus kann die Farbe auch über ein RGB-Tripel in der Form
'#rrggbb' gesetzt werden, wobei 'rr', 'gg' und 'bb'
jeweils hexadezimale Zahlen zwischen '00' und 'ff' sind.
Werte: 'red', 'green', ...
Defaultwert: Der Wert von 'color'
Setzt die Breite von Linien in Pixel.
Defaultwert: 1.0
Farbe der Oberflächennormalen, falls 'disp_normals' auf
'true' gesetzt ist. Die verfügbaren Farben können mit dem
Operator query_color
erfragt werden.
Darüberhinaus kann die Farbe auch über ein RGB-Tripel in der Form
'#rrggbb' gesetzt werden, wobei 'rr', 'gg' und 'bb'
jeweils hexadezimale Zahlen zwischen '00' und 'ff' sind.
Werte: 'red', 'green', ...
Defaultwert: Der Wert von 'color'
Setzt den Durchmesser der Punkte.
Defaultwert: 3.5
Setzt die LUT, die die Werte des mit 'color_attrib'
gesetzten Attributes in Farben umwandelt.
In der Dokumentation von set_lut
befindet sich eine Liste
der verfügbaren LUTs. Ist 'lut' auf etwas anderes
als 'default' gesetzt, wird 'color' ignoriert.
Defaultwert: 'default'
Name eines Punktattributes, das für die Falschfarbendarstellung verwendet wird.
Falls ein Attribut gesetzt ist, wird die Farbe eines dargestellten 3D-Punktes durch den Attributwert des Punktes und die aktuell gesetzte LUT bestimmt (siehe 'lut' ). Auf diese Weise ist es möglich, Attribute in Falschfarben darzustellen.
Beispiel: Wenn 'color_attrib' auf 'coord_z' und 'lut' auf 'color1' gesetzt ist, werden die Z-Koordinaten von rot nach blau farbkodiert.
Falls 'lut' auf 'default' gesetzt ist, werden die Attributwerte verwendet, um die mit 'color' gesetzte Farbe zu skalieren.
Falls 'lut' auf etwas anderes gesetzt, werden die Attributwerte intern auf den Bereich [0,255] skaliert und als Eingabe für die LUT-Funktion verwendet.
Die Abbildung wird außerdem von den Parametern 'color_attrib_start' und 'color_attrib_end' bestimmt (siehe unten).
Falls Flächen dargestellt werden, wird ihre Farbe zwischen den Eckpunktfarben interpoliert.
Werte: 'none', '&distance', 'coord_x', 'coord_y', 'coord_z', user defined point attributes, or any other point attribute available.
Defaultwert: 'none'
Der maßgebliche Wertebereich für das mit 'color_attrib' eingestellte Attribut.
Die Attributwerte zwischen 'color_attrib_start' und 'color_attrib_end' werden auf den Anfang und das Ende der ausgewählten LUT skaliert. Attributwerte außerhalb des Bereiches werden beschnitten. Damit ist es möglich, einen festen Farbbereich darzustellen, der nicht durch Ausreißer verzerrt wird.
Bei 'auto' wird der kleinste Attributwert auf den Anfang der LUT abgebildet, der größte Wert auf das Ende, es sei denn, 'color_attrib' ist 'normal_x' , 'normal_y' oder 'normal_z' . In diesem Fall, werden Start und Ende automatisch auf -1 und 1 gesetzt.
Der Startwert kann höher als der Endwert sein. In dem Fall wird die LUT umgedreht.
Werte: 0, 0.1, 1, 100, 255, ...
Defaultwerte: 'auto'
Name eines Punktattributes, das für den Rot-, Grün-, oder Blaukanal verwendet wird.
Das ist besonders nützlich, wenn drei zusammengehörige Attribute verwendet werden, z.B. RGB-Farben oder Normalenvektoren. Auf diese Weise können Punkte mit farbigen Texturen, z.B. RGB-Sensor-Daten, dargestellt oder Punktnormalen in Falschfarben kodiert werden.
Um ein einzelnes Attribut in Falschfarben darzustellen, verwenden Sie bitte 'color_attrib' (siehe oben).
Per Default wird angenommen, dass die Attributwerte zwischen 0 und 255 liegen. Falls die Attribute andere Wertebereiche haben, müssen zusätzlich die Parameter 'rgb_channel_attrib_start' und 'rgb_channel_attrib_end' gesetzt werden (siehe unten).
Falls nur 1 oder 2 Kanäle gesetzt sind, verwenden die übrigen Kanäle den RGB-Wert der mit 'color' eingestellten Farbe.
Falls Flächen dargestellt werden, wird ihre Farbe zwischen den Eckpunktfarben interpoliert.
Werte: 'none', '&red','&green','&blue', 'normal_x', 'normal_y', 'normal_z', user defined point attributes, or any other point attribute available.
Defaultwerte: 'none'
Der maßgebliche Wertebereich für die mit 'red_channel_attrib' , 'green_channel_attrib' und 'blue_channel_attrib' eingestellten Attribute.
Diese Parameter definieren den Wertebereich, der auf die gesamten RGB-Kanäle skaliert wird. Das ist nützlich, wenn die Werte der Eingabeattribute nicht im Intervall [0,255] liegen.
Bei 'auto' wird der kleinste Attributwert auf 0 abgebildet, der größte Wert auf 255, es sei denn, das Attribut ist 'normal_x' , 'normal_y' oder 'normal_z' . In diesem Fall, werden Start und Ende automatisch auf -1 und 1 gesetzt.
Der Startwert kann höher als der Endwert sein. In dem Fall werden die RGB-Farben invertiert.
Der Bereich kann für jeden Kanal einzeln eingestellt werden, indem im Parameternamen das 'rgb' durch den jeweiligen Kanal ersetzt wird, z.B. 'green_channel_attrib_start' .
Werte: 'auto', 0, 0.1, 1, 100, 255, ...
Defaultwerte: 0, 255
Alle generischen Parameter werden von links nach rechts ausgewertet.
Um beispielsweise die Farbe des ersten Objekts auf rot und die Farbe aller
anderen Objekte auf grün zu setzen, muss GenParamName
auf
['color','color_0'] und GenParamValue
auf
['green','red'] gesetzt werden.
disp_object_model_3d
benötigt OpenGL 2.1, GLSL 1.2 und die OpenGL
Extensions GL_EXT_framebuffer_object und GL_EXT_framebuffer_blit.
Andernfalls wird automatisch der Kompatibilitätsmodus mit geringeren
Anforderungen an OpenGL benutzt.
Bei Grafikkarten mit geringem Speicher können bei großer Auflösung des Renderfensters folgende Fehlermeldungen auftreten:
Low-Level Fehler: 'Incomplete attachment'
Unbehandelte Ausnahme: 'Benötigtes Framebuffer Objekt wird nicht unterstützt'
Lösungen:
Um die Anforderungen an den Speicher der Grafikkarte zu verringern, kann der Parameter 'quality' auf 'low' gesetzt oder der Kompatibilitätsmodus verwendet werden.
Die Systemvariable (siehe set_system
)
'opengl_compatibility_mode_enable' kann auf 'true' gesetzt
werden, um den Kompatibilitätsmodus permanent einzuschalten.
Dieser Modus benötigt OpenGL 1.1.
Im Kompabilitätsmodus werden die Parameter 'object_index_persistence' , 'depth_persistence' und 'quality' nicht unterstützt.
Auf Linux Remote-Desktop wird 'disp_background' nicht unterstützt.
Kameras mit hyperzentrischen Objektiven werden nicht unterstützt.
WindowHandle
(input_control) window →
(handle)
Fensteridentifikator.
ObjectModel3D
(input_control) object_model_3d(-array) →
(handle)
Handle der 3D Objektmodelle.
CamParam
(input_control) campar →
(real / integer / string)
Kameraparameter.
Defaultwert: []
Pose
(input_control) pose(-array) →
(real / integer)
3D Posen der Objekte im Kamerakoordinatensystem.
Defaultwert: []
GenParamName
(input_control) string-array →
(string)
Namen der generischen Parameter.
Defaultwert: []
Werteliste: 'alpha' , 'attribute' , 'blue_channel_attrib' , 'color' , 'color_attrib' , 'color_attrib_end' , 'color_attrib_start' , 'colored' , 'compatibility_mode_enable' , 'depth_persistence' , 'disp_background' , 'disp_lines' , 'disp_normals' , 'disp_pose' , 'green_channel_attrib' , 'light_ambient' , 'light_diffuse' , 'light_position' , 'line_color' , 'line_width' , 'lut' , 'normal_color' , 'object_index_persistence' , 'point_size' , 'quality' , 'red_channel_attrib' , 'rgb_channel_attrib_end' , 'rgb_channel_attrib_start'
GenParamValue
(input_control) string-array →
(string / integer / real)
Werte der generischen Parameter.
Defaultwert: []
Werteliste: 'auto' , 'blue' , 'coord_x' , 'coord_y' , 'coord_z' , 'faces' , 'false' , 'green' , 'lines' , 'normal_x' , 'normal_y' , 'normal_z' , 'points' , 'primitive' , 'red' , 'true'
disp_object_model_3d
liefert den Wert 2 (H_MSG_TRUE), falls die
Parameter korrekt sind. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Sollte das Rendering den verfügbaren Speicher der Grafikkarte überschreiten,
wird die Fehlermeldung 5188 zurückgegeben.
find_surface_model
,
fit_primitives_object_model_3d
,
read_object_model_3d
,
segment_object_model_3d
render_object_model_3d
,
project_object_model_3d
,
project_shape_model_3d
,
object_model_3d_to_xyz
3D Metrology