Skip to content

Abstract Terrain3DMeshAsset into child classes #877

@TokisanGames

Description

@TokisanGames

Description

So many problems are caused by wanting different defaults between texture cards and scene files in Terrain3DMeshAsset. It would probably resolve this if the MA were an abstract class, and we had separate texture card, and scene asset classes, where each mesh asset type can deal with their own defaults, init and loading cleanly.

Though everything works reasonably well now, these are the current issues:

  • The code is too delicate. I'd rather see derivative classes.
  • Swapping scene file / texture cards has a couple minor inconsistencies, but I feel this is a reasonable balance
    • Clearing the scene file loads a texture card and resets: height, density, lod ranges.
    • Setting gentype to texture card clears the scene file and resets: density. leaving the previous height and lod0 range
  • Creating a new Terrain3DMeshAsset via API doesn't have a texture card or material unless you create and assign them, or you assign the MA to Assets.set_mesh_asset() which runs MA initialize(), which generates a texture card and sets height offset, density, lod0 range.

See recent changes: 0cc5470 in #722, #839, #879

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestideaJust an idea, which may or may not be implemented

    Projects

    Status

    Future Ideas

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions