渲染性能优化之几种LOD层次细节总结

CIM(城市信息模型)这种大场景或者说特大场景LOD是非常重要的,城市、BIM、地形都非常系需要,根据公司的项目需求这里做了一下总结各种LOD的技术、算法、策略。

首先,我们公司对于城市这种大场景我们提出使用如下技术:

1. 组织、符合3Dtiles 这种规范,城市要按照tiles加载切换(类似于地图一样)
2. 使用LOD(包括减面、平滑处理的一套)
3. 纹理的压缩,使用硬解为DDS类型

LOD也称为层次细节模型,是一种实时三维计算机图形技术,最先由Clark于1976年提出,其工作原理是:
视点离物体近时,能观察到的模型细节丰富;视点远离模型时,观察到的细节逐渐模糊。系统绘图程序根据一定的判断条件,选择相应的细节进行显示,从而避免了因绘制那些意义相对不大的细节而造成的时间浪费,同时有效地协调了画面连续性与模型分辨率的关系。

OSG实现LOD

使用osg来讲解实现LOD基于OSG讲解一下LOD

LOD细节层次(Level of Detail,LOD)

的基本思想是当物体对渲染出图像贡献越少,使用越简单的形式来表达该物体。这是一个已经在各种游戏中广泛使用的基本优化技术。一般情况下,完整的LOD算法包含3个主要部分:

  1. 生成Generation(手动生成可以也可以减面生成)

  2. 选择Selection

  3. 切换Switching(切换不同精度的模型)

从一个细节层次转换到另一个细节层次,而这个过程便称为LOD切换。

LOD的切换 | LODSwitching

当从一个LOD切换到另一个LOD的时候,忽然的模型替换往往会引起观察者的注意。这种现象被称为突越(Poping)。这里有几种不同的LOD切换方法,有着不同的特性:离散几何LOD | Discrete Geometry LODs混合LOD | Blend LODs透明LOD | Alpha LODs连续LOD和几何形变LOD | CLODs and Geomorph LODs

离散几何LOD | Discrete Geometry LODs

离散几何LOD是最简单的LOD算法,不同的表示是不同图元数量的同一模型,但这种方法突越现象严重。

混合LOD | Blend LODs

在概念上,完全可能存在一种直观的方法,从一个LOD切换到另一个LOD,只需要在较短的时间内在两个LOD之间执行一个线性混合,这种方法无疑可以得到一种比较平滑的切换,但是这种混合操作的代价较高。渲染两个LOD要比一个LOD需要更大开销,因此也就违背了LOD的初衷。但LOD切换通常发生在较短时间内容,在同一时间也不是对场景中所有物体进行切换,所以依然可以从中获益。Giegl等人在

《Unpopping: Solvingthe Image-Space Blend Problem for Smooth Discrete
LOD Transition 》

这篇文章中提出了一种方法,实际应用的效果较为出色。思路是在两个LOD之间有一个alpha值的过渡,有兴趣的朋友可以进一步了解。

透明LOD | Alpha LODs

完全避免突越现象的一种简单方法便是使用alpha LOD。其中并没有使用同一物体很多不同细节的实例,而且每个物体只有一个实例。随着LOD选取度量值(如与物体之间的距离)的增大,物体整体透明度也随之增大(也就是alpha值减小),当完全透明时,物体最终就会消失。这种方法的优点是,比离散几何LOD方法上感觉更连续一些,可以避免突跃现象。此外,由于物体最终会完全消失而不需要进行渲染,可以得到很好的加速效果。使用Alpha LOD对图中的圆锥体进行渲染,当距离圆锥体较远时,就提高它的透明度,直到最后消失。直线左边的图像是从同一距离处进行的观察,而直线右边的图像是左边图像不同尺寸的情形。 与混合LOD的区别是只渲染一个LOD ,只是改变它的透明度,使得突越不这么明显!
在这里插入图片描述

连续LOD和几何形变LOD | CLODs and Geomorph LODs

连续细节层次(Continuous Level of Detail , CLOD)的基本思想是基于LOD选取值来精确决定可见多边形的数量。在100m远处,模型包含1000个多边形,当移动的到101m的地方时,模型减少到998个多边形。几何形变层次细节(Geomorph LODs)是基于简化生成的一组离散模型,且其中模型顶点之间的链接关系保持不变。而网格简化的过程可以从一个复杂的物体中创建各种不同的LOD模型,具体做法可以参见《Real-Time Rendering 3rd》12.5.1一节,一种方法就是创建一组离散的LOD,然后按照上文中提到的方法来使用。这里的边塌陷(Edge Collapse Methods)方法有一个有趣的性质,即允许在不同的LOD之间采用其他过渡方法。在UE4中就是HLOD!几何形变LOD的简化模型图示。左边和右边的图像所示分为为低细节层次和高细节层次的模型,中间的图像是在左右模型中间进行插值生成的几何变形模型。注意。中间的牛模型和右边的模型具有相同数量的顶点和三角形。
在这里插入图片描述

