In addition to the standard attributes and user attributes supported on both polymesh
and subdmesh
locations, KtoA adds a few additional attributes it can translate.
polymesh and subdivision
polymesh
locations can have subdivision activated (in the ArnoldObjectSettings
node) and KtoA will allow them through as subdivision meshes, but with a warning. It is preferred to use the subdmesh
location type.
Additional Attributes
All of the mesh-related attributes from ArnoldObjectSettings
(stored in the arnoldStatements
attribute group) are applied. In addition, the following are recognized:
geometry.point.Pref
: the same size asgeometry.point.P
, this is a per-vertex reference position typically used for applying projective textures or noise at a bind-pose and having it stick.geometry.creaseIndices
: there are two modes for this attribute:- An integer array of pairs of indices referencing vertices (points from
geometry.point.P
). E.g. if a subdmesh has 600 vertices,creaseIndices
with values 1, 2 will make a creased edge from vertex 1 to vertex 2. - Runs of vertex indices, each run length indicated by geometry.creaseLengths. E.g. if a subdmesh has 600 vertices, geometry.creaseLengths has a three values 4, 3, 3, and creaseIndices has values 1, 2, 5, 7, 2, 6, 7, 9, 10, 12, then it will make creased edges from vertices 1 to 2, 2 to 5, 5 to 7, 2 to 6, 6 to 7, 9 to 10, and 10 to 12. Note that the runs can be conceptually thought of as 1,2,5,7; 2,6,7; 9,10,12.
- An integer array of pairs of indices referencing vertices (points from
geometry.creaseLengths
: if present,geometry.creaseIndices
contains runs of vertex indices instead of being restricted to pairs of vertex indices. When not present, it is implied that each length is 2, producing pairs of indices.geometry.creaseSharpness
: the OpenSubdiv-compatible float crease sharpness, one per pair or run of crease indices. IfcreaseLengths
is present, there will be the same number of crease sharpnesses as entries increaseLengths
and otherwise there will be one per pair of indices if not. This will produce a hard/perfect crease up to the subdivision level that matches, and then will soften for any subdivision levels beyond that. E.g. if the subdivision level is set to 4, and a crease sharpness is set to 2.5, then it will produce a hard crease through subdivision levels 1 and 2, a half-hard crease on subdivision level 3, and a regular subdivision on level 4.geometry.cornerIndices
: an array of vertex indices indicating which should be sharpened.geometry.cornerSharpness
: likecreaseSharpness
but applies to a vertex to create sharp corners. This will have one float value per index incornderIndices
.