Skip to content

[Feature] SpeedTree integration #1233

Description

@miogds

Goal

Outdoor levels need vegetation at scale: hundreds of trees and thousands of plants that look right up close, fade to billboards in the distance and move in the wind, without an artist modelling each one. SpeedTree is the industry tool for that, with a library of ready trees and a modeller that exports meshes with a full LOD chain, two-sided leaf materials and per-vertex wind attributes.

The goal is that a SpeedTree asset goes through the .untold pipeline like any other model and keeps what makes it a tree: the LOD levels feed the engine's LOD system down to the billboard level, the leaf and bark materials render correctly with the engine's lighting, a scene wind vector animates trunk, branches and leaves in the vertex stage, and a designer places and scatters vegetation from the editor's Assets panel. On visionOS the forest has to stay inside the frame budget at two eyes, so the performance counters go on from the first sample. Nothing exists today; the first step is to settle what each SpeedTree export format hands us (the native file needs their SDK, FBX, USD and glTF do not) and what the engine must add for wind and LOD.

Status

Step Plan Status
Research Export formats available to us (the SpeedTree 9 file needs the SDK; FBX, USD and glTF exports do not), licensing, what wind and LOD data survives each export Not started
Import Exporter or CLI path from the chosen format to .untold, keeping per-LOD meshes, two-sided leaf materials and the wind attributes Not started
Wind Vertex animation for trunk, branch and leaf motion driven by a scene wind vector Not started
LOD and billboards Feed the SpeedTree LOD levels through the engine's LOD system; billboard level for the far field Not started
Editor Place and scatter vegetation from the Assets panel Not started
Demo A forest scene on visionOS with the performance counters attached Not started

Next steps

  • Research note first, with one exported tree pushed through the current pipeline to see what breaks.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions