问题标签 [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 投票
1 回答
473 浏览

terrain - Netlogo 地形创建和传播

我需要一些帮助来设置特定的地形。我有一个 200x200 补丁的世界,每个补丁的大小为 2 像素。我正在尝试做的是从原点开始建造一座小山,然后将高度均匀地分布到世界的边缘。

原点大约有最高海拔:999,边缘周围的补丁的高度接近0。从世界的边缘,高度应该不断增加,直到它到达原点但是,我似乎不能让山丘延伸到世界的边缘 - 中间有一个小凸起,世界其他地方完全平坦。

任何人都可以帮助设置地形并解释如何使高度正确扩散吗?

这是我到目前为止的代码:

0 投票
2 回答
801 浏览

c# - 如何向我的“perlin”噪声发生器添加比例因子?

我有一个 Perlin 噪声发生器,我试图用它来创建滚动地形。

我有一个中心地形,围绕它的同一侧的八个地形(这些都工作正常)和第二个地形环,它的三倍大。对于这些,我需要我的噪声发生器输出“密集”三倍的噪声,这样我就可以将更大的地形放在更小的地形上,并且除了三倍大的图块(和地图大小)之外,它们会匹配.

我不想只生成更大的地图;这很快就会变得令人望而却步。

我不知道该怎么办; 显而易见的解决方案都以某种方式失败了。

谢谢。

0 投票
2 回答
4089 浏览

c# - 如何在 XNA 中制作地图编辑器

我制作了一个从高度图文件生成的地形,其中每个像素(黑色到白色)代表相应位置的地形高度。

现在,我的问题是如何为这样的东西制作地图编辑器?我可以想到两种一般的方法:

1) 地图编辑器修改高度图文件,并以此为基础重新生成地形。

2)地图编辑器直接改变地图的顶点,然后在保存过程中根据这些顶点生成高度图。

你有什么好的教程或资源来说明如何让其中任何一个工作吗?我不知道从哪里开始。

0 投票
3 回答
462 浏览

c++ - 在 directx 应用程序中,找到已知位置的 z(地形)

我的英语知识不足以告诉我的问题。我第二次使用stackoverflow。

我正在连接一个directx 应用程序,我可以在屏幕上写一些东西并从屏幕和其他东西中获取输入。

这个游戏有地形,有很多玩家。我可以直接编辑播放器位置(x、z、y)。但是当我编辑 x 和 z 坐标时,玩家正在飞行 :) 因为我不知道如何计算 y 坐标(地形高度),我无法计算它。

玩家坐标为 700, 5.41, 600

当游戏将其编辑为 800 和 700 时,游戏将 y 设置为 6.50

当我将其编辑为 800 和 700 时,y 坐标仍为 5.41

6.50为坐标,地形高度为(800, 700),5.41为700,600地形高度。

有没有办法获得特定坐标的地形高度?

非常感谢。

0 投票
3 回答
418 浏览

algorithm - 从观察到的日出中计算二维地形的算法

南美洲的一群人站在赤道沿线的点上,彼此等角距离(从地球中心测量)。由于多山的地形,它们各自站在不同的高度。我们的目标是使用手表确定它们的高度。

在春分时,当太阳从正东升起时,每个人都专注地等待并记录(以令人印象深刻的精确度和准确性)格林威治标准时间首次出现太阳尖端的确切时间。对于一些人来说,这是它出现在可爱的南大西洋地平线上的时候。对于其他人来说,这是它从山顶的山脊上窥视的时候。

