对IBL的specular部分的思考

时间:2023-02-08 17:56:51

背景知识

​https://learnopengl-cn.github.io/07 PBR/03 IBL/02 Specular IBL/​​ 这篇文章,讲到虚幻提供的分割法,把完整计算分为两部分
第一部分是重要性采样生成mipmap
第二部分是BRDF,提出F项,剩下部分预计算放在一张纹理中
第一部分,可以通过描述看出来,他大概是算出了波瓣宽度不一样,采样出来的图片该是啥样
第二部分,他总体就是BRDF项啊

思考

也就是说,第一部分,可以不管了,而第二部分,我们可以产生一些思考
第一个思考,他给的模型,是不是最好看的,最逼真的,那不一定,也就是说如果我们能找到别的模型,换上,会得到不同的效果
第二个思考,如果材质是多层材质,那么从表面来看,是不是入射光线打中之后,首先是第一层,本身有一套BRDF+env采样,然后一部分进去内部,最终看见的是他反射出来的颜色,那是另外一个BRDF+env采样,再下一层也是类似
那么假如只考虑两层,第一层的反射部分就直接是之前那套计算,那进去透射然后反射回来的怎么计算呢
假定第二层会全部反射,不会吸收掉能量
那么第二层的按道理会根据粗糙度把第一层传递下来的光线给变成波瓣,也就是说第一层传递下来的是小波瓣的话,直接就变成大波瓣,如果在粗糙一点,讲道理波瓣会变更大,那么这里无论波瓣多大,对应的env采样都能采样到正确结果,如果那套重要性采样没啥问题的话,我们假定他是对的,那么一要计算出射粗糙度,二还需要计算BRDF,这里怎么算??小波瓣和大波瓣有线性关系吗?没有啊。

总结

我们总结一下,要决定第二层采样env的mipmaplevel,其实就要算出最终他反射出来对应的粗糙度,采样方向还是视线和法线的反射方向
第二层的BRDF,找到一个关系,才能算出来。to be continue