User Tools

Site Tools

Release Notes

This is a log of changes between releases of the SpeedTree Engine SDK in reverse chronological order.

A Word On Version Numbers: The SDK shares its codebase with the SpeedTree Cinema Modeler application. The SDK version numbers will always be locked to the version of SpeedTree Cinema it was built against. 8.2.0, for example. If updates are needed before Cinema is updated, we will append Release 2, Release 3, etc to the version. 8.2.0 R2, for example.

8.2.0 R2

Version 8.2.0 R2 is the first full release of the Engine SDK and the immediate successor to the final beta release. R2 is the first release of the 8.2.0 SDK because R1 shipped only as part of the SpeedTree Engine Clarisse plugin, not as an API.

Bug Fixes

  1. Corrupt Geometry From v7 Models: The frond geometry from Cinema v7 models would often not load correctly.
  2. Non-PNG Image Formats Broken: If a format other than PNG was selected for STE export in Cinema 8.2.0, the SDK would still report PNG extensions.

API Changes

  1. SteGetGeometry() Changed: It no longer takes an SSteGeometry pointer, but returns one. It will be NULL if a tree model has not been loaded before the call.
  2. SteGetGeometryPtr() Added: Allows direct access to the internal geometry pointer now returned by SteGetGeometry().
  3. STE_GROUP_BY_GENERATOR Added: Will group nodes by the name of the Cinema generator nodes that generated the geometry.
  4. Leaf Meshes Added: The raw leaf meshes can be queried to be used with leaf references. The sample code also shows how they can be properly positioned using the leaf reference orientation data. Note that the leaf meshes will be flat with none of the curl or folding applied.
  5. STMAT Files No Longer Used: STMAT files are produced when STE files are exported from SpeedTree Cinema, but the Engine SDK no longer depends on them. Changes related to this include:
    • SteLoadStmatFile() function removed.
    • SteExportStmatFile() function removed.
    • SSteGeometry::m_bMaterialsSourcedFromStmatFile removed.
  6. SteCompute() Removed: Manually computing the model is no longer necessary or possible.
  7. SteSetMaxCpuThreads() Added: Allows developers to control the maximum number of parallel threads used to compute the model's geometry or during wind simulation.
  8. SteGetNumGrowthFrames() Added: Will query the number of frames growth will execute across. This value is set in the timeline window in Cinema.
  9. RLM Licensing Added: The SDK now requires a license to run. Related changes include:
    • If the unlicensed SDK is run on a system for the first time, it will automatically drop into a 10-day evaluation mode. This evaluation will not repeat automatically.
    • During evaluation mode, random triangles will be removed from the geometry output.
    • The enumeration ESteLicenseType was added describing the SDK as either not licensed, fully licensed, or in evaluation mode.
    • The function SteLicenseType() was added, which will return a ESteLicenseType value.
    • The structure SSteLicenseInfo() was added, which will provide specific licensing errors and or status information from the internal licensing system.
  10. SteVec3*() Added: A few new SSteVec3 convenience functions were added.
  11. STE_TRUE and STE_FALSE Removed: Uses were replaced with standard bool type.
  12. SSteSpeedTreeVertex::m_vPosVelocit Changed: SSteSpeedTreeVertex::m_vPosVelocity was split into SSteSpeedTreeVertex::m_vGrowthVelocity and SSteSpeedTreeVertex::m_vWindVelocity.
  13. Changes to SSteMaterial:
    • m_nID Added: Each material now has a unique integer identifier.
    • m_bVertexOpacity Added: This is true when branch seam blending is active.
  14. Changes to SSteGeometryOptions:
    • m_uiSeed Added: The default value of zero means to load the model as it was defined in Cinema. Using other seed values is the equivalent of pressing global randomization in Cinema.
    • m_fTimeInSecs split into:
      • m_fWindTimeInSecs Added: Behaves just like m_fTimeInSecs did with respect to wind animation.
      • m_fGrowthFrame Added: Controls the growth animation by frame count, not seconds. The number of growth frames is controlled in the timeline window in Cinema and can be queried using SteGetNumGrowthFrames().
    • All m_bCoords* Variables Renamed: “Coords” was replaced with “Pos”, so m_bCoordsSwapYZ became m_bPosSwapYZ, m_bCoordsFlipY became m_bPosFlipY, etc.
    • m_bWindFast3dNoise Added: The wind system will use a less accurate but faster noise look up which can speed wind computation by 30-50%.
    • m_vWindInstancePos Changed: It's now m_sInstance, of type SSteInstance, which contains orientation vectors in addition to position.
    • Changes to SSteGeometry::
      • m_fLastWindComputeTimeInMilliSec Added: Helps to track optimizing wind computation.
      • m_nLastWindComputeNumCpuThreads Added: Will report how many parallel threads were used to compute wind.

Changes For Internal Use Only

  1. SteNumNodeEdits() function removed.
  2. SetMemoryMode() function added.
  3. SetClientComm() function added.
  4. SSteGeometryOptions member variables added:
    • m_afWindInternalStateTransform
    • m_bWindPointSource
    • m_vWindSourcePos
    • m_fWindCohesiveSync

Beta Version

Initial release for limited investigations.