当前位置:首页 > 新闻中心 > 产业政策 > TGDC2022 | 自动化建模:走进手游中低模网络生成的技术实践

TGDC2022 | 自动化建模:走进手游中低模网络生成的技术实践

时间:2024-10-11作者:就爱游戏网整理来源:厂商我要评论

在由腾讯游戏学堂举办的TGDC2022腾讯游戏开发者大会中,腾讯互娱光子工作室群专家研究员高希峰和高级研究员武奎,以游戏中的“建筑模型的低模网格生成”为题,为大家分享了他们在自动化建模时,对算法的思考以及所运用到的技术。


以下是演讲实录:

就爱游戏网


高希峰:大家好,我是高希峰。欢迎来听武奎和我的报告,我们都来自光子工作室群的技术中心,我们报告的主题是“针对建筑模型的低模网格生成”。


就爱游戏网

 

顾名思义低模网格与高模网格相对应,低模和高模在这里是指网格中包含的三角形面数的多少,针对高模网格输入它的低模网格的生成对高效率的计算至关重要。


根据需求的不同,低模网格会有不同的应用场景,比如对于3D游戏中渲染所用的LOD技术,当场景离视点近的时候渲染高模离视点远的时候 渲染模型的低模,这样就可以在不降低渲染效率的同时保持高质量的渲染效果。


低模的使用对游戏的实时运行起到了关键的作用,还有同样可以用来提升渲染效率的建筑的遮挡体,它是建筑物的内嵌低模网格表示,可以在渲染开始之前就将遮挡的物体排除掉,以降低渲染时需要处理的数据量。


就爱游戏网


用来生成动画的cage,也是一种形式的低模网格。通过建立该cage与被包围物体的对应关系,动画师可以很容易地通过拖拽cage来变形高模,并以此来制作动画的关键帧。还有对物体生成碰撞体,也是用低模换取高计算效率的一个典型应用,它在游戏和机器人研究等领域比较常用。


在本次报告中,我们重点关注针对LOD的低模网格生成和建筑物的遮挡体生成。


就爱游戏网


在很多游戏中建筑是不可或缺的场景元素,这里我贴了几个比较有名的游戏里面涉及到建筑的截图。


建筑有几大特点:第一块头大,相比人物来说它们的屏占比大;第二,它们是3D场景的主要组成部分,通常占据运行游戏时所消耗的计算资源的大部分;第三,它们通常是静止的,在设计自动化的低模网格生成算法的时候,我们基本上不需要考虑时间维度的影响。综上,我们认为针对建筑进行低模网格的生成会有比较大的应用价值。


就爱游戏网


既然如此,我们来看一下针对建筑这类模型。我们在设计自动化算法的时候会有哪些挑战。最大的挑战是来自于这些模型的高模本身,也就是美术人员在创建这些模型时所考虑的因素,与自动化算法对输入模型的特征的期待有很大的区别。


简而言之,美术建模更关注高模的外观质量而忽略后期对模型进行计算所需要的数学性质,而一般涉及自动化算法时,研发人员关心的更多的是模型的几何质量和拓扑复杂度。


就爱游戏网


举个例子,这个模型是某游戏里的一个建筑,看上去形状普通简单、外观整齐,它也只包含有6000多个面,但它却有至少100多个互不相连的模块,有5000多个相互交叉的三角形对,它的拓扑是非流形的,它有大大小小的洞和缝隙,也有互相重叠的三角形、退化的单元等等各种问题。


而这个模型只是万千建筑模型中的很普通的一个。这里展示的是我们收集的一个,包含有100个建筑模型的小型数据集,这些模型都是在游戏中实际使用的,它包含有各式各样建筑风格的,欧式的、中式的、罗马的、古埃及、日式等等。也有不同时代的,维京时代到罗马时代到现代等等,这些建筑模型的复杂程度不一而足。


