Unity可编程渲染管线系列(十)细节层次(交叉淡化几何体)

目录

1 剔除细节

1.1 LOD组

1.2 多LOD级别

1.3 增量LOD

2 LOD混合

2.1 交叉淡化

2.2 屏幕空间坐标

2.3 裁剪

2.4 抖动

2.5 交叉淡化阴影

2.6 动画抖动模式

3 着色器变体裁剪

3.1 预处理着色器

3.2 仅预处理我们的管道

3.3 计数着色器变体

3.4 剔除级联阴影

3.5 报告剔除的变体

3.6 剔除交叉淡化

本文重点:

设计常规和附加LOD组

交叉淡化LOD不同级别

应用屏幕空间抖动

使用动画抖动模式

剔除没有使用的着色器变体

这是涵盖Unity的可脚本化渲染管道的教程系列的第十期。它增加了对交叉过渡LOD组和着色器变体剥离的支持。

本教程是CatLikeCoding系列的一部分,原文地址见文章底部。“原创”标识意为原创翻译而非原创教程。

本教程使用Unity 2018.4.4f1制作。

(抖动去除细节)

1 剔除细节

理想情况下,我们想让渲染尽可能的少。渲染的次数越少,GPU上的压力就越小,这意味着我们可以获得更高的帧速率,并且需要更少的精力来渲染场景。如果某些东西在视觉上变得很小,以至于不再可见(小于单个像素),那么我们可以跳过渲染。当它们仍然可见时,也可以跳过某些方面,因为很小,以至于缺失的时候几乎不会被注意到。因此,我们可以控制场景的细节级别。

1.1 LOD组

创建 level-of-detail 对象的典型方法是为每个 level-of-detail 使用带有子对象的根对象。最详细或最完整的可视化级别称为LOD0。作为示例,让我们创建一个具有单个球形子节点的预制件。与往常一样,我们使用自己的材质,并使用InstancedMaterialProperties组件为其赋予明显的颜色,例如红色。

(具有各种大小的LOD球面实例的场景)

可以通过将LOD Group组件添加到游戏对象的根目录来控制对象的视觉LOD。默认情况下,它具有三个LOD级别。显示的百分比对应于对象的估计视觉尺寸,表示为垂直覆盖的视口数量。只要保持在60%以上,就使用LOD 0,否则它将切换到较低的LOD级别,直到对象被完全剔除到10%以下为止。将球体子级拖动到LOD 0框上,以便将其渲染的图像用于LOD 0可视化。

(LOD球体预制,已选择LOD 0 盒子)

可以通过拖动阈值来调整阈值,也可以通过右键单击它们来通过弹出菜单添加或删除级别。由于我们只有一个LOD级别,因此请删除其他两个。这意味着我们总是显示球体,直到其视觉尺寸降到10%以下为止。至少,没有LOD偏差时就是这种情况。有一个全局LOD偏差可用于调整所有LOD阈值。可以通过代码和项目设置的“Quality ”面板进行设置。例如,将Lod Bias设置为1.5意味着对象的视觉尺寸被相同的因素高估,因此,当我们的球体下降到6.7%以下时,才将其球体剔除。LOD组的检查器将指示存在偏差。

(10%的时候剔除,LOD偏差为1.5)

1.2 多LOD级别

通常,一个对象具有多个LOD级别,每个级别使用一个逐渐简化的网格。要清楚地看到正在使用的不同LOD级别,请复制球状子对象两次以创建LOD级别1和2,并为每个颜色赋予不同的颜色。然后将它们添加到LOD组,例如以15%和10%的阈值将完全剔除移到5%。

(3个LOD级别 球体)

现在,你可以通过移动摄像机或调整LOD偏置来查看正在选择的LOD。

(调整LOD偏差)

LOD组可以与光照贴图一起使用吗?

是。将LOD组标记为静态时,它仍会在LOD级别之间切换,因此静态批处理不适用于它。但是,它确实包含在灯光映射中。LOD 0用于预期的灯光映射,此外,所有其他LOD级别也将获得烘焙照明。至少在使用渐进式光照贴图的情况下。Enlighten在其他LOD级别上存在更多麻烦,需要使用光探针。这也意味着只有静态LOD 0与动态全局照明配合使用。如果动态GI很重要,则应确保其他LOD级别不是静态的,以便它们通过光探头接收GI。

1.3 增量LOD

创建LOD的另一种方法是将其添加到基本可视化中。作为示例,我用立方体和球体创建了抽象树。树的核心被添加到所有三个LOD级别。将较小的树枝,树叶和树皮添加到前两个级别。并且最小的叶子和树皮详细信息仅添加到LOD 0。

(LOD级别为0,1,2)

这与每个LOD级别使用单独的子层次结构相同,除了某些对象是多个级别的一部分。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值