#13722·cesium

Vector tile geometry is always drawn in the translucent pass, so opaque features do not occlude each other

Author: danielzhongCreated Aug 25, 2026Updated Sep 15, 2026
Labelstype - bugpriority - next releasecategory - vector data

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.