Skip to content

Add support for property attribute property styling #1689

@j9liu

Description

@j9liu

Feature

Currently we don't support access to property attributes, nor the styling of them. It shouldn't be too much of a lift to add support for FCesiumPropertyAttribute and FCesiumPropertyAttributeProperty. This would also simplify a lot of things for #1685, so I'm tempted to just do this off-the-bat.

Property attribute styling is less straightforward. 😕 There isn't an easy way to pass custom vertex attributes to Unreal materials without writing a custom vertex factory / shader (which is a lot of effort), and also isn't dynamic to work with the same way that Unreal materials are. Some options are...

  • Attempt to pass properties through unused UV channels. We already do this for per-vertex feature IDs. However, metadata properties are more arbitrary, so we could have something like vec4 properties which would take up 2 full UV sets. There is a hard limit on the number of properties we could support because we could only pass up to 16 scalar values, and this space is further compromised if the model comes with its own UV coordinates.
  • Copy what we did for property tables. Upload the entire attribute buffer to a texture, and then access the values by index. The vertex index must be stored in a UV channel because there is no "Vertex Index" node in Unreal material graphs, but it only takes one UV channel to enable an arbitrary amount of properties.

The latter seems best for the most immediate value and reliability. I think in that case, it also wouldn't be too much of a lift.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions