Hello . 大家好!今天给大家分享一下unreal中的pbr检测,我是木偶心没。
我们在使用pbr流程的时候都根据项目要求有一些颜色值范围,比如说substance的30/50-240。我们在painter或者designer里面画贴图的时候如果颜色值不在正确的范围内,导入到引擎里面效果就会有问题,所以就需要一些在引擎里面检查颜色值或者粗糙度值是否规范的工具。下面就介绍一些这款朋友提供的检查basecolor的工具。
1、非金属
首先这个tool的功能是检查整个场景的basecolor在不在我们规定的范围内,所以最好的方式是直接添加一个后处理材质,这样就能作用到整个场景。所以首先新建一个材质球命名为mat_PbrValidate,然后设置Material Domain为Post Process,现在整个材质就只有一个Emissive Color属性暴露出来了,我们只需要把我们的检查连接到这个属性上面。

然后,需要获取场景中的basecolor,右键添加节点SceneTexture,然后选择节点的Scene Texture Id属性为BaseColor(for lighting)才能得到整个场景的base color。

我们给输出的base color添加一个desturation节点来降低base color饱和度,将0-255的颜色值范围转化到0-1的范围,方便检测。

获取到场景中颜色值以后,我们就可以直接用if来进行判断。如果我们项目规定颜色值范围需要在50-240范围内的话,我们就要用两个if分别判断是不是大于50和小于240。
由于unreal里面默认的颜色使用的是linearsrgb,所以判断之前我们需要将50和240从srgb转化成linear srgb。转化公式如下:Linear = Pow((srgb/255+0.55)/1.055, 2.4)
我们可以直接在引擎里面算,也可以在外面算好了最后的值再放进来。这里我们直接在引擎里面写,因为需要计算幂函数不用一些特殊手段不太好整。下面是最高值和最低值的线性转换,可以把范围暴露出来,方便不同的项目需求。

然后开始连接到if语句上面,对于最低范围bc_low(50),如果输入的值A>=50,则输出1;否则就是在范围之外的错误值,输出0。

同样,对于最高值bc_high(240),如果输入的值A>=240,则是超出范围的错误颜色值,输出1;否则是<240的正确值输出0。
这里最高值的判断和最低值的判断相反(最低值正确为1,最高值正确为0),是因为我们可以利用两者之间的减法来lerp不同的颜色区分错误和正确的颜色区域。
所以接着我们把两个if相减,然后和表示错误的红色以及表示正确的绿色进行lerp。

所以假设一下,如果输入的颜色值是40,则上面的if输出0,下面的if输出0,相减得0,则输出红色;
如果输入的颜色值是100,上面if输出1,下面输出0.相减得1,输出绿色;
如果输入颜色值250,则上面if输出1,下面if也输出1,相减得0,输出红色。
2、金属
但是,上面讨论的都是非金属的basecolor,如果检测的模型中有金属,那basecolor可能超过240,所以我们需要在最后的输出中排除这种金属的情况。即如果得到的红色部分中的金属度有大于0的,则这块区域的颜色值是正确的。
同样先用SceneTexture获取场景中的金属,然后去饱和度,再用if判断

如果得到的值>0,则是金属,输出0,将输出值与楼上红绿颜色相乘,如果楼上的金属那部分的颜色值是大于240的则相乘以后等于0黑色,符合pbr规定范围。
我们将最后的输出放到Emissive Color中。然后保存整个材质。

然后将这个材质加入到我们要检测的场景中。
首先给我们需要检测的场景拉一个post process volume,放大到你想要检查的区域。

在postprocess的属性中找到renderingfeatures属性,并在Array中点加号新加一个AssetReference,把我们的mat_PbrValidate材质的instance放进去。


然后在场景中移动摄像机到post process的范围内,就可以看到不在范围内的红色和符合范围的绿色啦。

来源:Thepoly
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答入职两周当组长主动上调薪资学长开公司招人又是被AI班喜报砸晕的一天
杭州那家九州传媒,不是什么小作坊,此前他们的负责人曾对媒体说过他们有一万余人的招聘缺口,而且最近几个月一直在持续性地疯狂招人 ......
AI短剧备案新规落地AIGC设计师薪资暴涨50AI设计日报0609
广电总局及网信部门明确AI内容标注及备案要求,行业进入规范化发展阶段与此同时,IP+AI的规模化路径也得到验证:阅文集团百部A......
每年这个时候全国都在关注同一件事高考这是这个国家一年一度最盛大的集体奔赴它被反复提起不是
在火星时代,我们见过太多带着这股劲头来的年轻人:有的刚结束高考就来学设计;有的读两年大学发现不对,趁暑假来学UE;还有的工作几......
虚幻引擎交互开发工程师班
影视游戏虚幻美术视效大师班
同学您好!