铯在Cartesian3空间中定义的AxisAligned边界框内绘制地球表面

时间:2019-03-14 17:20:37

标签: glsl cesium

使用铯,我想标记边界框内表面上的区域。我首先使用BoxGraphics绘制了边界框,但是当您在笛卡尔空间中指定位置时,它会自动转换为在纬度/经度空间内旋转并调整大小的框。我使用Polyline进行绘制,尽管必须使用最新版本来支持ArcType,以防止人为弯曲的线条。

但是,这两者都画出一个盒子,这个盒子并没有很好地被地球自身所遮挡,并且很难分辨出它与表面相交的位置。

然后,我开始研究创建一个用于francement着色器的破碎器着色器,该破碎器着色器将使用在reader.scene.globe.material上,如果在边界框内还是外部,则基于世界位置使用不同的颜色。这是使用源着色器而不是组件着色器完成的,因为需要更多控制权

但是着色器函数czm_material czm_getMaterial(czm_materialInput materialInput)无法访问世界坐标

首先,我尝试使用“变化的vec4 worldCoord”,但我认为这可能是针对顶点着色器的,因为它失败了。

然后我尝试了“在vec4 fl_FragCoord中”;但出现错误“'in':仅在GLSL ES 3.00及更高版本中支持存储限定符”

在这种情况下,也许我使用的着色器使用了错误的方法?也许有更好的方法来获得碎片着色器的世界位置?

不确定在我的ECEF AxisAligned边界框内从何处着色地球表面

0 个答案:

没有答案