The curves scenegraph location, in addition to the standard Katana curves attributes, KtoA handles the following additional attributes:

  • anoldStatements.*: the various curve-related settings are applied.  In particular, curve_mode, curve_basis, min_pixel_width, flip_t, and curve_triplicate_endpoints are used beyond the common settings available.  Please see the ArnoldObjectSettings node for those curve settings.
  • texture coordinates here are treated as per-curve values, and translated as root UVs for curves in Arnold.  Note that there should be one ST (two floats) per curve, and the scope should be primitive (not face, vertex or point).
  • geometry.point.orientation, geometry.point.N, geometry.point.normal: a three-float list of orientation vectors per curve point, indicating the direction the curve is facing.  This only applies when arnoldStatements.curve_mode is oriented.
  • Curve widths, listed in order of higher precedence (only one set is applied):
    • geometry.curveWidthStart and geometry.curveWidthEnd: float, per curve.  These attributes allow the specification of a root and tip width for each curve.
    • (deprecated) geometry.curves_width: used only if geometry.curves_ncurves is present.  One float width per varying value, or per curve point, or per curve.
    • geometry.point.width: float, one per varying value, or per point, or per curve.  Semantically it is recommended to use this per point or per varying value.
    • geometry.width: float, one per varying value, or per point, or per curve.  Semantically, it is recommended to use this per curve.
    • geometry.constantWidth: float, one value for the whole location.
    • (deprecated) geometry.point.constantWidth: float, one value for the whole location.
    • geometry.curveWidthEnd: float, per curve.  This option attribute is used instead of use geometry.point.width or geometry.point.constantWidth if present, this attribute allows the specification of a tip width for each curve.
  • (deprecated) geometry.curves_pointList: legacy synonym for geometry.point.P
  • (deprecated) geometry.curves_nvertices: legacy synonym for geometry.numVertices
  • (deprecated) geometry.curveMode: legacy synonym for arnoldStatements.curve_mode


Currently, standard curves location attributes and geometry.knots are ignored, but will likely be supported in some fashion in a future KtoA release.

Arbitrary Data Sizes

Arbitrary data for curves is a bit of a special case, because Katana normally vets arbitrary data scope such as face or point against polymesh or subdmesh location attributes to make sure there are the right number of values.  Because curves lack those attributes, only primitive scope should be used for curves arbitrary attributes.  In a future version of KtoA additional scopes will be properly supported for curves.

  • No labels