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
- Create a CesiumGeoreference with True Origin mode.
- Add the tileset PointStyle.zip under the above georeference.
- Observe that only one point shows up with Attenuation enabled.
Supporting evidence
| Expected (ignore circular appearance) |
Actual |
 |
 |
Note that non-attenuated points do show up, but they're very hard to see (and one may be missing?):

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
Supporting evidence
Note that non-attenuated points do show up, but they're very hard to see (and one may be missing?):