在游戏的实际制作过程中,生成这些模型的低模网格通常会花费美术人员几周的时间。对于输入高模美术一般会用自动化工具简单处理一下。对于低模网格的生成,根据美术反馈,大多数情况下自动化工具的结果无法使用,它们还是要通过交互式的建模软件来进行制作。


就爱游戏网


据我们工作室的某个技术美术介绍,对于一个包含有几十个模型的场景,一个美术一般需要一整周的时间来得到第一个低模网格版本,后面还需要至少一个周的时间来进行版本的多个小型的迭代。

在实践中,这个过程只会更加复杂,包括沟通、制作样例模型来选择外包公司等等。关键是对于美术来说,低模网格的生成毫无艺术创作可言,体力劳动占主要成分,因此开发一套能满足应用需求的自动化算法显得既迫切,又具有挑战性。


就爱游戏网


接下来针对输入到高模网格,我会先介绍我们开发的针对LOD的低模网格生成技术,后面武奎会讲解关于建筑的遮挡体自动生成。


我们先开始LOD的低模网格生成讲解。低模网格生成为游戏在高中低等不同平台的实时运行提供了数据基础,这一点对于手游来说更为突出,因为手机的计算资源非常有限。针对LOD生成的低模网格需要满足以下几点:


就爱游戏网


第一,它与高模在远处,渲染出来的相似度要高,轮廓边界要保持;第二,它包含的三角形面片数要尽可能得少,很多时候只能有几百个三角形、甚至几十个;第三,就是它需要有好的几何质量和拓扑简单性,这有利于后续的UV自动化计算和纹理烘焙。


就爱游戏网


确实市场上有不少3D建模和网格简化工具,比如说Blender里面的网格减面模块,UE里面的LOD组件,这两个都是开源软件,里面集成的算法是基于传统的QEM减面算法,还有专门提供LOD相关功能的Simplygon和InstaLOD,这两个商业软件它们都自称为行业内的LOD解决方案的标杆。


学术界里生成低模网格的方法就更多了,比如前面提到被很多开源软件和类库集成的通过边折叠的方式来减面的QEM算法,对三角形进行聚类的VSA算法,还有非常多的基于它们的拓展的方法,对形状进行抽象抽取的方法,通过对高模进行体素化然后再减面的caging的算法。


就爱游戏网


还有对点云数据进行平面拟合,然后再应用混合整数优化来生成低模网格的研究。机器学习的方法也被用来对输入的一组图片、视频或高模来生成简单的网格。可微渲染也是一个很有潜力,可以被用来生成低模的方向。


我们对前面提到的大部分方法和软件都进行了测试,但它们生成的结果基本无法被利用。


就爱游戏网


这里展示了对两个包含有大约1万个面的模型进行测试的例子,其中数字表示网格的三角面面片数目。从图中可以看到,已有方法生成的结果,要么无法减面,要么与高模外形差别很大,要么算法不鲁棒,无法输出任何结果。


就爱游戏网


这里展示了对Simpygon和InstaLOD中,提供的不同低模网格生成算法的测试示例,他们的结果要么包含原来的模型中没有的洞,要么包含破面无法被游戏使用。


我们提出了一个适合处理游戏中建筑模型的简单有效的低模网格生成算法,与之前大部分工作将重心放在保高模的几何特征不同,我们算法的设计原则就从LOD需求的根本出发,将渲染相似性的度量贯穿于我们的整个算法设计之中。


就爱游戏网


具体地,我们是利用visual hull的概念来先生成一个保渲染相似性且拓扑简单有保证的代理网格,然后再通过传统减面方法来得到我们想要的低模网格。


就爱游戏网


这里提到的渲染相似性指标在之前的学术文献中多有提及。我们在算法设计中使用的是直接以高模低模为中心,一定距离为半径的球面上进行视点采样并对模型进行渲染,然后计算所有渲染图片差异的平均值。为了公平起见,我们在实验结果对比时用的是Eurographics的一篇计算两个模型的光场距离,也就是Light field distance的评价指标。


就爱游戏网


