渲染调试功能

注意:只有使用 Surface Shader 框架的材质,内置的渲染调试功能才可以生效。

通过在编辑器的场景预览窗口右上角按钮选择对应的调试模式即可同屏查看模型、材质、光照及其他计算数据,在渲染效果异常的时候可以快速定位问题。

debug-view

为了方便逐像素对比,我们使用全屏调试而非画中画的显示方式,可以快速在同一幅画面中切换不同数据来定位渲染错误所在,也可使用取色器来探知像素的具体数值。

另外 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 来进行渲染调试。