User Tools

Site Tools


Units and Scaling

The SpeedTree system, from the Modeler through to the SDK, is unitless. However, trees in the model library were modeled where one unit represents approximately one foot (0.30480 meters). If a conversion is necessary, there are four possible approaches:

  1. Scale the tree in the Compiler application using the “General→Size scalar” option or each individual tree's “Tree→Size scalar” option.

  2. Pass a scalar value when calling CCore::LoadTree(). The second parameter defaults to 1.0. If converting from feet to meters for example, pass in 0.3048. This will scale the actual coordinates and other associated data of the model. Note that there will be some small conversion CPU overhead per base tree on load.

  3. When creating instances of a given tree, multiply the value assigned to SInstance::m_fScalar to compensate for the units difference. The tree will still be in the same units, but the culling and shader systems will interpret them with the correct scale value.

  4. Scale the tree in the Modeler application using either “Tools→Scene unit conversion…” or “Tools→Arbitrary scene scale.”