【发布时间】:2015-03-12 19:46:55
【问题描述】:
我对 3D 游戏(即魔兽世界)中的地图以及程序员如何渲染它们有一些疑问:
-
是否可以通过某种技术“平滑”山脉的边缘,或者唯一可能的解决方案是在高度图中使用更多顶点?
我错了吗,并认为他们为此使用了某种技术,因为他们只是为每座山渲染了相当数量的顶点?
-
看看这张图片:
(来源:gamona.de)关于如何渲染这种场景的一些问题:
- 据我所知,像 WoW 这样的开放世界游戏使用高度图进行地形渲染,他们怎么知道在哪里绘制所有其他内容? (树木、房屋、栅栏、水等)。
- 它们如何渲染地下区域? (山内有一座巨大的城堡)
- 请注意,每个凹凸都使用大约 2 个纹理进行显示(雪和岩石)。他们用来知道何时对每个纹理进行采样的算法可能是什么?它看起来并不依赖于法线。 (我认为他们甚至不会为其地形生成法线。)
- 看起来他们也没有使用天空盒作为地平线。可能是什么技术?
- 您能说出您注意到我可以探索的其他有趣技术吗?
我目前正在学习 OpenGL,但我也标记了 DirectX,因为这些问题并不是特定于 API 的。
【问题讨论】:
-
纹理喷溅可以应用多个纹理。这是来自frostbyte引擎的一篇有趣的文章。 dice.se/wp-content/uploads/…
-
这个问题太宽泛了,比如你可以在你完成的模型上使用细分曲面en.wikipedia.org/wiki/Subdivision_surface 使其更平滑,或者你可以使用着色器来改变它的几何形状,还有其他方法可以取得相同的结果。
标签: opengl directx textures shader terrain