问题标签 [terrain]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 基本双轮廓理论
我一直在谷歌上搜索,但找不到任何基本的东西。在最基本的形式中,双轮廓(对于体素地形)是如何实现的?我知道它做什么,为什么,但不明白如何去做。JS或C#(最好)是好的。有没有人用过Dual contouring,可以简单解释一下吗?
mesh - 动态地形变形
我对设计一个非常简单的游戏很感兴趣(只是为了学习目的,我没有宏伟的计划)。我想要一个可变形的地形系统(想想我的世界),但有点复杂。
我知道 Mine Craft 使用了一个叫做体素的概念。我也不是说体素在 CPU 方面并不完全好,但现在可以通过一些 GPU 技巧来实现(同样从我目前所读到的内容中不知道)。
到目前为止,体素似乎是要走的路,但它们不是我想要的。它们允许悬垂和洞穴,但它们看起来非常简单。
我想要一个非常大而广阔的地形,我可以通过悬垂自由变形和操纵。我知道我必须针对景观的大小实施某种分页,甚至可能针对我正在考虑的地形类型进行三维分页。
我对 ROAM 进行了一些研究,但要学习的东西很多,我不确定它是否是正确的方向。我已经看到可能要走的路是使用分层高度图,然后使用 geomipmapping 和网格用于隧道等(如果这有任何意义的话)。
基本上是在寻找一个好的算法和起点,包括巨大的地形,这些地形完全可以变形,允许悬垂、悬崖、隧道和洞穴。
它不必像《我的世界》中那样漂亮,但也不像块状。
任何关于从哪里开始研究的方向都会有很大帮助。
谢谢。
c# - 2D 高度图上的基本(假)光线投射
基本上我想要做的是使用一个非常基本的光线投射系统对 2D 高度图进行着色,该系统基本上只是检查光线是否在应该对其进行着色之前被拦截。但是它不能正常工作,我已经为此苦苦挣扎了几个小时,所以我认为把它交给你们不会有什么坏处,因为我认为这可能是非常明显的事情,我不会看到它或如此复杂,我永远不会绕着它走。
我有一张这样的地图:
光线投射给了我这个(请记住,它只是调试颜色;红色是光线拦截,但在预期位置(如此阴影)之前,蓝色将是正确位置的光线拦截(如此突出或原样),并且黄色表示该点在 while 循环切断之前根本没有光线相互作用)。
结果应该是背面的斜坡和大山后面的区域(阴影)为红色,面向太阳的斜坡(高光)为蓝色。不应该有任何黄色。所以这张图片表明要么所有的光线都击中了错误的位置,要么光线在到达目标之前总是在其他地方相交,这是不可能的。
在这一点上,我高度怀疑问题出在我的三角上。
这是 Ray 类:
同样作为一种形式,投射每条光线的函数以及我如何称呼它:
if (lighting) CastSunRays(1f, MathHelper.PiOver4);
opengl - 实时地形照明
在 OpenGL 地形场景中提供实时照明的最佳方式是什么?每个四边形之间的细节层次将在放大时动态生成,因此预先计算的光源将不起作用。我想在这样的地形上模拟太阳。它不一定是最好的。它只需要看起来足够好。我不熟悉着色器。
javascript - 关于如何为生成的地形图制作彩色地图的建议?
我对昨天有人发布的关于菱形平方算法、Node.js/coffeescript 在数学密集型算法上的性能的问题感兴趣。
我随后修改了他的代码,并希望下一步为生成的数据网格生成一些颜色图。
我最初的想法是把海洋的最深处到珠穆朗玛峰的高度作为我的高度范围。这使海平面约为 2076m,最大高度约为 10924m(珠穆朗玛峰为 8848m)。无论如何,所以我正在生成我的数据网格,其值非常接近我想要的值。
我正在考虑制作一组十六进制颜色值,从深蓝色到浅色表示水,然后从深绿色到白色表示海平面到山脉。我可以设置高度值范围以对应颜色区域。
做这种事情的常用技术是什么?我想更具体地说,如何在给定高度值的 2 个十六进制值之间生成特定的十六进制颜色?
visualization - 地形路径计算
我正在追求一个长期的爱好项目来开发一个简单的视觉工具,用户将能够执行地形的最小 3D 可视化——从不同的查看位置查看地形的部分、缩放等——然后选择一个源和目标点使用鼠标,然后请求首先计算最短路径,然后显示在地形上。
作为进一步的背景:我有几个示例 DEM 数据集;一种具有网格中每个 30 米 X 30 米像元的高程/高度样本(USGS 数据集),另一种具有更高分辨率的数据集。通过有限的研究调查,我已经得出这样的结论:最好先对数据集执行地形三角剖分以获得 TIN,然后使用几种算法之一在 TIN 上执行路径计算。
关于我可以使用哪种开源或免费工具或库的任何建议:
(1) 生成 TIN——我打算使用 gdal_merge 来合并与感兴趣的图块相对应的 gif 文件,然后运行三角测量代码(我自己的或现有的,例如 r.refine,虽然我还没有尝试过)
(2) 将 TIN 加载到适当的工具中——我不知道要使用什么工具——该工具能够从各种查看位置显示 TIN 区域,并允许选择/取消选择点并允许在地形上显示段。我遇到了 vterrain 但不确定这是否合适。
目的是一旦选定的点与后端通信,后者将计算路径并将其发送回工具中显示。
javascript - WebGL - 带高度图的纹理地形
我正在尝试使用 WebGL 创建 3D 地形。我有一个带有地形纹理的 jpg,以及另一个带有高度值(-1 到 1)的 jpg。
我查看了各种包装库(如 SpiderGL 和 Three.js),但我找不到一个合适的示例,如果我这样做(如 Three.js),则代码没有记录,我无法弄清楚怎么做。
谁能给我一个很好的教程或例子?
Three.js http://mrdoob.github.com/three.js/examples/webgl_geometry_terrain.html有一个例子,这几乎是我想要的。问题是它们随机地创建了山脉的颜色和高度值。我想从 2 个不同的图像文件中读取这些值。
任何帮助都将不胜感激。谢谢
opengl - OpenGL中位图的地形渲染
我的任务是从灰度 8 位 bmp 渲染地形,并从纹理 24 位 bmp 获取地形的颜色。我设法获得了具有高度等的适当景观,并且我还从纹理位图中获得了颜色。问题是全彩色渲染的地形非常“块状”,它显示了正确的颜色和高度,但它太块状了。我用过glShadeModel(GL_SMOOTH)
,但它看起来还是那么块状,几乎就像我可以从位图中看到像素一样。因此,任何提示都值得赞赏。
terrain - 使用分形布朗运动创建无缝世界地图
我正在使用分形布朗运动创建高度图。然后我根据高度对其进行着色并将其映射到一个球体。我的问题是高度图没有无缝包裹。我使用了 Diamond Square 算法,使用它很容易使事情变得无缝,但我似乎无法弄清楚如何使用 fBm 来做到这一点,而且我似乎很难在网络上找到它的解释。
澄清一下,“无缝”是指当我将它映射到球体时,它会在球体上创建一个无缝映射。