run_scene_engineT_run_scene_engineRunSceneEngineRunSceneEnginerun_scene_engine (Operator)

Name

run_scene_engineT_run_scene_engineRunSceneEngineRunSceneEnginerun_scene_engine — Generieren synthetischer Daten mittels Scene Engine.

Signatur

run_scene_engine( : : SceneEngine, GenerationParams : GeneratedData)

Herror T_run_scene_engine(const Htuple SceneEngine, const Htuple GenerationParams, Htuple* GeneratedData)

void RunSceneEngine(const HTuple& SceneEngine, const HTuple& GenerationParams, HTuple* GeneratedData)

static HDict HDeepMatching3D::RunSceneEngine(const HSceneEngine& SceneEngine, const HDict& GenerationParams)

static void HOperatorSet.RunSceneEngine(HTuple sceneEngine, HTuple generationParams, out HTuple generatedData)

static HDict HDeepMatching3D.RunSceneEngine(HSceneEngine sceneEngine, HDict generationParams)

def run_scene_engine(scene_engine: HHandle, generation_params: HHandle) -> HHandle

Beschreibung

Der Operator run_scene_enginerun_scene_engineRunSceneEngineRunSceneEnginerun_scene_engine generiert synthetische Daten mittels der laufenden SceneEngineSceneEngineSceneEnginesceneEnginescene_engine, welche zuvor mit open_scene_engineopen_scene_engineOpenSceneEngineOpenSceneEngineopen_scene_engine gestartet wurde. Die Datengenerierung wird über das Dictionary GenerationParamsGenerationParamsGenerationParamsgenerationParamsgeneration_params gesteuert, die generierten Daten werden in GeneratedDataGeneratedDataGeneratedDatageneratedDatagenerated_data zurückgegeben.

Der Operatoraufruf ist erst beendet, wenn die Scene Engine die Generierung abgeschlossen hat.

Es wird empfohlen, das Dictionary mit den Parametern zur Datengenerierung mithilfe der Prozeduren create_scene_engine_run_params und set_scene_engine_run_param zu erstellen. Diese bieten eine benutzerfreundliche Möglichkeit, die verschiedenen Einstellungen für die meisten Anwendungsfälle zu verwalten.

Schritte der Datengenerierung

Die Datengenerierung wird in fünf Schritten durchgeführt:

  1. Physiksimulation: In diesem Schritt werden die Positionen (Posen) der verschiedenen Objekte erzeugt, indem diese mittels einer Physiksimulation fallen gelassen werden. Die Objekte werden entweder auf eine Ebene oder in eine Box fallen gelassen.

    Das Parameter-Dictionary kann verwendet werden, um die Anzahl der in die Szene fallengelassenen Instanzen festzulegen sowie zusätzliche „Störobjekte“ einzufügen.

  2. Material- und Assetverwaltung: In diesem Schritt werden die Oberflächeneigenschaften der Objekte festgelegt. Für jedes Objekt, inklusive der Grundebene und der Box, kann dies entweder eine einheitliche Einstellung über die gesamte Objektoberfläche sein oder Textur- und Materialkarten, die die Oberflächeneigenschaften punktweise festlegen.

  3. Kameraplatzierung: In diesem Schritt werden die virtuellen Kameras derart in der Szene platziert, dass sie zumindest teilweise die Zielobjekte sehen.

    Die Parameter ermöglichen die Festlegung der Anzahl der Kameras, des Abstands der Kameras zum Objekt, der Rotation um die z-Achse, der Kameraneigung (Elevation) sowie der minimalen Objektoberfläche, die sichtbar sein muss.

  4. Meta-Informationen In diesem Schritt werden Meta-Informationen für jede Kameraperspektive berechnet, die später dabei helfen, Ground-Truth-Daten für Deep Learning zu erzeugen.

  5. Rendering: In diesem Schritt werden fotorealistische Bilder der Szene berechnet, wofür die platzierten Objekte und ihre Oberflächeneigenschaften sowie die Kamerapositionen aus den vorherigen Schritten verwendet werden.

Parameter für die Datengenerierung

