现代游戏中的LOD [关闭]


14

我目前正在研究有关LOD和网格简化的硕士论文,并且我一直在阅读有关该主题的许多学术论文和文章。但是,我找不到有关在现代游戏中如何使用LOD的足够信息。我知道许多游戏在地形上使用某种动态LOD,但其他地方又如何呢?

例如,3D图形的详细程度指出,由于连续LOD的性能开销,离散LOD(艺术家需要事先准备好几个模型)被广泛使用。那本书是在2002年出版的,我想知道现在情况是否有所不同。已经有一些使用几何着色器执行动态LOD的研究(例如,本文在ShaderX6中实现),是否可以在现代游戏中使用?

总而言之,我的问题是关于现代视频游戏中LOD的状态,使用什么算法以及为什么使用?特别是,是否使用了依赖于视图的连续简化方法,还是运行时开销使使用具有适当混合和冒充者的离散模型成为更具吸引力的解决方案?如果使用离散模型,是否使用一种算法(例如,顶点聚类)离线生成模型,艺术家是手动创建模型,还是使用两种方法的组合?


我建议添加一个“渲染”标签,因为您对图形LOD完全感兴趣,而LOD也可以应用于物理,AI和可以根据与事物或性能的距离来缩小重要性的任何其他领域。
Kaj 2010年

@Kaj:好点。我特别是在谈论多边形网格的简化。
Firas Assaad 2010年

哦,好像我们在同一时间进行了编辑(我忘记了可以添加标签,随时删除图形编程:o \)。稍后,我将尝试提出答案-今天处于紧急状态。
Kaj 2010年

Answers:


9

目前看来,离散LOD仍然是首选,但是否会随着下一代控制台硬件的改变而改变尚待观察。

值得一提的是,汤姆·福赛斯(Tom Forsyth)写了很多有关连续LOD的东西,他称之为“渐进式网格划分”。Game Programming Gems 2声称拥有其中的一篇文章,但似乎在此处得到了反映。

我相信汤姆的游戏之一是在上一代游戏机硬件上使用渐进式网格划分的。我认为这不是人们担心连续LOD的计算开销。我认为离散LOD更容易。连续LOD确实会在工具管线中起重作用,并且没有足够明显的优势。

至于离散LOD的生成,我们结合使用了自动工具和艺术家创作。DirectX SDK附带了一些用于自动缩小几何图形的东西,我相信我们会以此为第一步,如果质量不够好,则美工人员可以手工或使用Maya中的其他工具生成离散的LOD。


1
我认为,弥赛亚广泛使用了渐进式网格划分,似乎在不久之前,世界也开始对此进行讨论。但我同意,从我的角度看,静态优势似乎仍然很普遍。尽管我确信OP知道很多关于它的SigGraph论文,但是很难通过算法确定保留哪些细节至关重要。顺便说一句,我一直记得的一种可爱的方法是我相信其中一个游戏编程精粹中的“真正的冒名顶替者”一章……在那篇文章中,他们使用冒名顶替者与旁视遮挡贴图。我知道我看过更多使用相同方法撰写的论文(也许是Fabio Policarpo?)
Kaj 2010年

1
抵制连续LOD的另一点是控制台环境中可用的固定内存量。离散对象使您可以抛弃高分辨率模型及其所有依赖的纹理/着色器,并通过简单的着色器和预组合的较小纹理替换成成本更低的模型。在开放世界中,争夺数据填充有限的可用内存通常比CPU / GPU周期更大。
wkerslake 2010年

6
  • 最高指挥官(1&2)-该RTS引以为豪的是,您可以一路平稳地放大以查看战场地图,然后一路放大并管理该区域。当您进行放大和缩小以防止图形卡超载时,它可以很好地使用LOD,并且在一定的缩小级别上,网格被替换为它们的单位类型的2D图像,因此战场地图可以清晰地显示出来。显示事物的位置(因为显然很难在20,000英尺处分辨出真正低细节的3D网格)。您可以在此视频的前几秒钟中清楚地看到2D替换效果。
  • RollerCoaster Tycoon 3-与Supreme Commander相似,该游戏可让您随意放大或缩小,查看整个主题公园或管理单个过山车。它不使用2D图像替换,但是由于LOD,一切都保持平滑;大网格不仅会降低质量,而且当您缩小足够远时,诸如走动的人之类的小细节也会消失。
  • 塞尔达传说:风之杖 -在海上航行时,您可以环顾四周,看看离您最近的岛屿;它们只是岛的轮廓,但是,实际的3D模型只有在您接近岛时才加载。岛上货物的其他特征,例如附近水域的敌人和台风;不幸的是,玩家在接近时可以看到它们“突然弹出”,但是总体而言,这是一种很好的技术,可以防止Nintendo GameCube硬件超负荷运行,同时使玩家在航行中能有相当准确的感觉,并能够区分出地标性岛屿。距离。
  • 上古卷轴IV:遗忘 -我已经很长时间没有玩过这款游戏了,但我知道它的确使用了Silhouetting或真正的低细节模型来绘制遥远的地标结构,例如其中一个城市的高塔和遥远的山脉。

LOD不仅用于地形,还用于远处结构的轮廓以及战略/模拟游戏的鹰眼视图。我不知道算法的详细信息,我想这是您问题的主要部分,但我想为您提供一些有关现代视频游戏中LOD状态的示例。


4

一种用于连续LOD的现代方法是硬件细分。硬件细分是在DirectX 11中实现的,并且实质上提供了曲面的可编程细分。因为这是在GPU上实现的,所以它所允许的细节要比CPU生成的细分提供的细节高得多。例如,通过基于视距细分表面,可以提供连续LOD的形式。

硬件细分是GPU的一项非常新功能,并且没有很多游戏可以利用它。我怀疑确实将其用作凹凸贴图的游戏的游戏-而不是像素着色器中的凹凸贴图,您可以修改实际的几何形状。对于使用硬件细分来简化和改进网格的研究,可能还有很大的空间。

一些其他资源:


到目前为止,我认为它实际上是一种展示技术,而不是实用技术,因为您确实要排除大量目标受众。但是,是的,程序可能以某种形式或形式只是不确定MS的当前实施方式而已。时间会证明一切。
Kaj 2010年


3

LOD是关于尝试使处理量随时间保持恒定。细节层次是唯一可用于具有相当细节的场景的方法。如果您离某个对象足够近,则它将分解为多个对象。此递归LOD不仅提供了一种用于处理转换点的简单机制,以切换到新的详细级别,而且无论您与世界对象之间的距离有多远,渲染调用计数都保持不变。

拥有非常适合您的网格和纹理的LOD都很好,但是在至少一部我在PS2上发售的游戏中,节省时间的方法就是将部门中的所有叶子聚在一起进行单次绘制。与渲染所有低lod变体相比,此较大的绘制调用所花的时间几乎减少了90%,即使使用了精心安排的材质过渡和批量渲染每种类型的网格也是如此。因此,请谨慎考虑LOD。这不仅仅是关于单个对象。这是整个渲染阶段。


1

在您的论文中要考虑讨论的另一个主题(尽管仅就这个主题而言就可以很容易地撰写整个论文)是过程地形的生成。

许多现代项目开始使用实时程序化地形生成来生成大范围的地形(例如Outerra,Infinity(INovae),其中最著名的就是其中之一)。由于网格的程序性质,离散LOD根本不是一种选择。

这些地形通常使用分层结构(例如四叉树)来确定LOD,并根据树节点的深度生成具有适当分辨率的网格。

如果不使用continueos LOD,那么这些出色的项目将根本无法实现。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.