渲染调试功能
注意:只有使用 Surface Shader 框架的材质,内置的渲染调试功能才可以生效。
通过在编辑器的场景预览窗口右上角按钮选择对应的调试模式即可同屏查看模型、材质、光照及其他计算数据,在渲染效果异常的时候可以快速定位问题。
为了方便逐像素对比,我们使用全屏调试而非画中画的显示方式,可以快速在同一幅画面中切换不同数据来定位渲染错误所在,也可使用取色器来探知像素的具体数值。
另外 Surface Shader 还内置了 无理数可视化 的功能,一旦有一些像素出现异常的 红色(255, 0, 51) 和 绿色(0, 255, 51) 交替闪烁,则说明这些像素的渲染计算出现了无理数,请使用单项调试模式来检查模型切线或其他相关数据。
渲染调试功能细分为如下三种:
1、公共选项
无论单项还是组合模式中都生效的调试选项,包括:
名称 | 功能 | 调试技巧 |
---|---|---|
光照信息带固有色 | 勾选则显示正常材质光照,勾掉则显示白模纯光照的效果。 | 可更明显的查看AO、GI等间接光相关的影响。 |
级联阴影染色 | 级联阴影从近到远逐层染色,分布为偏红、绿、蓝、黄,超出阴影范围的区域无染色。 | 可查看并确认场景阴影的精细度。 如果三四层占比太少说明阴影过于精细,应当增大阴影可视距离。 如果一二层占比太少说明阴影过于粗糙,应当减小阴影可视距离。 |
2、单项模式
调试重点聚焦在某个需要测试的数据上,整个场景都将此数据可视化输出。
可调试的数据包括四大类:
I、原始模型数据
名称 | 功能 | 说明及调试技巧 | 依赖项 |
---|---|---|---|
顶点色 | 同名称 | 必须在材质中勾选使用顶点色 | |
世界空间顶点法线 | 同名称 | ||
世界空间顶点切线 | 同名称 | 如果计算中出现了无理数或异常光照效果可以重点检查此处,如果是黑色则说明未开启模型切线但开启了法线贴图或各向异性。 | 不能在模型的切线设置中选择排除 必须在材质中勾选使用法线贴图或是各向异性 |
世界空间顶点坐标 | 可视化顶点坐标(无缩放) | rgb显示xyz轴坐标数据。 可通过色彩来判断世界空间轴的不同,通过明暗来判断模型大小。 | |
法线图镜像 | 显示法线图翻转复用标记 | 为了提高法线图利用率,有些对称的模型(如面部)只会烘焙一半的法线,另一半使用镜像标记复用法线图中的数据。 如果该标记的值在模型上没有任何变化,可能导致模型另一半的法线呈现凹凸翻转等异常效果。 | 必须在材质中勾选使用法线贴图 |
正反面标记 | 显示正面或反面 | 默认的单面模型,法线不会自动区分,在模型的正面和反面看到的明暗是相同的。 当单面模型使用双面材质时,会自动区分正反面法线,在模型的正面和反面看到的明暗是不同的。 该标记为白色表示模型正面,黑色表示反面。可通过它来查验单面模型的光照明暗问题。 | |
UV0 | 显示第一套UV | ||
UV1 | 显示第二套UV | 必须在材质中勾选使用第二套UV | |
光照贴图UV | 显示光照贴图UV | 如果光照贴图效果不正确,可开启此选项,对比光照贴图的大致区域来查错。 | 必须烘焙场景 |
投影深度Z | 显示(0-1非线性变化)深度 | 远裁面过大会导致近景深度值也会偏高 | |
线性深度W | 显示(0-1线性变化)深度 | 远裁面过大会导致近景深度值也会偏高 |
II、原始材质数据
名称 | 功能 | 说明及调试技巧 | 依赖项 |
---|---|---|---|
世界空间像素法线 | 同名称 | 可以和对应的顶点数据做对比以查看法线贴图的影响是否正确 | |
世界空间像素切线/副法线 | 同名称 | 可以和对应的顶点数据做对比以查看法线贴图的影响是否正确 | 不能在模型的切线设置中选择排除 必须在材质中勾选使用法线贴图或是各向异性 |
固有色 | 同名称 | ||
漫反射颜色 | 从固有色和其他材质数据计算出的影响漫反射光照的基础色 | ||
镜面反射颜色 | 从固有色和其他材质数据计算出的影响镜面反射光照的基础色 | ||
不透明度 | 越小表示越透明 | 必须在材质中开启Alpha Blend | |
金属度 | 同名称 | ||
粗糙度 | 同名称 | ||
镜面反射强度 | 显示非金属基准镜面反射率F0的倍增 | 如果镜面反射都为黑色,请检查此项数据是否设置为0 |
III、光照结果数据
名称 | 功能 | 说明及调试技巧 | 依赖项 |
---|---|---|---|
直接光漫反射 | 同名称 | ||
直接光镜面反射 | 同名称 | ||
直接光照 | 相当于直接光漫反射 + 直接光镜面反射 | ||
环境光漫反射 | 同名称 | ||
环境光镜面反射 | 同名称 | ||
环境光照 | 相当于环境光漫反射 + 环境光镜面反射 | ||
自发光 | 显示材质中设置的自发光颜色 | ||
光照贴图 | 显示烘焙的光照贴图RGB颜色 | 必须烘焙场景 | |
阴影 | 显示平行光、聚光灯、点光的阴影 | 必须在场景面板和光源中开启阴影,物体开启接收阴影 | |
环境光遮蔽 | 显示材质中设置的AO贴图及实时AO的值 |
IV、其他数据
名称 | 功能 | 说明及调试技巧 | 依赖项 |
---|---|---|---|
雾因子 | 显示雾效因子,越大说明雾越浓 | 必须在场景面板中开启雾效 |
3、组合模式
调试重点聚焦在总体的渲染表现上,可以屏蔽或打开每个模块,模块之间互不关联,可查看不同模块之间对渲染效果的影响。
单项模式优先级高于组合模式,如果想使用组合模式的话,必须选中无单项模式。
包括:
名称 | 功能 | 说明及调试技巧 | 类别 |
---|---|---|---|
直接光漫反射 | 开启/禁用直接光漫反射 | 影响平行光、聚光灯和点光 | 光照 |
直接光镜面反射 | 开启/禁用直接光镜面反射 | 影响平行光、聚光灯和点光 | 光照 |
环境光漫反射 | 开启/禁用环境光漫反射 | 影响天光 | 光照 |
环境光镜面反射 | 开启/禁用环境光镜面反射 | 影响天光 | 光照 |
自发光 | 开启/禁用自发光 | 如果有些物体过亮或者曝掉,可尝试关闭此选项是不是材质中设置了不必要的自发光 | 光照 |
光照贴图 | 开启/禁用烘焙光照 | 影响烘焙 | 光照 |
阴影 | 开启/禁用直接光阴影 | 影响实时平行光/聚光灯/点光阴影和烘焙的平行光阴影 | 光照 |
环境光遮蔽 | 开启/禁用环境光遮蔽 | 影响天光 | 光照 |
法线贴图 | 开启/禁用法线图 | 如果光照异常散乱,可尝试关闭此选项以查看是否是法线图扰动强度不当所致 如果光照效果错误或出现无理数,可尝试关闭此选项以查看是否是模型未开启切线所致 | 材质 |
雾 | 开启/禁用雾效 | 如果场景颜色异常变灰,可尝试关闭此选项以查看是否是雾参数设置不当所致 | 环境 |
色调映射 | 开启/禁用色调映射 | 如果场景色彩与原材质差异过大,可尝试关闭此选项查看是否正常,说明场景面板中不该勾选UseHDR | 色彩空间 |
伽马矫正 | 开启/禁用伽马矫正 | 如果场景色彩异常浓艳与偏暗,可尝试关闭此选项查看是否正常,说明贴图资源可能被多次伽马矫正了 | 色彩空间 |
4、运行时使用渲染调试
使用引擎内置资源中的预设体 tools/debug-view-runtime-control
,将它拖到场景 Canvas 节点下即可在运行时使用 UI 来进行渲染调试。