近期看了看原生沙盘 的剖切功能,简单记录整理,顺便改造成限高
1.构造剖切对象 传递到数据上;
2.数据每帧刷新中:
Batched3DModel3DTileContent.prototype.update()
|
model.update(frameState):shouldRegenerateShaders中判断需要修改脚本
|
recreateProgram()中根据具体的标识来修改脚本内容,判断需要addClippingPlaneCode
|
modifyShaderForClippingPlanes(finalFS, clippingPlaneCollection, context) 完成剖切脚本的拼接,核心脚本如下:
其中discard改成颜色混合就是 限高效果,限高也可以用ClassificationPrimitive实现