Vector tile geometry is always drawn in the translucent pass, so opaque features do not occlude each other
- Dominant language
- JavaScript
- Stars
- 15.7k
- Forks
- 3.9k
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 34
Description
### What happened?
Overlapping vector tile features blend through each other instead of occluding, even when the style is fully opaque. This is visible both within a layer and between layers. For example a polygon layer and a polyline layer covering the same area, where the polylines stay visible through the polygons.
`createVectorTileBuffersFromModelComponents` constructs `BufferPointCollection`, `BufferPolylineCollection`, and `BufferPolygonCollection` without passing `blendOption`, so they fall back to the `BlendOption.TRANSLUCENT `default. The renderers map that to `Pass.TRANSLUCENT`, and `OIT.getTranslucentRenderState` forces `depthMask = false`, so no depth is written.
Cesium3DTileStyle alpha never reaches `blendOption`, so color('red', 1.0) and color('red', 0.3) take the same path.
### Reproduction steps
1. Load two vector tilesets covering the same area, one polygons and one polylines.
2. Style both with a fully opaque color, e.g. color('red', 1.0).
3. Orbit the camera. The polylines remain visible through the polygons.
...
### Sandcastle example
_No response_
### Environment
Browser:
CesiumJS Version:
Operating System:
### AI acknowledgment
- [ ] I used AI to generate this issue report.
- [ ] (If the above is checked) I have reviewed the AI-generated content before submitting.
Contributor guide
Assessment
This issue has not been assessed yet.