接下来讲一下我们的算法流程,主要分为三步。给定一个输入高模,注意对于某些桌面和游戏机游戏来说这样的模型已经被认为是低模了。我们首先基于visual hull的概念来生成一个保持高模视觉轮廓边并且拓扑简单的visual mesh。


然而该visual mesh可能会包含有多余的体积,无法捕捉到高模的凹状结构。接下来我们运用对visual mesh进行雕琢的方式,将高模的凹状结构还原出来生成carved mesh。最后通过传统的边折叠和边翻转的方式来对carved mesh逐步减面,获得最终的低模网格。


就爱游戏网


接下来我们看一下每一步的细节。我们首先讲一下visual mesh的生成。visual hull传统上是用来计算三维重建的,通过对物体在不同角度下建立视锥体,并对这些视锥体进行求交来获得重建的三维模型。所以视锥体越多,也就是视点越多,重建的模型就会包含越多的细节。


与之不同的是,我们希望得到的visual mesh,它不仅要与高模在不同视角下看上去相似,还要具有网格的简单性,因此我们需要限制视角的数目来平衡visual mesh的渲染相似性,以及网格的简单性。


相对应的,我们设计了一个简单有效的算法,该算法包括三步。第一个,我们通过一组投影平面来得到一个相对大的三维几何体集合;第二步,我们就将高模的包围盒,当做初始的visual mesh。从这一步开始,并将其与集合里面的3D几何体进行求交来迭代的增加visual mesh的细节,最后我们是通过两个合理的停止条件对visual mesh的优化施加限制。


就爱游戏网


首先我们看一下如何构建3D几何体的集合,对于输入的一个高模,我们将其通过正投影的方式投影到一组相机视角平面上,来获得一组轮廓边。


这里是对应很多投影平面的一组轮廓边。沿着每个轮廓边所在的投影平面的垂直方向,我们进行扫掠直到覆盖原始的模型,我们就会得到相对应的一个3D几何体。这样的话我们就会得到一个包含有很多3D几何体的集合。


注意,在对每个轮廓构建3D几何体之前,我们会对它做几何简化和拓扑拆分。所谓的几何简化,就是去掉轮廓的局部细节,以使得生成的几何体只包含大的特征。


就爱游戏网


如图所示,左边是原始的轮廓,右边是经过简化后的轮廓。


就爱游戏网


对于拓扑拆分呢,如图所示,是将左边的轮廓边围成的带多个洞的多边形,拆分成一个不带的洞的多边形,和几个只有一个洞的多边形,然后我们再对每个拆分后的多边形进行3D几何体的构建,这样就会使得构建的结果拓扑更加简单。


下一步就是从高模的包围盒开始,迭代地将几何体与visual mesh进行布尔交运算,并选择使得求交后的visual mesh与高模的渲染相似性最好的几何体相对应的求交结果来更新当前迭代的visual mesh。


在更新的visual mesh基础上,我们继续选择新的最佳几何体与它进行布尔交运算。这样得到的visual mesh的细节,就会以使得在提高渲染相似性,最大可能的方式不断增加。该过程不断地重复,随着每次迭代所能增加的渲染相似性越来越小,或者我们所选择的几何体数目越来越多,Visual mesh的外观也会趋于稳定。


就爱游戏网


所以我们迭代的停止条件就是,当渲染相似性的改变小于epsilon,或者已经选择的几何体数达到N的时候。


就爱游戏网


该图的最左边是高模,右边依次对应epsilon越小的时候,我们算法所生成的visual mesh。


这里展示了通过控制epsilon的大小,我们的方法可以调节visual mesh与高模的渲染相似性和几何的简单程度。生成的visual mesh,虽然有很好的保持高模的轮廓边,但是无法捕捉到高模里面某些重要的凹陷结构。


就爱游戏网


