问题标签 [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.
3d - 如何将射线与地形模型相交?
我目前正在 XNA 中设计一款 RTS 游戏。到目前为止,我有一个从 Heigthmap 生成的地形模型和一些在其上绘制的单元。
下一步将是向单位发出关于移动位置的命令。为此,我必须在单击光标时计算光标后面地形的确切位置。
对于单位选择,我只需生成一条从光标指向屏幕的射线,然后选择与该射线相交的第一个单位。现在这不适用于地形,因为整个事情都是一个模型。
谁能帮我?
问候尼克
PS:我刚刚在 youtube 上找到了这个视频,它准确地解决了我的问题......不幸的是,没有任何参考代码。http://www.youtube.com/watch?v=czHW3oK8_oI
3d - 高度图的意义何在?
我一直在思考这个问题……许多 3d 引擎支持使用四叉树、LOD 的高级地形渲染……所有您期望的功能。但是我见过的每个引擎都从高度图加载高度数据......灰度位图。我只是不明白这有什么用 - 高度图中的每个点都可以有 256 个值之一。但是,如果您想为珠穆朗玛峰建模怎么办?1米甚至更大的细节?这远远超出了 256 的范围。当然,我知道您可以实现自己的地形格式来实现这一点,但我就是不明白为什么高度图尽管有很大的局限性,但仍被如此广泛地使用。
java - 分形地形生成问题
我正在尝试让一个简单的 1D 分形地形生成器用于 2D 游戏。但由于某种原因,它总是要么形成一座小山、一条山谷或一条平线,如以下段 (x1, x2, y2) 的输出所示:
范围从 -1 到 1。
这是用于生成关卡的代码。
}
我不确定出了什么问题,感谢您的帮助。
c# - 如何在 3D 地形上创建“烧焦区域”?
我正在尝试使用 C# 和 XNA。学习高级的“ Riemers 教程”对我有很大帮助,但我想让我的地形变得更好。我有一个简单的游戏,玩家控制坦克并摧毁其他建筑物和坦克。我想以某种方式绘制爆炸对地形的影响。我想要的效果在很多新游戏中都可以看到,例如右下角的HERE可以看到地面上有两个黑点(可能是前一段时间那里发生了一些爆炸)。这正是我想要实现的。
有人能指出我正确的方向吗?我认为将需要多纹理,但是当涉及到这一点时,我发现自己有点迷失(所有带有像素着色器的东西......)。这是唯一的方法吗?如果是这样,有人可以帮助我了解如何使其工作吗?还是有其他方法?谢谢。
编辑:忘了说我不熟悉 3d 图形理论。我所知道的一切都基于简短的教程,因此可能需要更详细的解释。目前我不知道如何在已经纹理化的表面上绘制一些东西。
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 的理解出错的地方,将不胜感激。
graphics - 镶嵌过渡
我想实现从精细几何到粗糙几何的镶嵌过渡,反之亦然,用于不会引入不连续性(裂缝)的地形渲染。不需要实时性能,即它可以独立于视图。
您如何看待以下提案:
替代文字 http://www.shrani.si/f/A/qD/2UJlczki/tessellation.png?
- 甚至可能吗?
- 你有没有实现过类似的东西?
- 有什么缺点?
- 你有更简单的建议吗?
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(...) 部分) - 我试图调整相机.. 没有成功
请帮忙,我想在窗口中显示地形....
physics - Box2d - 自行车游戏 - 地形
我正在使用Box2d进行自行车物理游戏,Box2d 让您拥有具有 8 个或更少点的凸多边形的固定装置,除了制作一大堆固定装置之外,有没有人知道更简单的方法拥有复杂的凹形地形?或者这是唯一的方法?
任何想法,指针,建议......在此先感谢!(任何语言都可以)
delphi - 画布/位图滚动问题
我正在尝试基于 Delphi 中的画布制作一个小游戏。基本上,我想制作一个相当大的位图(例如 3000x3000),然后将其加载到画布中,并且能够像普通图像查看器一样向右/向左/向上/向下滚动,但是我不能似乎找到了我正在寻找的东西。有任何想法吗?
c++ - 有没有一种简单的方法可以在 OpenGL 中获得阴影?
我最近创建了一些景观代码并为场景添加了一些漫射照明,但是令我失望的是,没有阴影。我在网上看了好几个小时,寻找在 OpenGL 中获得阴影的方法,但它们看起来都非常复杂;并且对他们自己的演示程序非常独特。
有没有简单的方法来制作阴影?