Die Datengenerierung wird über ein Dictionary gesteuert, welches in GenerationParamsGenerationParamsGenerationParamsgenerationParamsgeneration_params übergeben wird. Wie oben erwähnt wird empfohlen, die Prozeduren zu verwenden, um dieses Dictionary aufzubauen und zu verändern (create_scene_engine_run_params und set_scene_engine_run_param).

Um die Erzeugung von Daten mit hoher Variation zu ermöglichen, erlauben viele Werte zusätzlich die Definition eines Intervalls anstelle eines einzelnen Werts. Die Scene Engine wählt dann bei Bedarf zufällig einen Wert aus diesem Intervall aus. Ein Intervall wird durch ein Tupel aus minimalem und maximalem Wert festgelegt. Für Parameter, die drei Werte erfordern, wie beispielsweise RGB-Werte, kann eine konkrete Konstellation bestehend aus einem Tupel mit drei Werten übergeben werden, oder ein Intervall festgelegt werden, indem ein Tupel mit sechs Einträgen übergeben wird, welches die drei Minimalwerte gefolgt von den drei Maximalwerten enthält.

Zum Beispiel: Wenn cameras.elevation auf 60 gesetzt ist, beträgt die Kameraneigung relativ zur Bodenebene stets 60 Grad. Wenn stattdessen [40,90] angegeben wird, wird für jede Kamera zufällig eine Neigung zwischen 40 und 90 Grad ausgewählt.

Wenn base_color auf [0.2, 0, 0] gesetzt ist, wird Rot auf 0.2 gesetzt, während Grün und Blau den Wert 0 erhalten. Wird hingegen [0.2, 0, 0, 0.5, 0, 0.1] angegeben, so liegt der Rotwert zwischen 0.2 und 0.5, Grün bleibt bei 0.0, und Blau liegt zwischen 0.0 und 0.1.

Im Dictionary GenerationParamsGenerationParamsGenerationParamsgenerationParamsgeneration_params können folgende Werte gesetzt werden:

'cameras'"cameras""cameras""cameras""cameras"

Dieses Dictionary steuert die Platzierung der Kameras in der virtuellen Szene während der 'cameras'"cameras""cameras""cameras""cameras"-Stufe.

'cameras.distance_to_object'"cameras.distance_to_object""cameras.distance_to_object""cameras.distance_to_object""cameras.distance_to_object"

Abstand der virtuellen Kameras zum platzierten Objekt. Beim Platzieren einer Kamera wird eines der Zielobjekte mit dem Typnamen 'part'"part""part""part""part" ausgewählt und im Bildzentrum positioniert. Die Kamera wird anschließend um den angegebenen Abstand von diesem Objekt entfernt positioniert.

Wertevorschläge: Objektdurchmesser * [1,3]

Wertebereich: 0

'cameras.elevation'"cameras.elevation""cameras.elevation""cameras.elevation""cameras.elevation"

Kameraneigung relativ zur Bodenebene in Grad. Eine Neigung von 90 Grad entspricht einem senkrechten Blick von oben auf die Ebene, während 0 Grad einer Kamera entspricht, die flach auf der Ebene liegt.

Wertebereich: [0, 90]

Wertevorschläge: [20, 90]

'cameras.field_of_view_y'"cameras.field_of_view_y""cameras.field_of_view_y""cameras.field_of_view_y""cameras.field_of_view_y"

Vertikaler Sichtwinkel der Kamera in Grad. Kleinere Sichtwinkel simulieren Kameras mit längerer Brennweite.

Wertebereich: [0, 170]

Wertevorschläge: [40, 90]

'cameras.in_plane_rotation'"cameras.in_plane_rotation""cameras.in_plane_rotation""cameras.in_plane_rotation""cameras.in_plane_rotation"

Rotation in Bildebene, d.h. Rotation um die z-Achse der Kamera, in Grad. Um die Rotation zu deaktivieren (also alle Kameras aufrecht auszurichten), sollte dieser Wert auf Null gesetzt werden.

Wertebereich: [-360, 360]

Wertevorschläge: [-180, 180]

'cameras.num_cameras'"cameras.num_cameras""cameras.num_cameras""cameras.num_cameras""cameras.num_cameras"

Anzahl der zu platzierenden Kameras.

Wertebereich: [1, 100]

Default: 15

'cameras.width'"cameras.width""cameras.width""cameras.width""cameras.width", 'cameras.height'"cameras.height""cameras.height""cameras.height""cameras.height"

