青岛做网站皆赴青岛博采,深圳自适应网站的公司,廊坊永清网站建设,平台不得诱导下载文章目录 前言一、渲染方程二、什么是BxDF1、BSSRDF2、BRDF3、BTDF4、BSDF 三、迪士尼原则的BRDF四、迪士尼原则的BRDF的参数五、在Unity中看一下默认Shader的这些参数六、在这里记录一下使用 Blender 和 SubstancePainter 的流程1、在Blender中导出模型为 .obj 格式2、在Subst… 文章目录 前言一、渲染方程二、什么是BxDF1、BSSRDF2、BRDF3、BTDF4、BSDF 三、迪士尼原则的BRDF四、迪士尼原则的BRDF的参数五、在Unity中看一下默认Shader的这些参数六、在这里记录一下使用 Blender 和 SubstancePainter 的流程1、在Blender中导出模型为 .obj 格式2、在SubstancePainter中导入在SP中导入是使用新建  前言 
Unity中Shader双向反射分布函数BRDF。在上一篇文章中我们知道了PBR的核心是PBS。而PBS的核心就是 双向反射发布函数BRDF 一、渲染方程 
渲染方程描述了光能在场景中的流动根据光的物理学原理渲染方程可以完美的模拟出符合物理光学的结果。 
该公式是根据现实物理推到得出的实际渲染不用这个而是在这个的基础上简化  
L0是当前点的出射光亮度可以理解为输出颜色Le是当前点的自发光亮度ƒr是当前点的入射方向到出射方向光的反射比例为BxDFLi是当前点的入射光亮度ωi*n是入射角带来的入射光衰减ʃΩ…dωi是入射方向半球的积分可以理解为无穷小的累加和 
我们在渲染时主要考虑的是 ƒr BxDF 二、什么是BxDF 1、BSSRDF 
Bidirectional Surface Scattering Reflectance Distribution Function双向表面散射反射分布函数 双向这个函数需要已知 入射光向量 和 视线向量 表面散射反射这个函数几乎完全模拟出了物理光照物体的效果 
2、BRDF 
Bidirectional Reflectance Distribution Function双向反射分布函数 
双向这个函数需要已知 入射光向量 和 视线向量 反射这个函数只模拟了光照到物体表面高光反射的效果 
3、BTDF 
Bidirectional Transmittance Distribution Function双向透射分布函数 
双向这个函数需要已知 入射光向量 和 视线向量 透射这个函数只模拟了光照到物体表面穿透 高光透射 的效果 
4、BSDF 
Bidirectional Scattering Distribution Function双向散射分布函数 
双向这个函数需要已知 入射光向量 和 视线向量 散射这个函数同时模拟了 高光反射 和 高光透射 的效果 
BSDF  BRDF  BTDF 
我们在Unity中主要使用的时BRDF双向反射分布函数即只考虑物体表面的高光反射效果。 三、迪士尼原则的BRDF 
BRDF有很多公式。但是比较通用普及的是迪士尼原则的BRDF 
迪士尼动画工作室在 SIGGRAPH2012上进行了著名的 Physically based shading at Disney 演讲正式提出了 迪士尼原则的BRDF由于其 高度的通用性 在电影界和游戏界都引起了不小的轰动。 
迪士尼原则的BRDF的核心理念 
使用直观的参数而不是晦涩的物理类参数参数尽可能的少参数在其合理范围内应该为 0 - 1允许参数在有意义的情况下超出正常的范围所有参数组应尽可能的健壮与合理 四、迪士尼原则的BRDF的参数 BaseColor(固有色)表面的颜色通常由纹理提供  Subsurface(次表面)使用次表面近似的控制漫反射形状  Metallic(金属度)0  非金属1  金属这是两种不同类型之间的线性混合  Specular(镜面反射强度)镜面反射的强度  SpecularTint(镜面反射颜色)对美术控制的让步用于对BaseColor的入镜镜面反射进行颜色控制  Roughness(粗糙度)表面粗糙度控制漫反射和镜面反射  Anisotropic(各向异性强度)用于控制镜面反射高光的纵横比0  各向同性1  各向异性正常的物体一般是各向同性的  Sheen(光泽度)一种额外的掠射分量。主要用于布料  SheenTint(光泽颜色)对Sheen的颜色控制  ClearCoat(清漆强度)特殊用途的第二个镜面波瓣  ClearCoatGloss(清漆光泽度)控制透明图层光泽度  
标红的参数是Unity中用到的 五、在Unity中看一下默认Shader的这些参数 
首先我们需要把颜色空间修改为线性的 Edit-Project Setting-Player-Other Settings  
然后我们在Unity中导入一个模型用于测试PBR的主要参数 我们可以使用SubstancePainter软件来输出这下图中需要的纹理 六、在这里记录一下使用 Blender 和 SubstancePainter 的流程 
1、在Blender中导出模型为 .obj 格式 2、在SubstancePainter中导入在SP中导入是使用新建 SubstancePainter中移动快捷键 旋转视图ALT鼠标左键移动视图ALT鼠标中键 因为Unity中对于PBR的不同单通道效果使用多个纹理比较浪费系统资源。 所以我们可以在自己的Shader中改写对一张贴图的RGB通道来分别采样使用 
这是在SP中自定义的纹理输出格式