接下来,我们看一下这一问题是如何通过生成carved mesh来解决的。生成carved mesh的算法跟生成visual mesh的算法在流程上是一模一样的。也是先构建一个大的3D几何体集合然后在贪心的依次添加使得当前视觉相似性提升最高的几何体来给carved mesh添加细节。最后我们使用同一组停止条件。


与visual mesh生成方法所使用的布尔交运算不同之处在于,这里的3D几何体的生成方式和选择方式都是通过布尔差运算得到的。


就爱游戏网


具体地说,对于输入的一个高模,通过分析它的面片几何特征,我们计算一组切割平面,每个切割平面都会把高模切成两个网格。我们将位于平面法向方向的网格,正投影到该切割平面上,然后对切割平面上一个包含高模的平面包围盒和投影的轮廓进行布尔减运算,得到一个不包含高模投影区的带洞的多边形。


就爱游戏网


在这里注意,我们同样的对于获得的多边形,进行前面提到的几何简化和和拓扑拆分,通过将这个经过处理后的带洞多边形沿着法向方向进行拉伸,这样我们就可以得到一个3D的几何体。对每个切割平面进行如此操作,我们就可以得到一个大的3D几何体集合。

 

就爱游戏网


下一步就是将之前计算的visual mesh,作为初始的carved mesh。通过将它与集合里面的3D几何体进行布尔减运算,并与高模进行渲染相似性对比,我们可以选择出当前迭代最合适的3D几何体。


就爱游戏网


这是应用布尔减运算后的结果,很大的一个凹槽结构就被计算出来了,该网格我们会把它作为新的carved mesh。


就爱游戏网


同样的,这是下一次迭代选择出的几何体。


就爱游戏网


就爱游戏网


就爱游戏网


这是做布尔减运算后的结果,再次新一轮的选择,因为渲染相似性的提升,在这里就达到了停止条件,那我们就会得到最终的carved mesh的结果。


有了carved mesh的之后,与高模的渲染相似性已经被满足了,但carved mesh的面数很有可能不满足用户的需求,最后我们就通过边折叠和边翻转的方式来逐步的减面,最终满足用户的需求。


就爱游戏网


对生成的低模网格,我们采用三角形面数来衡量它的简单性,用光场距离来衡量它与高模的渲染相似性,这两个指标都是越小越好。对应于柱状图也就是越靠近左边越好。


我们的低模网格生成算法,可以处理具有任意几何和拓扑复杂的三维模型,与目前流行的商业软件和State-of-the-art相比,我们的方法在测试数据集平均而言取得了最好的效果。


就爱游戏网


这是对于之前展示的例子应用我们的方法的对比图,我们的结果不仅与高模外观相似,而且面数可以满足用户的需求。


除了与已有的软件和公开的算法对比外,我们还比较了其他两个虽然没有公开,但比较容易想到,而且也可能被解决这个问题的方法。


一个是通过将高模当成现实中的物体,对它进行三维重建,然后再应用传统的QEM减面的方法。给定一个输入,包含有一万个面的高模。我们先通过模拟点云扫描软件,对其生成包含有30多万个点的点云,然后将点云的每个点投影到原始高模上,来估计点的法向,再通过泊松重建来生成一个包含有30多万个面的三角网格。


就爱游戏网


到此为止,重建的三角网格跟高模是大体相似的,而且它是流形的、没有自相交,也没有内部嵌套的结构,最后对嵌套的网格应用QEM算法,一个保拓扑的减面结果和一个不保拓扑的减面结果。


另外一个方法是对输入高模先做一个网格修复,然后再应用QEM进行减面,这是对同一个输入高模,用了一个发表在SIGGRAPH 2021上SOTA的网格修复方法的结果。


这个修复方法可以将高模中的自相交、非流形等问题解决掉。这是对修复的网格,分别应用保拓扑和不保拓扑的QEM进行减面的结果。


就爱游戏网


这是我们的方法产生的结果,把这两个方法的结果与我们的放在一起可以看到,我们的方法生成的结果面数更少,而且与高模的外观上也更加相似。