Die Auflösung der erzeugten Kameras.

Wertebereich: [100, 10000]

Default: 'cameras.width'"cameras.width""cameras.width""cameras.width""cameras.width": 900, 'cameras.height'"cameras.height""cameras.height""cameras.height""cameras.height": 600

'environment_map'"environment_map""environment_map""environment_map""environment_map"

Dieses Dictionary steuert die Environment Map, die in der Szene verwendet wird. Die Environment Map bestimmt sowohl den Hintergrund der Szene als auch die Lichtquellen. Es wird empfohlen, eine Environment Map aus der Asset-Bibliothek zu verwenden, da diese Variationen in Hintergrund und Beleuchtung bieten.

'environment_map.base_color'"environment_map.base_color""environment_map.base_color""environment_map.base_color""environment_map.base_color"

Für 'environment_map.type'"environment_map.type""environment_map.type""environment_map.type""environment_map.type" 'individual'"individual""individual""individual""individual" ist dies die Farbe der Environment Map in normalisierten (RGB)-Werten.

Wertebereich: [0, 1] für jede Komponente

Wertevorschläge: [1, 0, 0]

'environment_map.tags'"environment_map.tags""environment_map.tags""environment_map.tags""environment_map.tags", 'environment_map.categories'"environment_map.categories""environment_map.categories""environment_map.categories""environment_map.categories"

Ein Tupel aus Strings. Für 'environment_map.type'"environment_map.type""environment_map.type""environment_map.type""environment_map.type" 'asset'"asset""asset""asset""asset" können diese Werte verwendet werden, um die Auswahl der verwendeten Assets weiter zu filtern. Eine Liste verfügbarer 'tags'"tags""tags""tags""tags" und 'categories'"categories""categories""categories""categories" kann mit get_scene_engine_paramget_scene_engine_paramGetSceneEngineParamGetSceneEngineParamget_scene_engine_param erstellt werden.

'environment_map.type'"environment_map.type""environment_map.type""environment_map.type""environment_map.type"

Der Typ der Environment Map. Wenn der Wert auf 'asset'"asset""asset""asset""asset" gesetzt ist, wird eine zufällige Environment Map aus der Asset-Bibliothek verwendet. Wenn der Wert auf 'individual'"individual""individual""individual""individual" gesetzt ist, wird eine einfarbige Environment Map verwendet.

Werteliste: 'asset'"asset""asset""asset""asset", 'individual'"individual""individual""individual""individual"

Default: 'asset'"asset""asset""asset""asset".

'objects'"objects""objects""objects""objects"

Dieses Dictionary steuert die Objekttypen und ihre Materialien. Der Wert ist ein Dictionary. Die Schlüssel enthalten die Namen der Objekttypen und sind jeweils einem Dictionary zugeordnet, das die Eigenschaften des Objekttyps beschreibt.

Die möglichen Werte in den Dictionaries werden in einem Abschnitt weiter unten beschrieben.

Einige Objektnamen sind vordefiniert und werden speziell behandelt: 'part'"part""part""part""part" bezieht sich immer auf den „Haupt“-Objekttyp, typischerweise derjenige, für den ein Datensatz erstellt wird. 'box'"box""box""box""box" und 'ground_plane'"ground_plane""ground_plane""ground_plane""ground_plane" steuern die Materialien von Boxen und der Bodenebene, die in der Physikstufe erzeugt werden.

Wertevorschläge: Siehe Abschnitt „Objekteinstellungen“ weiter unten.

'objects.myobject1'"objects.myobject1""objects.myobject1""objects.myobject1""objects.myobject1", 'objects.foobar'"objects.foobar""objects.foobar""objects.foobar""objects.foobar"

Dictionaries mit Informationen über zusätzliche benutzerdefinierte Objekttypen.

'objects.part'"objects.part""objects.part""objects.part""objects.part", 'objects.box'"objects.box""objects.box""objects.box""objects.box", 'objects.ground_plane'"objects.ground_plane""objects.ground_plane""objects.ground_plane""objects.ground_plane"

Dictionary mit Details zum Hauptobjekt ('part'"part""part""part""part"), der Box, in die Objekte fallen ('box'"box""box""box""box"), und der Bodenebene ('ground_plane'"ground_plane""ground_plane""ground_plane""ground_plane").

