🗓️ 2025-07-29 🏷️ #GIS相关#

在Cesium中,目前所知有两种实现方法。

第一种射线法,具体原理是将太阳看成点光源,把分析时间按照间隔切片后更新场景,每次渲染完成触发事件,对每一个观测点,从太阳方向发射射线检测,被阻挡表示点在阴影里,否则表示被光线照射到,统计每一轮结果最后可视化。

优点计算非常简单,缺点超级慢,尤其当范围大,时间跨度长时巨卡,每次分析都会阻塞场景渲染,因为执行射线检测时会不停操作深度图。

image-20250729094519810

第二种通过WebGL计算阴影图,通过计算观测点是否位于阴影范围内。优点是分析快速,支持更大范围,缺点是实现起来稍微复杂。

具体原理可参考这篇文章

shadow

image-20250729100719568