从前面的对比实验可以看到,我们的方法取得了相对较好的结果。究其原因,我们认为主要是由于以下几点:


就爱游戏网


第一,是我们对待低模,尤其是超低模的网格生成这个问题,我们是从重新网格化,而不是逐步地减面这个角度来考虑它的解决思路。在算法设计步骤上,我们是先生成一个几何和拓扑干净的,并且保持与高模的渲染相似性的代理网格,然后再逐步地减面的方法。


如何构建前面的代理网格,我们做了多种尝试,最后选了visual hull这个概念,它既能保渲染效果又有拓扑的水密性和几何的无自相交这几个特性。我们在具体实现过程中使用了有理数和整数等精确表达数值的方式,来确保算法中涉及到几何算法的鲁棒性。


就爱游戏网


这是关于我们算法的时间统计图,其中每个红点代表了一个高模,横坐标是高模的面数,纵坐标是该高模生成低模所需要的以秒计算的时间。


我们的算法对测试数据集里面85%的模型都可以在3分钟之内计算结束,但有些模型需要高达几个小时。其中最耗时的是一个高模包含有3000多个不相连的模块。这些严重影响了我们算法中对高模进行平面上轮廓多边形的计算时间。这一步骤我们现在是用精确的布尔运算,之后我们可以用光栅化的方式来进行加速。


在这里我必须说明的是,我们目前实际算法时更注重它产生的结果质量而不是效率,所以现有的减面工具比如Simpygon InstaLOD等,它们的计算时间非常快,一般在几秒钟内,这是我们的方法所不及的,并且需要进一步优化的地方。


就爱游戏网


另一个问题是,我们的算法仅适用于来生成低模网格,针对中模的生成、个人认为当前解决方案大部分情况下也能提供不错的效果。


到这里我就介绍完了,接下来由我们技术中心的武奎博士,来讲解一下针对建筑物遮挡体的自动生成技术。


武奎:大家好,我是武奎,接下来我会为大家介绍一下我们遮挡体的自动生成技术。在介绍我们的遮挡体生成算法之前,我先大概介绍一下,这部分相关的背景知识。


就爱游戏网


首先是culling也就是剔除技术,如图所示假设我们的场景中有一些盒子,然后人的视角从左向右看,那在屏幕上画这些盒子之前,我们可以先把看不到的面片提前剔除掉。


常用剔除技术包括视锥体剔除,就是把在视锥外的物体先剔除,因为是肯定看不到它们的。第二个就是背面剔除,如果面片的方向是背向相机,那我们也可以安全地剔除它。最后就是遮挡剔除,如果物体在其他物体的后面并且完全被遮挡,那么我们也可以提前剔除这些物体。


就爱游戏网


提前剔除的好处首先是降低GPU的计算量,我们游戏中的建筑物模型通常都有几千到上万个面,如果每个面都走一遍渲染管线本身就是巨大的性能消耗。


其次把这么多的面片从CPU传输到GPU也需要占去巨大的带宽,为了节省GPU的计算量和带宽,一个常用的技术就是光栅遮挡剔除RoC,核心的想法就是把模型传到GPU做光栅化之前,先在CPU用简模也就是遮挡体做一遍遮挡剔除,把看不到的模型和面片在CPU端就提前剔除掉。


就爱游戏网


这里遮挡剔除的准确性和效率,就取决于遮挡体的质量。具体来说,遮挡体的面片要尽量少,要尽量接近原模型,最后遮挡体必须是Conservative,也就是说遮挡体不能大于原模型。


就爱游戏网


下面我详细解释一下这三个需求,这是我们的一个输入的建筑物模型,我们把它光栅化到屏幕上,这里的每个格子代表一个像素,红色的就是输入模型所占的像素,假设黄色是遮挡体所占的像素,那我们肯定希望是红色的黄色的像素重合得越多越好。


就爱游戏网


