- Geometry
- Render
Asset
Purpose
Section titled “Purpose”Asset Import brings a model file into Voro. Point it at a downloaded prop, a scan or an export from your 3D package, and the whole asset goes into your scene with its parts, placement, materials and textures. Nothing is converted by hand first.
Pick one part and Asset Import also publishes it on its own, as a mesh and a material. That part can then go through Warp FX or a Geometry like any shape you built yourself, and keep the material it came with.
Asset Import reads these formats:
.glband.gltf, glTF 2.0. Metallic-roughness materials, emission, normal maps, vertex colours and the node hierarchy all come through. A.gltffinds its.binand images beside it..obj, ASCII, with its.mtl. TheKd,Ke,Nsanddvalues come through, withmap_Kd,map_Ke,map_Nsandnormimages. Each group becomes a part..fbx, FBX 7 in binary or ASCII. The node hierarchy, unit and axis settings, Phong and PBR-style materials and embedded media come through..ply, ASCII or binary. Positions, normals, vertex colours and texture coordinates come through..stl, ASCII or binary. Triangles and facet normals come through. STL has no materials or UVs.
Place Asset Import from the Geometry view of the Voro menu, under Render. It is a Geometry COMP, so it sits in a scene the same way a Geometry does.
- Drop a model file onto the File parameter on the Asset page, or browse to it. Keep companion files, such as
.mtl,.binand texture images, in the same folder as the model. - In your Scene, add the Asset Import to the Geometry selection. Any renderer that selects that Scene draws the whole asset.
- If the asset arrives lying on its back, set Up Axis to Z up. Voro’s world is Y up.
- Set its size on the Placement page. Scale multiplies the whole asset. Fit scales it so its longest side equals Fit Size, and Center moves the middle of its bounds to the origin. Both help with files authored in unknown units.
- Move, turn or scale the Asset Import on its Xform page, like any Geometry COMP.
To give the whole asset one Voro look, select a Material in Material on the Look page. It replaces every imported material.
To work with one part, choose it from the Part menu. The menu lists this file’s parts by their place in the file’s hierarchy, such as Rig/Body, and the names stay the same across reloads. The mesh and part_material outputs publish that part. Wire mesh into a Warp FX that reshapes a mesh, then bring the result into a Geometry. Select the Asset Import in that Geometry’s Material, and the Geometry takes the part’s imported material. A Geometry’s Matched Materials rows accept an Asset Import the same way.
Inputs and outputs
Section titled “Inputs and outputs”In TouchDesigner, both inputs come from the COMP itself, not from wires.
transformis the Asset Import’s own transform, from its Xform page. Each part’s placement in the file sits inside it.materialis the Voro Material selected on the Look page. When it is set, it replaces every imported material.
The outputs:
scenecarries every imported part with its material, placement and textures. Scene collects it through its Geometry selection.meshis the part the Part menu names, with positions, normals, anduvandCdwhen the file has them. Mesh Space decides where its points are. World, the default, bakes the part’s placement in the file into the points. Local keeps the points as authored.part_materialis that part’s material alone, for a Geometry downstream.
Controls
Section titled “Controls”The Asset page chooses the file and the part. Reload reads the file again after you change it on disk. If the reload fails, the asset already loaded stays in place. Selected Part Only loads just the part in the Part menu, which is the way into a file too large to import whole.
The Placement page sets the asset’s own size and orientation, as described in Use. Up Axis at Source keeps the file’s own orientation.
The Geometry page decides how the surface is read.
- Normals at Source keeps the file’s normals and makes smooth ones only where the file has none. Smooth and Flat replace them.
- Flip V is for textures that come out upside down. Auto already puts every format the right way up, so use Flip only for an asset whose textures were authored the other way round.
- Turn Textures off for a geometry-only import. Asset Import then skips decoding the images.
- Asset Import reads the file in the background, so a large load doesn’t stall your network.
- A scene holds at most 256 objects and 256 materials. A file with more parts or materials than that is refused whole. Nothing from it is published, and an asset loaded before it stays. The error counts what is over the limit. The Part menu still lists every part in the file, so pick the one you need and turn on Selected Part Only.
- A Part name that isn’t in the current file stops
meshandpart_material, and the whole asset keeps drawing in the scene. - The import is static. Animation, skinning and morph targets are not played, and you get the file’s rest pose. The file’s cameras and lights are not imported either. Use Voro’s Camera and Light.
- Asset Import does not read occlusion maps, alpha cutout or blending, point or line meshes, or different UV sets for different maps of one material. It warns about occlusion and opacity textures it finds.
- Base colour and emissive images are decoded from sRGB to linear. Colour and strength values in the file are used as they are. A part with vertex colours multiplies them into its base colour, together with the texture.
- A glTF normal map keeps its strength. An emissive factor of zero emits nothing, however bright the emissive image.
- glTF extensions for emission strength, IOR, transmission, texture transforms, quantized meshes, clearcoat, sheen, anisotropy and volume are read. The layered ones, clearcoat, sheen, anisotropy and volume, bring their values but not their textures. A file that requires Draco or Basis compression, WebP images, unlit materials or the specular-glossiness or specular extensions is refused by name rather than imported wrong. When such an extension is only used, not required, Asset Import warns and imports the file without it.
- Asset Import has no instancing inputs. To draw many copies of an imported part, bring its
meshinto a Geometry and use Geometry’s instancing.
Inputs
-
transformrow -
materialscene
Outputs
-
scenescene -
meshmesh -
part_materialscene
Parameters
Section titled “Parameters”Asset
op('asset_import').par.File A .glb, .gltf, .obj, .fbx, .ply or .stl file. Drop one on this parameter or browse to it; companion .mtl and image files resolve beside it.
- Default:
"" (Empty String)
op('asset_import').par.Reload Read the file again. A failed reload keeps the asset that is already loaded.
- Default:
None
op('asset_import').par.Part The part the Mesh and Part Material outputs publish. The menu is this file's own parts, including the ones a whole-scene import cannot hold; empty selects the first part.
- Default:
"" (Empty String)
op('asset_import').par.Selectedpartonly Load only the selected part. Use this when a file has more parts or materials than the scene wire holds.
- Default:
Off- Options:
- Off, On
Placement
op('asset_import').par.Scale Uniform scale applied to the whole asset.
- Default:
1- Range:
- 0.000001 to 10000
op('asset_import').par.Center Move the asset's bounds centre to the origin.
- Default:
Off- Options:
- Off, On
op('asset_import').par.Fit Scale the largest bounds axis to Fit Size.
- Default:
Off- Options:
- Off, On
op('asset_import').par.Fitsize - Default:
1- Range:
- 0.000001 to 10000
Geometry
op('asset_import').par.Textures Decode the asset's images. Turn off for a geometry-only import.
- Default:
On- Options:
- Off, On