问题标签 [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.

0 投票
2 回答
3616 浏览

3d - 如何将射线与地形模型相交?

我目前正在 XNA 中设计一款 RTS 游戏。到目前为止,我有一个从 Heigthmap 生成的地形模型和一些在其上绘制的单元。

下一步将是向单位发出关于移动位置的命令。为此,我必须在单击光标时计算光标后面地形的确切位置。

对于单位选择,我只需生成一条从光标指向屏幕的射线,然后选择与该射线相交的第一个单位。现在这不适用于地形,因为整个事情都是一个模型。

谁能帮我?

问候尼克

PS:我刚刚在 youtube 上找到了这个视频,它准确地解决了我的问题......不幸的是,没有任何参考代码。http://www.youtube.com/watch?v=czHW3oK8_oI

0 投票
6 回答
3627 浏览

3d - 高度图的意义何在?

我一直在思考这个问题……许多 3d 引擎支持使用四叉树、LOD 的高级地形渲染……所有您期望的功能。但是我见过的每个引擎都从高度图加载高度数据......灰度位图。我只是不明白这有什么用 - 高度图中的每个点都可以有 256 个值之一。但是,如果您想为珠穆朗玛峰建模怎么办?1米甚至更大的细节?这远远超出了 256 的范围。当然,我知道您可以实现自己的地形格式来实现这一点,但我就是不明白为什么高度图尽管有很大的局限性,但仍被如此广泛地使用。

0 投票
1 回答
1305 浏览

java - 分形地形生成问题

我正在尝试让一个简单的 1D 分形地形生成器用于 2D 游戏。但由于某种原因,它总是要么形成一座小山、一条山谷或一条平线,如以下段 (x1, x2, y2) 的输出所示:

范围从 -1 到 1。

这是用于生成关卡的代码。

}

我不确定出了什么问题,感谢您的帮助。

0 投票
2 回答
1036 浏览

c# - 如何在 3D 地形上创建“烧焦区域”?

我正在尝试使用 C# 和 XNA。学习高级的“ Riemers 教程”对我有很大帮助,但我想让我的地形变得更好。我有一个简单的游戏,玩家控制坦克并摧毁其他建筑物和坦克。我想以某种方式绘制爆炸对地形的影响。我想要的效果在很多新游戏中都可以看到,例如右下角的HERE可以看到地面上有两个黑点(可能是前一段时间那里发生了一些爆炸)。这正是我想要实现的。

有人能指出我正确的方向吗?我认为将需要多纹理,但是当涉及到这一点时,我发现自己有点迷失(所有带有像素着色器的东西......)。这是唯一的方法吗?如果是这样,有人可以帮助我了解如何使其工作吗?还是有其他方法?谢谢。

编辑:忘了说我不熟悉 3d 图形理论。我所知道的一切都基于简短的教程,因此可能需要更详细的解释。目前我不知道如何在已经纹理化的表面上绘制一些东西。

0 投票
6 回答
4316 浏览

c++ - C++ 中的 OpenGL VBO 技术

我对在 OpenGL 程序中正确使用 VBO 感到有点困惑。

我想创建一个地形分页算法,使用从 4096x4096 灰度高度图调用的地图作为“整体”地图。

根据我的阅读,存储在 VBO 中的每个顶点将占用 64 个字节。

我遇到的问题是大多数消息来源都指出单个 VBO 的大小应该在 1-4mb 之间,并且 VBO 越少越好。然而根据我的计算,存储每个顶点总共需要大约 1 GB 的数据!(4096x4096x64) 这不包括每个顶点可能需要为每个三角形存储多次。

一旦我得到了代码的地形部分,这也不能适应这张地图上的不同车辆和人。

我看到的另一个解决方案是在程序运行时从硬盘驱动器中分页数据,但另一个消息来源说,在程序运行时创建和销毁是一个坏主意,而且最好的做法是尽可能少的 VBO可能的。

我真正想知道的是,我错过了什么?我确定我在这里进行了某种大规模的疏忽,因为 4mb 的最大 VBO 大小似乎非常低,即使我在 64x64 块中加载纹理,以及将填充地图的不同交互式对象也是如此。

还是我对我能取得的成就的期望是不切实际的?有没有更好的方法可供我使用,我不知道?我正在研究诸如 Oblivion 或 Fallout 3 之类的游戏,以及某种程度上的 Boundless Planet,看到了巨大的地形,并想知道这到底是怎么可能的。

我了解如何编码,这不是我第一次深入研究 OpenGL,而是我第一次尝试理解和利用 VBO。

如果有人能阐明我对 VBO 的理解出错的地方,将不胜感激。

0 投票
1 回答
503 浏览

graphics - 镶嵌过渡

我想实现从精细几何到粗糙几何的镶嵌过渡,反之亦然,用于不会引入不连续性(裂缝)的地形渲染。不需要实时性能,即它可以独立于视图。

您如何看待以下提案:

替代文字 http://www.shrani.si/f/A/qD/2UJlczki/tessellation.png

  1. 甚至可能吗?
  2. 你有没有实现过类似的东西?
  3. 有什么缺点?
  4. 你有更简单的建议吗?
0 投票
0 回答
370 浏览

c# - 生成的地形不会在 directX (C#) 中显示

问候

我用这个方程生成了一个地形:

H(x,y) = (abs(sin(x * y)) + abs(sin(0,2 * x) + sin(0,4 * y)) + abs(cos(0,12 * x) + cos(0,47 * y))) * e^(0.005*(x+y))

现在,这给了我一个混合特征尺寸和一个不错的坡度。当我使用 scilab 绘制它时,这很好用。

我试图在 ac# 应用程序中导入它。

地形是在以下代码中创建的:

这保存在一个名为 terrain.cs 的文件中,我将其设为 winform,因为我计划添加一个简单的文本框,稍后我可以在其中制作某种过程的实时日志。

现在,有另一个文件,在那个文件中,打算显示这个地形。第二个文件如下:

现在,还有第三个文件调用世界创建和显示:

surf 和 box-somthing 函数还没有做任何事情。

我现在得到的只是一个黑色窗口(device.clear(...) 部分) - 我试图调整相机.. 没有成功

请帮忙,我想在窗口中显示地形....

0 投票
1 回答
3576 浏览

physics - Box2d - 自行车游戏 - 地形

我正在使用Box2d进行自行车物理游戏,Box2d 让您拥有具有 8 个或更少点的凸多边形的固定装置,除了制作一大堆固定装置之外,有没有人知道更简单的方法拥有复杂的凹形地形?或者这是唯一的方法?

任何想法,指针,建议......在此先感谢!(任何语言都可以)

0 投票
1 回答
2331 浏览

delphi - 画布/位图滚动问题

我正在尝试基于 Delphi 中的画布制作一个小游戏。基本上,我想制作一个相当大的位图(例如 3000x3000),然后将其加载到画布中,并且能够像普通图像查看器一样向右/向左/向上/向下滚动,但是我不能似乎找到了我正在寻找的东西。有任何想法吗?

0 投票
2 回答
7633 浏览

c++ - 有没有一种简单的方法可以在 OpenGL 中获得阴影?

我最近创建了一些景观代码并为场景添加了一些漫射照明,但是令我失望的是,没有阴影。我在网上看了好几个小时,寻找在 OpenGL 中获得阴影的方法,但它们看起来都非常复杂;并且对他们自己的演示程序非常独特。

有没有简单的方法来制作阴影?