如果我把这两个图叠加在一起,大家就可以看到,现在红色的像素是原模型有而遮挡体没有的,我们称之为missing,那missing多的话造成的问题就是,原本应该被遮挡的物体,并没有被剔除,那么GPU就要做更多没有必要的剔除工作,减低了渲染的性能。


但相反这里的暗黄色的是原模型没有,而遮挡体有的像素,这个可能会错误地剔除原模型没有的遮挡物体带来严重的视觉问题。


就爱游戏网


比如这个例子中,本来后面的模型不应该被剔除掉,因为前面模型遮挡体的误遮挡,造成了后面的建筑物会时隐时现,所以相比较missing来说,误遮挡在实践是不能被容忍的。


就爱游戏网


我们可以把原先的两个标准,转化为定量的标准,那越接近原模型意味着missing越少越好,conservative就是错误遮挡的像素越少越好,刚刚高教授也介绍了LOD的自动生成,这里要提的一点就是,和LOD相比,对遮挡体的需求有很大的不同。


就爱游戏网


那首先LOD要求的和原模型尽量相似,但不一定要严格的比原模型小,另外因为LOD要被渲染出来,用户可以看到LOD模型,所以LOD要尽量是水密,上面还有贴图,用户会在远端看到这个LOD模型,那遮挡体的话只是用来做剔除,不会被渲染,用户看不到的话就不需要有贴图和水密。但是遮挡体不能比原模型大,而且用户是可以走近的,这个对精度和conservative的要求就会更高一些。


讲完需求,那现有的遮挡体的生成算法主要分为三类,体素化、重网格化,或者是在模型中插入一些大的面片来充当遮挡体,我们称之为插片的方法。


我们分别测试了一下这三类方法的效果,最左边是输入的模型,第二个是体素化的结果。先体素化再提取等值面的方法会受到体素化分辨率的影响,很容易漏掉很薄的面,但是这些墙、很薄的墙对遮挡率的贡献率可能是非常大的。


就爱游戏网


第三个是基于QEM也就是边折叠减面的方法,该类方法比较常用在工业级软件中比如simplygon,但是因为没有考虑遮挡的问题,很容易造成误遮挡,比如图中原本有个门,但是在遮挡体中就被挡住了。


最后插面的方法也是要先体素化来判断模型的内外,所以结果的质量会受到体素化质量的影响,而遮挡率本身是不会超过体素化的方法只是面片可能会少很多。


现在游戏中还是大量采用手工制作遮挡体,一个遮挡体一般得需要几个小时的时间,而且在人工生成的过程中因为无法验证误遮挡,也可能会反反复复修改很多次。


就爱游戏网


我们这次开发一套自动遮挡体生成的算法如右图示,可以在很少面片的前提下达到较高的遮挡率和很低的误遮挡率,我们的观察是现在没有一个方法,可以通用的支持所有的情况。那体素化的方法,很容易漏掉细薄但是大的结构,而且当结构很复杂的时候,等值面是无法正确的计算,而边折叠这类方法不是conservative的也无法处理不连接的部分。


就爱游戏网


我们提出的方法是,虽然每个方法都不能完全的解决问题,但是如果我们把不同方法结合在一起后,就能有一个比较好的遮挡体的初值。然后我们再利用遮挡率的评估来优化遮挡体的面片,来达到一个比较好的最终的遮挡体。


就爱游戏网


这里我们用了两个方法来生成遮挡体,一个是基于面片,一个是基于体素化的方法。


就爱游戏网


就爱游戏网 


基于面片的方法,我们先按照相邻面片的二面角,把面片分组分为平面和曲面两类,对于每组面片我们先使用QEM减面,然后填洞,最后去掉面积比较小的面片,基于面片的结果就如右图粉色的模型所示。


就爱游戏网


基于体素的方法,我们首先利用winding number卷绕数对模型进行体素化,然后提取等值面,这个时候就可以进行边折叠的简化。但是像之前说的,边折叠的简化会造成不是conservative的问题。


就爱游戏网


为了解决这一问题,我们需要再求解一个优化的问题,把简化后的面推到原模型的内部。


