|
楼主 |
发表于 2021-1-5 10:07
|
显示全部楼层
可能CE当时pbr没做好吧。特别是用了blinnphong的shader并且把高光颜色搞成了单色,这类似非金属的模式, CE3.6才开始更换为GGX。unity 以前也这么干的,specular 单色并且塞到了albedo贴图的alpha通道中,结果带alpha贴图压缩率也没上去,效果也差了。
补充一点:2011年的孤岛危机2虽然大量使用IBL和更高级的BRDF,但是环境贴图仍是传统做法,即把IBL卷积的存储在不同的cubemap mipmap层中的做法,IBL时常会出现过亮或者过暗的问题,也使得不少材质都会有种所谓的塑料感,UE通过split-sumapproximation可以更好的控制IBL。
此外,孤岛危机2的菲涅尔反射公式不是基于半角向量的,由于采用deferred lighting而涉及到一个G-buffer的分配问题,孤岛危机2的菲涅尔反射被迫使用了n*v的近似,这种近似会使高光衰减地更快,从而加重了塑料感。
按照real time rendering中的说明:
现实中,塑料有一个白色基层,在这个基层中通常有一些色素颗粒。镜面反射出来的光线通常保持白色,一般游戏里specular直接使用0.04这个值, 原因是它并没有穿过这个材质,而来自这个材质的漫反射光穿过了这个材质并与其中的色素相互作用。
金属可以导电,所以一些电磁波可以激活其中的电子,而激活的电子又会使这些电磁波产生反射。这种特点就导致镜面高光用到了表面颜色(这个颜色可以随着入射角度的改变而变化),同时也减少了漫反射分量,因为很少会有光线在表面内部进行反射,光滑的金属基本上没有漫反射颜色。
在物理方面需要考虑的一个重要因素是 Fresnel反射(一般在BlinnPhong模型中并没有考虑这个),它对像塑料、玻璃,以及水这样的不导电物质(绝缘体)来说特别重要。当从入射余角方向来观察这些绝缘体的时候,反射就会比较强。相比之下,金属材质的反射强弱与角度关系不大。在最小的入射余角处,所有的材质都会变成完全反射,很容易理解这种效果:拿一本书,沿着一个浅角度观察这本书上的一页,然后对准一个光源(计算机的监视器就是一个不错的光源)。在观察角度非常小的时候,书贞就会发亮,同时还可以看到计算机屏幕的反射。这就是为什么光亮的金属看上去有金属光泽、光亮的塑料看上去还是塑料的原因。
所以pbr中金属和塑料的主要区别在于:
1. 高光颜色,金属三个通道颜色基本上完全不同,塑料水等非金属大部分为单色0.04。
2. Fresnel表现完全不同,因为Fresnel中的F0参数就是高光颜色。
非金属Fensnel表现:
金属的Fensnel表现:
下图为球形下的比较,左为金属,右为非金属,
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|