我对three.js和WebGL很新。
http://css.dzone.com/articles/threejs-render-real-world处的示例展示了如何在three.js中使用栅格 GIS地形数据
是否可以在场景中使用 vector GIS数据?例如,我有一系列点表示存储在真实世界坐标(米)中的位置(包括高度)。我怎样才能在three.js中显示那些?
http://threejs.org/docs/59/#Manual/Introduction/Creating_a_scene的基本样本展示了如何使用坐标创建几何图形 - 我是否可以使用与真实坐标相似的方法,例如
"x" : 339494.5,
"y" : 1294953.7,
"z": 0.75
或者我需要将这些转换为页面单位吗?我可以使用我的点来创建一个可以悬垂航拍图像的表面吗?
我尝试修改简单示例,但我没有看到任何内容(或任何错误消息):http://jsfiddle.net/slead/KpCfW/
感谢您对我做错的任何建议,或者这是否确实可行。
答案 0 :(得分:2)
我做了很多事情让JSFiddle显示一些东西......这里:http://jsfiddle.net/HxnnA/
THREE.DoubleSide
。通常不需要或建议这样做,但是当您可以看到面部的两侧时,有助于在早期阶段进行调试。lookAt()
将其指向中心并使视野更宽(这样可以更方便地在编码时查找内容)。您的方法没有问题,只需确保您提供数据,以便在考虑相机位置,方向和近+远平面时有意义。注意你如何制作面孔。 Face3的参数是顶点数组中每个点的索引。稍后您可能需要考虑缠绕顺序,法线和紫外线。您可以研究Three.js中包含的几何类以供参考。
Three.js没有为单位指定任何含义。它只是浮点数,你可以自己决定一个单位(1.0)代表什么。无论是1毫米,1英寸还是1公里,都取决于考虑到它的应用和规模,最有意义的是什么。当实际数字非常小或非常大时,浮点数会带来精度问题。我自己的应用程序通常处理从几厘米到几百米的范围内的东西,并使用1.0 = 1米的单位,一直工作正常。