'physics'"physics""physics""physics""physics"

Dictionary mit Einstellungen für die 'physics'"physics""physics""physics""physics"-Stufe.

'physics.box_probability'"physics.box_probability""physics.box_probability""physics.box_probability""physics.box_probability"

Wahrscheinlichkeit, dass eine Box in der Szene enthalten ist, als Zahl.

Wertebereich: [0, .., 1]

Default: 0.5

'physics.box_width'"physics.box_width""physics.box_width""physics.box_width""physics.box_width", 'physics.box_height'"physics.box_height""physics.box_height""physics.box_height""physics.box_height", 'physics.box_length'"physics.box_length""physics.box_length""physics.box_length""physics.box_length", 'physics.box_wall_width'"physics.box_wall_width""physics.box_wall_width""physics.box_wall_width""physics.box_wall_width"

Wenn eine Box in die Szene eingefügt wird, bestimmen diese Werte deren Größe.

Wertebereich: 0

Wertevorschläge: Objektdurchmesser mal 4, 3, 5 bzw. 0.2

'renderer'"renderer""renderer""renderer""renderer"

Dictionary mit zusätzlichen Parametern für den fotorealistischen Renderer. Derzeit können keine Parameter gesetzt werden.

'scene'"scene""scene""scene""scene"

Anstatt die 'physics'"physics""physics""physics""physics"-Stufe auszuführen, um eine neue Szene zu erstellen, kann eine bestehende Szene in diesem Feld übergeben werden. Dies kann verwendet werden, um eine Szene nach manuellen Anpassungen beispielsweise der Materialien oder Kamerapositionen erneut zu rendern.

Der Wert dieses Feldes ist ein Dictionary und ist üblicherweise das GeneratedDataGeneratedDataGeneratedDatageneratedDatagenerated_data eines vorherigen Laufs von run_scene_enginerun_scene_engineRunSceneEngineRunSceneEnginerun_scene_engine.

Achtung: Wird typischerweise nicht gesetzt, ansonsten GeneratedDataGeneratedDataGeneratedDatageneratedDatagenerated_data eines vorherigen Aufrufs.

'stages'"stages""stages""stages""stages"

Ein Tupel, das die auszuführenden Stufen enthält. Für einen vollständigen Durchlauf sollte dieses Tupel 'physics'"physics""physics""physics""physics", 'materials'"materials""materials""materials""materials", 'cameras'"cameras""cameras""cameras""cameras", 'rendering'"rendering""rendering""rendering""rendering" enthalten.

Stufen können übersprungen werden, wenn eine bestehende Szenenbeschreibung im Feld 'scene'"scene""scene""scene""scene" übergeben wird (siehe oben), oder wenn beispielsweise nur die physikalische Szene, aber keine gerenderten Bilder benötigt werden.

Es ist zu beachten, dass die Metainformationen in der Kamera-Suchstufe ('cameras'"cameras""cameras""cameras""cameras") berechnet werden. Die Stufe 'meta_info'"meta_info""meta_info""meta_info""meta_info" kann also übersprungen werden, wenn die Stufe 'cameras'"cameras""cameras""cameras""cameras" aktiv ist. Wenn jedoch feste Kamerapositionen und -parameter im Feld 'scene'"scene""scene""scene""scene" übergeben werden, kann die Stufe 'meta_info'"meta_info""meta_info""meta_info""meta_info" verwendet werden, um die Metainformationen zu berechnen, ohne die Kamerasuche auszuführen.

Werteliste: 'physics'"physics""physics""physics""physics", 'materials'"materials""materials""materials""materials", 'cameras'"cameras""cameras""cameras""cameras", 'meta_info'"meta_info""meta_info""meta_info""meta_info", 'rendering'"rendering""rendering""rendering""rendering".

Objekteinstellungen

Das Feld 'objects'"objects""objects""objects""objects" im Konfigurations-Dictionary definiert die Details aller Objekte, die in der Szene platziert und gerendert werden sollen, einschließlich des Objekts, der Box, des Hintergrunds und aller benutzerdefinierten Objekte.

'material'"material""material""material""material"

Ein Dictionary, das das Material des Objekts beschreibt.

