我是网络编程的新手,我需要使用openGL实时渲染大型DEM数据集。 请指导我如何使用WebGL和javascript实现它。 我用于渲染的方法是平铺数据并加载所需的图块。
此外,是否会涉及任何服务器端脚本?如果是,我应该使用哪种语言?
答案 0 :(得分:2)
答案 1 :(得分:1)
好的,这是一个很大的问题。我已经使用JS完成了一些地形渲染,尽管它只限于一个瓦片。
我认为您所描述的内容当然可以使用WebGL和Javascript,并且可以说比替代方案更好。有许多关于WebGL入门的教程(例如this one, based on the original NeHe OpenGL tutorials)。 Javascript是一种灵活且富有表现力的语言,你可以找到很多资源(Doug Crockford有一些最好的见解和指导)。
至于你的特殊问题,我会为你的瓷砖生成一些描述符,包括尺寸,位置以及每个瓷砖内的最大和最小高度。然后使用观察截头(在“相机”前面可见的区域)和瓷砖的边界长方体(由它们的位置和最大/最小高度给出)来确定哪些是可见的。您可以选择在给定的最大观看距离后丢弃任何内容。 获得一组可见的图块后,您现在可以单独渲染它们。
我不知道你的瓷砖的格式,高度网格(可以方便地存储为标准图像)或矢量描述,但这决定了你将如何渲染它们。对于高度网格,渲染它们的最简单方法是几条三角形。这意味着创建一些大型顶点缓冲区,但您可以做一些聪明的事情。除了一定数量的磁贴之外,您还必须管理哪些磁贴保存为WebGL缓冲区数据(和未压缩的图像)以及哪些磁贴都被释放。
由于您的问题非常普遍且水平较高,我会保持相似的答案。这听起来像一个有趣的项目,我很乐意为您提供更具体的问题。