LOD的选取 | LOD Selection

给定一个物体不同细节层次,必须做一个选择,决定渲染或者混合其中的哪一个层次,这就是LOD选择(LOD selection)的任务。有几种不同的LOD选择方案,这些方案也可以用于遮挡裁剪算法。常见的三种LOD选取技术是:基于距离的LOD选取( Range-Based )基于投影面积的LOD选取( Projected Area-Based )基于滞后的LOD选取(Hysteresis) 依然是分别进行简要概述基于

距离的LOD选取 |Range-Based

选取LOD的一种常用方法是将物体的不同LOD于不同距离联系起来。细节最丰富的LOD的距离从0到一个用户定义值r1之间,下次层次的LOD的距离位于r1~r2之间 ,LOD3是一个空物体,也就是表示当物体大于r3时,就不渲染任何物体,因为物体对图像的贡献度不够。右图为场景中的一个LOD节点,它只有一个子节点基于r;
在这里插入图片描述

基于投影面积的 LOD选取 | Projected Area-Based

基于投影面积的LOD选取,顾名思义,即投影面积越大,就选取细节越丰富的LOD。

基于滞后的LOD选取 |Hysteresis

若用于确定LOD度量标准围绕某个值ri在画面之间是变化的,那么就会出现不必要的突跃现象,也就会在不同的LOD之间来回快速切换。对此,可以引入一个围绕ri值的滞后来解决这个问题。如图,这是一个基于距离的LOD,可以应用于任何类型,当r增大时,使用上一行的LOD距离;当r减小时,使用下面一行的LOD距离。灰色区域表示的是基于滞后的LOD选取方法的滞后区域;
在这里插入图片描述

基于Tessellation shader的LOD

Tessellation(曲面细分)是一种将多边形分解成更加细小的碎片以提升几何逼真度的方法。例如,如果处理一个正方形并将其沿对角线切开,那么实际上就是将这一正方形“曲面细分”成为两个三角形。就其本身而言,Tessellation(曲面细分)并不能提升半点逼真度。 置换的贴图就是一个存储高度信息的纹理。当应用到某一表面上时,该贴图让这一表面的顶点能够根据高度信息调高或调低。 例如,使用一块大理石板,图形艺术家能够通过“置换”顶点的方法打造雕刻效果。另一种流行技术是将置换的贴图应用到地形上,以雕琢出弹坑、峡谷以及山峰。从本质上来讲,Displacement Mapping(贴图置换)需要Tessellation(曲面细分),反之亦然。 动态Tessellation(曲面细分)通过即时改变精细度,解决了这一问题。例如,当远处的建筑物首次映入眼帘时,也许仅使用10个三角形来渲染它。随着用户视野的拉近,该建筑物的显著特征开始浮现,更多三角形则被用来描绘窗子和屋顶等细节。当你最终到达门口时,单单旧式铜质门把手一项就动用了一千个三角形来进行渲染;Displacement Mapping(贴图置换)细致地雕刻出了每一道凹槽。由于消除了动态Tessellation(曲面细分)对象的时隐时现,因此游戏环境现在可以扩展至几乎无限的几何精细度。
听前辈说的现在UE5的几千万面片的地形

参考材料:

opengl LOD
细节层次节点
渲染性能优化之Culling 剔除

Level of Detail for 3D Graphics作者: David Luebke , Martin Reddy , Jonathan D. Cohen , Amitabh Varshney , Benjamin Watson , Robert Huebner 出版:Morgan Kaufmann The Morgan Kaufmann Series in Computer Graphics and Geometric ModelingSeries Editor: Brian A. Barsky, University of California, BerkeleyLevel of detail (LOD) techniques are increasingly used by professional real-time developers to strike the balance between breathtaking virtual worlds and smooth, flowing animation. Level of Detail for 3D Graphics brings together, for the first time, the mechanisms, principles, practices, and theory needed by every graphics developer seeking to apply LOD methods.Continuing advances in level of detail management have brought this powerful technology to the forefront of 3D graphics optimization research. This book, written by the very researchers and developers who have built LOD technology, is both a state-of-the-art chronicle of LOD advances and a practical sourcebook, which will enable graphics developers from all disciplines to apply these formidable techniques to their own work.This Book:* Is a complete, practical resource for programmers wishing to incorporate LOD technology into their own systems.* Is an important reference for professionals in game development, computer animation, information visualization, real-time graphics and simulation, data capture and preview, CAD display, and virtual worlds.* Is accessible to anyone familiar with the essentials of computer science and interactive computer graphics.* Covers the full range of LOD methods from mesh simplification to error metrics, as well as advanced issues of human perception, temporal detail, and visual fidelity measurement.* Includes an accompanying Web site rich in supplementary material including source code, tools, 3D models, public domain software, documentation, LOD updates, and more.http://pixhost
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值