给定一个将观察者的经度与他们第一次看到太阳的时间配对的元组列表,你能对沿赤道高度的特定采样做出任何具体的声明吗?您是否必须知道第一个观察者的海拔高度(在这种情况下,海拔 0',脚趾在海滩上的水中)?是否需要团队人员完全覆盖赤道、环绕式?如果你用这个数百人的微不足道的团队无法解决它,你能用几乎无限数量的观察者来解决它吗?

不,这不是作业问题。

0 投票
2 回答
1398 浏览

algorithm - 2D 地形生成

“月球车”、“960 号公路”或类似游戏中的地形是如何制作的?

我并不是指具有许多山峰的“Scorch”或“Worms”之类的地形,但我正在寻找一种方法来生成具有丘陵和沟渠的平滑地形,平滑到足以让车辆驶过它。

0 投票
2 回答
3577 浏览

java - 游戏中的地形和碰撞

我正在尝试创建一个新游戏,其中车辆沿地面行驶,但也有能力使用推进器暂时悬空。

我对游戏编程比较陌生,但我很擅长用 Java、C、C++ 等进行编码,所以我认为这不是问题(认为游戏的第一次迭代是用 Java 编写的)。我的问题是我从头开始,想不出一种方法让地形成为障碍,这样车辆就不会直接穿过它。我怎样才能让他们受到坠落伤害?

过去人们把我引向复制岛源,因为它已经在里面了,我看到了整个碰撞系统,但到目前为止我还无法理解它,我希望有人愿意帮我一把。

谢谢

-罗芙拉

0 投票
2 回答
3811 浏览

math - 如何正确获取缩放地形中点 (x,z) 的地形高度

为了正确地将高度图图像的每个像素映射到地形,我们最终会得到一个宽度和长度都比高度图的实际宽度和长度少 1 个单位的地形。例如,如果我们有一个只有 2 个像素宽的图像,每个像素将映射到四边形的每个顶点。我们有 2 个像素,但只有 1 个地形单位。

我试图通过缩放地形以填充地形末端的空四边形来“解决”这个问题。但是,当我尝试获取某个 (x,z) 点的地形高度时,这是有问题的。问题并不完全是您将看到的缩放。

首先,让我们看一下有效的代码。缩放不考虑丢失的四边形的那个。我有一个 1024x1024 高度图,它将创建一个具有 1023x1023 四边形的地形(我实际上使用的是三角形,但用四边形很容易解释)而无需任何缩放。

现在让我们通过将适当的参数传递给以下函数来将地形缩放到类似 2000x2000 的大小:

当我绘制地形时,我使用stepWidthstepLength适当地缩放地形。地形将被缩放,但只会使用 1023 个四边形,总是 1023,不再有(这很好)。现在假设我正在移动我的游戏角色,我需要获取当前玩家位置的地形高度。我有一个函数,它将获取玩家位置的xz坐标并返回该点的高度。但是由于地形尺寸是缩放的,我不能只使用xandz传递给函数,我需要计算正确的,如下所示:

之后,我只需要找到新的 4 个相邻顶点,x并对z所有顶点高度执行双线性插值,以计算玩家位置的正确高度。

这一切都很好。正确绘制了地形,并正确计算了所有高度。我的问题是当我试图绕过这个问题开头解释的“限制”时。

为了解决这个问题,我将 scale 函数更改为:

假设我的地形大小(我传递给上面缩放函数的值)与高度图的大小完全相同,即 1024x1204。这将为我提供一个步骤,1.000977517106549364613880742913使 1023 四边形完全适合 0 到 1024(地形的大小)。到目前为止一切顺利,地形完全按照我的预期绘制。

真正的问题是计算高度。我已经尝试了很多事情,但我无法弄清楚计算正确的方程式xz用于返回高度的函数,给定上面的新步计算。像我以前那样潜水xz步长根本不会削减它。现在计算的步骤略有不同,不像以前那么简单。

0 投票
1 回答
227 浏览

c# - 图形故障 Xna GraphicsTutorial - 调试

我的地形变得像这样奇怪的颜色:

http://tinypic.com/view.php?pic=307w421&s=7

有谁知道这里出了什么问题?我应该在代码的哪个区域(从概念上)进行调试?

更新:

它来自我学校的教程,基于:http ://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Starting_a_project.php

我们使用了 BasicEffect 着色器并制作了引擎的各个部分,例如:相机、从高度图派生的 3d 顶点地形、基本照明、基本软法线和用于优化的缓冲区。

VertexPositionColorNormal 结构:

0 投票
2 回答
2600 浏览

c++ - 帮助使用 perlin 噪声库 libnoise

当我使用 x、y 和 z 作为整数调用 libnoise 的 getvalue 函数时,结果总是返回 0。这是正常的吗?当我按照教程http://libnoise.sourceforge.net/tutorials/tutorial2.html尝试1.25、0.75、0.5 时,我得到了 0.686347 的预期结果。具体来说,我已经尝试过使用 20 以下的整数。我只是不明白它是如何工作的吗?

任何帮助是极大的赞赏。