'material.base_color'"material.base_color""material.base_color""material.base_color""material.base_color"

Die Grundfarbe des Objekts im (RGB)-Format. Diese Einstellung kann für die Materialtypen 'preset'"preset""preset""preset""preset" oder 'individual'"individual""individual""individual""individual" verwendet werden. Für 'preset'"preset""preset""preset""preset" kann damit beispielsweise roter Kunststoff erzeugt werden.

Wertebereich: [0, 1] für jede Komponente

Wertevorschläge: [1, 0, 0]

'material.metallic'"material.metallic""material.metallic""material.metallic""material.metallic", 'material.roughness'"material.roughness""material.roughness""material.roughness""material.roughness", 'material.ior'"material.ior""material.ior""material.ior""material.ior", 'material.transmission'"material.transmission""material.transmission""material.transmission""material.transmission", 'material.diffuse_roughness'"material.diffuse_roughness""material.diffuse_roughness""material.diffuse_roughness""material.diffuse_roughness", 'material.sheen_weight'"material.sheen_weight""material.sheen_weight""material.sheen_weight""material.sheen_weight", 'material.sheen_roughness'"material.sheen_roughness""material.sheen_roughness""material.sheen_roughness""material.sheen_roughness", 'material.sheen_tint'"material.sheen_tint""material.sheen_tint""material.sheen_tint""material.sheen_tint", 'material.coat_weight'"material.coat_weight""material.coat_weight""material.coat_weight""material.coat_weight", 'material.coat_roughness'"material.coat_roughness""material.coat_roughness""material.coat_roughness""material.coat_roughness", 'material.coat_ior'"material.coat_ior""material.coat_ior""material.coat_ior""material.coat_ior", 'material.coat_tint'"material.coat_tint""material.coat_tint""material.coat_tint""material.coat_tint"

Verteilung eines oder dreier Werte (für 'material.sheen_tint'"material.sheen_tint""material.sheen_tint""material.sheen_tint""material.sheen_tint" und 'material.coat_tint'"material.coat_tint""material.coat_tint""material.coat_tint""material.coat_tint"). Für den Typ 'individual'"individual""individual""individual""individual" definieren diese Werte die physikalisch basierten Rendering-Eigenschaften (PBR) des Objekts. Die Parameter werden weiter unten im Abschnitt „Individuelle Materialien“ näher beschrieben.

'material.preset'"material.preset""material.preset""material.preset""material.preset"

Für 'material.type'"material.type""material.type""material.type""material.type" 'preset'"preset""preset""preset""preset" legt dieses Feld den Namen des zu verwendenden Presets fest. Eine Liste der verfügbaren Namen kann über get_scene_engine_paramget_scene_engine_paramGetSceneEngineParamGetSceneEngineParamget_scene_engine_param abgefragt werden.

Werteliste: 'plastic'"plastic""plastic""plastic""plastic", 'plastic_clear'"plastic_clear""plastic_clear""plastic_clear""plastic_clear", 'metal'"metal""metal""metal""metal", 'metal_shiny'"metal_shiny""metal_shiny""metal_shiny""metal_shiny", 'glass'"glass""glass""glass""glass".

'material.tags'"material.tags""material.tags""material.tags""material.tags", 'material.categories'"material.categories""material.categories""material.categories""material.categories"

Ein Tupel aus Strings. Für 'material.type'"material.type""material.type""material.type""material.type" 'asset'"asset""asset""asset""asset" können diese Werte verwendet werden, um die Auswahl der verwendeten Assets weiter zu filtern. Eine Liste verfügbarer 'tags'"tags""tags""tags""tags" und 'categories'"categories""categories""categories""categories" kann mit get_scene_engine_paramget_scene_engine_paramGetSceneEngineParamGetSceneEngineParamget_scene_engine_param erstellt werden.

'material.type'"material.type""material.type""material.type""material.type"

Materialtyp. 'asset'"asset""asset""asset""asset" ist ein Material, das aus der Asset-Bibliothek geladen wird, typischerweise eine physikalisch realistische Textur. 'preset'"preset""preset""preset""preset" ist ein vordefiniertes, einheitliches Material, wie beispielsweise Kunststoff oder Metall, das zusätzlich über eine Farbe angepasst werden kann. 'individual'"individual""individual""individual""individual" ist ein vom Benutzer definiertes, einheitliches Material. Details zu den Parametern der jeweiligen Typen sind in den folgenden Abschnitten beschrieben.

