Skip to content

Attenuation broken for indexed points #1867

Description

@j9liu

What happened?

Typically, points in 3D Tiles do not use an index buffer because it's unlikely to reuse the same position in a mesh. Our code for attenuating points is built with this assumption.

This bug was exposed via a synthetic test model where four separate point primitives, each with one index, reference the same position buffer. Attenuation does not account for indexing, so it's always visualizing the first point position.

In real-world use cases it seems unlikely this will be triggered, but worth documenting this just in case.

Environment

Cesium for Unreal version: v2.28.0 (but earlier versions have the same behavior)
Unreal Engine Version: 5.6
Operating System: Windows 11

Reproduction steps

  1. Create a CesiumGeoreference with True Origin mode.
  2. Add the tileset PointStyle.zip under the above georeference.
  3. Observe that only one point shows up with Attenuation enabled.

Supporting evidence

Expected (ignore circular appearance) Actual
Image Image

Note that non-attenuated points do show up, but they're very hard to see (and one may be missing?):

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions