我已经在Three.js框架中渲染了一些3D对象(JSON和OBJ模型)。现在,我需要根据地理坐标将场景渲染到Cesium框架中。
有人尝试过吗?如果有人可以为此共享一些文章或示例应用程序(即集成Cesium和Three.js),这将很有帮助。
最佳答案
这个问题现在已经很老了,那时Cesium和Three.js都对称为glTF的3D模型格式提供了更强大的支持,该格式由Khronos组(WebGL标准人员)支持。现在,这是渲染3D模型的首选方法(至少在Cesium中)。
Cesium无法支持与Three.js的直接集成,部分原因是这两种产品在后台具有非常不同的渲染引擎。 Three.js力求灵活性和易用性,而Cesium力求在行星级或更大型的渲染中保持准确性。许多Cesium着色器使用位置数据(使用单独的32位“高”和“低”属性for example)执行64位数学运算,这对于在13000公里宽的星球上实现毫米级精度是必需的。 Cesium还具有使用multiple view frustums的系统,该系统允许进行太阳系大小的渲染(例如,最近的近平面小于或等于1米,最远的远距离平面等于或大于1e11 km。这不能单次通过典型的WebGL深度缓冲区,因此Cesium会将总视图量削减为3或4个部分以完成)。
通常,我建议您使用对可用引擎的相对功能和优势的了解,为要执行的工作选择正确的渲染引擎。我认为尝试将两个引擎混合在一起不是正确的答案。
关于javascript - 如何将Three.js集成到Cesium或相反的版本中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27900286/