Werteliste: 'asset'"asset""asset""asset""asset", 'preset'"preset""preset""preset""preset", 'individual'"individual""individual""individual""individual".

'material.use'"material.use""material.use""material.use""material.use"

Wenn dieser Wert auf 'fallback'"fallback""fallback""fallback""fallback" gesetzt ist, wird das definierte Material nur angewendet, wenn das Objekt noch kein Material enthält. Wenn der Wert auf 'always'"always""always""always""always" gesetzt ist, wird das definierte Material immer angewendet. Dies kann verwendet werden, um ein Ersatzmaterial für Störobjekte zu definieren, die aus der Asset-Bibliothek geladen werden und manchmal bereits ein eigenes Material oder eine eigene Textur enthalten.

Werteliste: 'always'"always""always""always""always", 'fallback'"fallback""fallback""fallback""fallback"

Default: 'fallback'"fallback""fallback""fallback""fallback".

'num_instances'"num_instances""num_instances""num_instances""num_instances"

Eine Verteilung, die die Anzahl der Instanzen beschreibt, die für diesen Objekttyp erstellt werden sollen.

Wertebereich: 0

Wertevorschläge: [1, 4]

3D Mesh

Um das 3D-Mesh des Objekttyps zu definieren, das für die Physiksimulation und das Rendering verwendet wird, muss eines der folgenden drei Felder gesetzt werden: mesh_fname, mesh oder mesh_asset.

'mesh'"mesh""mesh""mesh""mesh"

3D Objektmodell, das das Mesh enthält, das für das Modell verwendet werden soll. Wenn 'mesh'"mesh""mesh""mesh""mesh" gesetzt ist, muss das 3D Objektmodell mindestens Punkte und Flächen enthalten.

'mesh_asset'"mesh_asset""mesh_asset""mesh_asset""mesh_asset"

Dictionary mit der Spezifikation des für das Modell zu verwendenden Assets. Ist 'mesh_asset'"mesh_asset""mesh_asset""mesh_asset""mesh_asset" gesetzt, wird das Objekt zufällig aus den verfügbaren Assets ausgewählt. Es ist zu beachten, dass viele Assets bereits eine Textur enthalten.

'mesh_asset.tags'"mesh_asset.tags""mesh_asset.tags""mesh_asset.tags""mesh_asset.tags", 'mesh_asset.categories'"mesh_asset.categories""mesh_asset.categories""mesh_asset.categories""mesh_asset.categories"

Ein Tupel aus Strings. Für asset-Meshes können diese Werte verwendet werden, um die Auswahl der verwendeten Assets weiter zu filtern. Eine Liste verfügbarer 'tags'"tags""tags""tags""tags" und 'categories'"categories""categories""categories""categories" kann mit get_scene_engine_paramget_scene_engine_paramGetSceneEngineParamGetSceneEngineParamget_scene_engine_param erstellt werden.

'mesh_fname'"mesh_fname""mesh_fname""mesh_fname""mesh_fname"

Dateiname des Meshes, das für das Modell verwendet werden soll. Wenn gesetzt, wird das Objekt aus dieser Datei eingelesen. Weitere Informationen zu unterstützten Dateiformaten sind unter read_object_model_3dread_object_model_3dReadObjectModel3dReadObjectModel3dread_object_model_3d zu finden.

Wertevorschläge: 'pipe_joint'"pipe_joint""pipe_joint""pipe_joint""pipe_joint"

Vordefinierte Materialien

Bei Verwendung von 'material.type'"material.type""material.type""material.type""material.type" 'preset'"preset""preset""preset""preset" stehen die folgenden Materialien zur Verfügung. Diese Materialien können durch Festlegen der Farbe im Feld 'material.base_color'"material.base_color""material.base_color""material.base_color""material.base_color" weiter angepasst werden.

