CesiumGS / cesium-unity

Bringing the 3D geospatial ecosystem to Unity
https://cesium.com/platform/cesium-for-unity/
Apache License 2.0
347 stars 83 forks source link

Support reordering raster overlays #401

Closed kring closed 7 months ago

kring commented 8 months ago

Raster overlays are currently applied in the order in which their OnEnable is called. There should be more explicit control over their order. For example, it should be possible to enable a layer at runtime that is drawn in between two existing ones.

j9liu commented 8 months ago

This makes me wonder if we should implement some variant of the "Material Layer Key" property that Unreal uses. Given a string text field, you could assign raster overlays keys like Overlay0, Overlay1, etc. Then UnityPrepareRendererResources will put it into the corresponding shader variables, based on the N in OverlayN.

This may also be relevant to #64. In Unreal, clipping requires modifying the opacity / alpha mask, and it applies that through a special Layer Blend asset. The keyword "Clipping" is used to identify what raster overlay to use this blend asset on. But there's no exact equivalent for this in Unity, so how is the tileset going to know which overlay is the clipping one?