这里我们的优化问题是希望每条边都和原模型一样长,和原来的边一样长,同时面上的每个点在有向距离场的值都是非正的,在定义这两个能量后,我们就可以通过解一个优化问题,来把遮挡体压缩到原模型的内部。


在合并基于面片和基于体素化的结果之后,就有了初始的遮挡体,下一步我们希望基于遮挡率的评估来优化遮挡体。


就爱游戏网


为了准确计算遮挡体的质量,我们在整个空间内均匀的撒点,每个点我们向上、下、左、右各光栅化一张图片,在每张图片上计算重合的、错过的和误遮挡的像素的数量。

然后我们就可以定义两个metric,一个是准确率,一个是召回率,准确率越高误遮挡率就越低,召回率越高渲染完全可以遮挡物体的概率就越低。所以对于一个遮挡体来说,我们是希望它的准确率和召回率都是越高越好。


就爱游戏网


这里最暴力的算法就是对每一个面测试一下它对准确率和召回率的贡献,然后去掉那个影响最小的,然后再重新评估,直到面数达到我们想要的面数为止。


但是这个算法的计算复杂度是n的k次方,基本一个模型都要一两个小时的时间,在实际中是无法使用的。


就爱游戏网


我们新的算法是,我们临时先去掉每个面计算一遍准确率,然后删掉那些会造成误遮挡的面片,因为删除的面片不会降低其他面片的误遮挡率。第二轮我们再评估每个面,去掉那些对影响不大的面片。


就爱游戏网


为了加速这一计算,我们首先,使用了一个Sample reduction的技术,如果相邻的sample都存在的话,我们会把它们合并在一起,最后按照sample点占据空间体积的大小来计算加权的准确率和召回率。


就爱游戏网


同时,我们会跳过那些看不到的建筑物的视角方向,比如图中所示的方向其实是看不到建筑物的,所以它对遮挡体的评估是没有影响的。


就爱游戏网


并且我们只更新,在删掉面片后受到影响的视角,比如图中我们删掉一个向上的面,但是它对看不到它的sample点是没有影响的。


经过测试,假设原本的sample数量是100%的话,在sample reduction,sample skipping和partial update之后,sample的数量会降到原来的5.9%,速度提升近20倍。


就爱游戏网


下面是一些例子,最左边是输入的模型,第二个是基于插片的结果,第三个是simplygon的结果,最后是我们的结果。


这里值得一提的是,虽然simplygon的结果能够捕捉到大的结构,但是因为墙上有很多小的空洞,实际的召回率是非常低的。


就爱游戏网


这是第二个例子,因为原模型内部很多交叉,导致体素化并不能正确地计算内部外部,所以只有一小部分的空间内有插片。


就爱游戏网


在这个例子中可以看到,因为simplygon是没有考虑到误遮挡的问题,所以它的结果会挡住原本可以看穿的部分。


就爱游戏网


我们在一个大的数据集下测试了我们的方法,数据集中包含了不同风格的建筑物模型,统计下来我们的方法在准确率和召回率上都远高于simplygon和插片的方法,更重要的是,在实际应用中,我们对准确率的要求是比召回率要严格得多的。而我们方法平均的准确率是99.4%,生成时间的话,我们的方法平均是2分半钟。


就爱游戏网


这是我们在实际场景中测试我们的方法和其他方法的对比,左上是ground truth,我们方法是右下。大家可以注意看,被标注的位置因为误遮挡的问题后面的模型会时隐时现。


就爱游戏网


最后总结一下,我们今天介绍了针对建筑物的LOD和遮挡体的自动生成技术,针对不同的简模应用我们定制相对应的评估标准来指导算法自动生成低模,我们LOD的工作也发表在了今年siggraph上,大家对我们LOD工作感兴趣的话,也欢迎试用我们的在线LOD生成工具,谢谢大家!

最新资讯
评论(条评论)
[!--temp.www_moban5_cn_cy--]