gpt4 book ai didi

opengl - 游戏中的 3D map 渲染

转载 作者:行者123 更新时间:2023-12-03 02:25:30 25 4
gpt4 key购买 nike

我对 3D 游戏(即《魔兽世界》)中的 map 以及程序员如何渲染它们有一些疑问:

  1. 是否可以通过某种技术“平滑”山脉的边缘,或者唯一可能的解决方案是在高度图中使用更多顶点?

    enter image description here

    我是否错了,认为他们为此使用了某种技术,因为他们只是为每座山渲染了相当数量的顶点?

  2. 看一下这张图片:

    enter image description here
    (来源:gamona.de)

    有关如何渲染此类场景的一些问题:

    1. 据我所知,像《魔兽世界》这样的开放世界游戏使用高度图进行地形渲染,他们如何知道在哪里绘制所有其他内容? (树木、房屋、栅栏、水等)。
    2. 他们如何渲染地下区域? (山里有一座巨大的城堡)
    3. 请注意,每个凹凸使用大约 2 个纹理进行显示(雪和岩石)。他们使用什么算法来知道何时对每个纹理进行采样?看起来并不取决于正常情况。 (我认为他们甚至没有为他们的地形生成法线。)
    4. 看起来他们也没有使用天空盒作为地平线。可能是什么技术?
    5. 您能说出您注意到我可以探索的其他有趣技术吗?

我目前正在学习 OpenGL,但我也标记了 DirectX,因为这些问题并不是真正特定于 API。

最佳答案

很难从你的高度图上看出(主要是因为你没有任何照明),但我想说,在你的例子中,他们使用的分辨率基本高度图几乎可以肯定比你使用的要高。

现在,与其他一些海报所暗示的不同,景观不太可能在 3D 建模包中建模。他们也不太可能使用 B 样条线来渲染景观。

使用更高分辨率的高度图的最大问题是内存要求。为此,有多种不同的解决方案可以“优化”存储在内存中的高度图数据。附近的风景不需要像远处的风景那样多的细节。

渲染大量高度详细的景观几何图形的真正好技术是 geometry clipmaps 。但它相当复杂。我过去使用过的另一个取得巨大成功的方案是 Geo-Mipmapping 。它非常简单而且非常快。如果您将三线性过滤技术应用于 Geo-mipmap,它也会产生出色的结果。为这样的景观编写一个异步 block 加载器来为巨大的景观提供良好的流性能也是相当简单的。

无论如何,我会回答你的其他问题。

  1. 根据 hbdavehb 的建议,他们将有一个加载景观的编辑器,然后他们可以将项目放置在 map 上(最有可能的是,编辑景观)。模型将在 3DS Max 或 Maya 中创建,然后加载到编辑器中进行放置。

  2. 它们是用其他形式的渲染器渲染的。经常是portal renderer或者可能是BSP renderer .

  3. 此技术称为 texture splatting .

  4. 对我来说看起来像一个天空盒。我猜它可能是天空盒上的动态渲染。

  5. 这个列表很大。但我建议研究各种图像映射技术,例如 bump mapping (特别是normal mapping),cube mapping , Parallax mapping , Displacement mapping 。然后就是照明技术,例如global illuminationPhong illumination (与 Phong shading 不同), bidirectional reflectance distribution functionsprecomputed radiance transfer 。这只是表面现象。我强烈建议您好好阅读。 Computer Graphics: Principles and Practice by Foley et al.是一本关于渲染的优秀书籍。 GPU Gems series也很好。对于 3D 渲染技术的历史,在我看来,这仍然是一本非常有用的书,值得一看 Michael Abrash's Black Book也是如此。

祝你好运!

关于opengl - 游戏中的 3D map 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27946119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com