Standardmaterialien, die in der Scene Engine verfügbar sind, von links nach rechts: Kunststoff ('plastic'"plastic""plastic""plastic""plastic"), Kunststoff mit Klarlack ('plastic_clear'"plastic_clear""plastic_clear""plastic_clear""plastic_clear"), Metall ('metal'"metal""metal""metal""metal"), glänzendes Metall ('metal_shiny'"metal_shiny""metal_shiny""metal_shiny""metal_shiny"), und Glas ('glass'"glass""glass""glass""glass"). Es ist zu beachten, dass die Farbe jedes Materials zusätzlich angepasst werden kann.

Es ist möglich, die Parameter dieser Materialien weiter zu verfeinern. Dazu können ihre detaillierten Einstellungen über get_scene_engine_paramget_scene_engine_paramGetSceneEngineParamGetSceneEngineParamget_scene_engine_param abgefragt werden. Die Einstellungen können anschließend angepasst und im 'material'"material""material""material""material"-Dictionary gesetzt werden, wobei 'material.type'"material.type""material.type""material.type""material.type" auf 'individual'"individual""individual""individual""individual" gesetzt werden muss.

Individuelle Materialien

Wenn der Wert 'material.type'"material.type""material.type""material.type""material.type" auf 'individual'"individual""individual""individual""individual" gesetzt ist, können physikalisch basierte Rendering-Eigenschaften (PBR) des Materials festgelegt werden. Die folgenden Bilder zeigen, wie die wichtigsten dieser Einstellungen die resultierenden Materialien beeinflussen.

Es wird empfohlen, keine einzelnen Werte zu setzen, sondern Verteilungen für jeden Wert anzugeben. Dies fügt den generierten Daten Variation hinzu, wodurch die auf diesen Daten trainierte Netze besser generalisieren.

Es ist zu beachten, dass get_scene_engine_paramget_scene_engine_paramGetSceneEngineParamGetSceneEngineParamget_scene_engine_param verwendet werden kann, um die PBR-Eigenschaften (als Verteilungen) der voreingestellten Materialien abzurufen. Diese können als Ausgangsbasis zur Feinabstimmung eines Materials genutzt werden.

Weitere Details zu den Parametern sind im unten in der 'References'"References""References""References""References"-Sektion aufgeführten Paper beschrieben.

Blaue Kunststoffteile mit Rauheit (roughness) von 0.0 (links) bis 1.0 (rechts).
Unterschiedliche Farben (base_color) für Kunststoffteile der selben Rauheit (roughness).
Unterschiedliche Farben (base_color) für Metallteile der selben Rauheit (roughness).
Unterschiedliche Farben (base_color) für Glas der selben Lichtdurchlässigkeit (transmission).
Unterschied zwischen Klarlackwerten (clear coat) von 0.0 bis 1.0 mit der selben Rauheit (roughness) (obere Reihe) und Rauheitswerten (roughness) von 0.0 bis 1.0 (untere Reihe) auf Metallteilen.

Ausführungsinformationen

Parameter

SceneEngineSceneEngineSceneEnginesceneEnginescene_engine (input_control)  scene_engine HSceneEngine, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle der Scene Engine-Verbindung.

GenerationParamsGenerationParamsGenerationParamsgenerationParamsgeneration_params (input_control)  dict HDict, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Parameter für die Datengenerierung.

GeneratedDataGeneratedDataGeneratedDatageneratedDatagenerated_data (output_control)  dict HDict, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Generierte Daten.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert run_scene_enginerun_scene_engineRunSceneEngineRunSceneEnginerun_scene_engine den Wert 2 ( H_MSG_TRUE) . Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

open_scene_engineopen_scene_engineOpenSceneEngineOpenSceneEngineopen_scene_engine, set_scene_engine_paramset_scene_engine_paramSetSceneEngineParamSetSceneEngineParamset_scene_engine_param, get_scene_engine_paramget_scene_engine_paramGetSceneEngineParamGetSceneEngineParamget_scene_engine_param

Alternativen

render_object_model_3drender_object_model_3dRenderObjectModel3dRenderObjectModel3drender_object_model_3d, disp_object_model_3ddisp_object_model_3dDispObjectModel3dDispObjectModel3ddisp_object_model_3d

Siehe auch

create_deep_matching_3dcreate_deep_matching_3dCreateDeepMatching3dCreateDeepMatching3dcreate_deep_matching_3d

Literatur

Burley, Brent, and Walt Disney Animation Studios: „Physically-based shading at disney.“ Acm Siggraph. 2012.

Modul

3D Metrology