当前位置:网站首页>UnityShader入门精要——PBS基于物理的渲染
UnityShader入门精要——PBS基于物理的渲染
2022-06-24 23:04:00 【果冻喜之郎】
1 PBS理论与数学基础
材质折射率:如果光在传播时介质的折射率发生了变化,光的传播方向就会发生变化。特别是,如果折射率是突变的,就会发生光的散射现象。
菲涅尔等式:光在不同介质的边界会被分割成两个方向:反射方向和折射方向。而有多少百分比的光会被反射(另一部分就是被折射了)则是由菲涅耳等式(Fresnel equations)来描述的。
微表面反射:微表面的法线方向变化角度小,表面反射的光线方向变化也比较小,物体的高光反射更加清晰;粗糙表面则相反,得到的高光反射效果更模糊。

微表面折射: 这些光被折射到物体的内部,一部分被介质吸收,一部分又被散射到外部。金属材质具有很高的吸收系数,因此,所有被折射的光往往会被立刻吸收,被金属内部的自由电子转化成
其他形式的能量。
次表面散射光:非金属材质则会同时表现出吸收和散射两种现象,这些被散射出去的光又被称为次表面散射光(subsurface-scattered light)

辐射率:辐射率是单位面积、单位方向上光源的辐射通量,通常用L来表示,被认为是对单一光线的亮度和颜色评估。在渲染中,我们通常会基于表面的入射光线的入射辐射率Li来计算出射辐射率L0,这个过程也往往被称为是着色(shading) 过程。
双向反射分布函数BRDF:当一束光线沿着入射方向I到达表面某点时,f(I,v)表示了有多少部分的能量被反射到了观察方向v上。大多数情况下,BRDF可以用f(I,v)来表示,其中I为入射方向和v为观察方向(双向的含义)。这种情况下,绕着表面法线旋转入射方向或观察方向并不会影响BRDF的结果,这种BRDF被称为是各项同性(isotropic) 的BRDF。与之对应的则是各向异性(anisotropic) 的BRDF。
反射等式:
精确光源:指的是那些方向确定、大小为无线小的光源,例如,常见的点光源、聚光灯等。我们使用I。来表示它的方向,使用Chight 表示它的颜色。

如果场景中包含了多个精确光源,我们可以把它们分别代入上面的式子进行计算,然后把它们的结果相加即可。
下面,我们来看一下反射等式中的重要组成部分一BRDF是如何得到的。可以看出,BRDF决定了着色过程是否是基于物理的。这可以由BRDF是否满足两个特性来判断:它是否满足交换律(reciprocity) 和能量守恒(energy conservation)。
交换律要求当交换I和v的值后,BRDF的值不变,即f(v·I)=f(I·v)。
而能量守恒则要求表面反射的能量不能超过入射的光能,即
漫反射项:
Cdiff表示漫反射光线所占的比例,它也通常被称为是漫反射颜色(diffusecolor)。
高光反射项:

假设表面法线为n,这些微面元的法线m并不都等于n,因此,不同的微面元会把同一入射方向的光线反射到不同的方向上。而当我们计算BRDF时,入射方向I和观察方向v都会被给定,这意味着只有一部分微面元反射的光线才会进入到我们的眼睛中,这部分微面元会恰好把光线反射到方向v上, 即它们的法线m等于I和v的一半,也就是我们一直看到的半角度矢量h(half-anglevector,也被称为half vector).
D(h)是微面元的法线分布函数(normaldistributionfunction, NDF),它用于计算有多少比例的微面元的法线满足m=h,只有这部分微面元才会把光线从I方向反射到v上。
G(I,v,h)是阴影遮掩函数(shadowing masking function),它用于计算那些满足m=h的微面元中有多少会由于遮挡而不会被人眼看到,因此它给出了活跃的微面元( active microfacets)所占的浓度,只有活跃的微面元才会成功地把光线反射到观察方向上。
F(I,h)则是这些活跃微面元的菲涅尔反射(Fresnel reflectance)函数,它可以告诉我们每个活跃的微面元会把多少入射光线反射到观察方向上,即表示了反射光线占入射光线的比率。
4(n D)(n. v)是用于校正从微面元的局部空间到整体宏观表面数量差异的校正因子。
边栏推荐
- 内网学习笔记(6)
- Beescms website penetration test and repair comments "suggestions collection"
- What is the reason for the disconnection of video playback due to the EHOME protocol access of easycvr platform?
- How to monitor the log through the easycvr interface to observe the platform streaming?
- ida中交叉引用的解析
- 把 Oracle 数据库从 Windows 系统迁移到 Linux Oracle Rac 集群环境(1)——迁移数据到节点1
- |How to analyze bugs? Professional summary and analysis
- Is the compass reliable? Is it safe to open a securities account?
- It is said that Yijia will soon update the product line of TWS earplugs, smart watches and bracelets
- Jetson Nano 从入门到实战(案例:Opencv配置、人脸检测、二维码检测)
猜你喜欢

消息称一加将很快更新TWS耳塞、智能手表和手环产品线

背了八股文,六月赢麻了……

疫情防控,居家办公,网上授课之心得 | 社区征文

Use of hashcat

测试/开发程序员,30而立,你是否觉得迷茫?又当何去何从......

Rod and Schwartz cooperated with ZhongGuanCun pan Lianyuan Institute to carry out 6G technology research and early verification

【STL源码剖析】配置器(待补充)

常用的软件测试工具清单,请查收。

計網 | 【四 網絡層】知識點及例題

Folding screen will become an important weapon for domestic mobile phones to share the apple market
随机推荐
EasyCVR国标协议接入的通道,在线通道部分播放异常是什么原因?
Are programmers from Huawei, Alibaba and other large manufacturers really easy to find?
E - average and median
同花顺是正规平台吗?同花顺开户安全吗
Squid 代理服务器之 ACL 访问控制
Please run IDA with elevated permissons for local debugging.
Random list random generation of non repeating numbers
How to monitor the log through the easycvr interface to observe the platform streaming?
软件测试人员的7个等级,据说只有1%的人能做到级别7
How do the TMUX color palette work?
2022年云计算应用关键威胁调查
When an interface has an exception, how do you analyze the exception?
PSQL column to row
npm包发布详细教程
调用系统函数安全方案
When they are in private, they have a sense of propriety
leecode学习笔记-机器人走到终点的最短路径
Intranet learning notes (6)
分布式事务解决方案和代码落地
Sumati gamefi ecological overview, element design in the magical world
