当前位置:网站首页>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)是用于校正从微面元的局部空间到整体宏观表面数量差异的校正因子。
边栏推荐
- 消息称一加将很快更新TWS耳塞、智能手表和手环产品线
- psql 列转行
- 云原生数据库VS传统数据库
- vim的Dirvish中文文档
- 如何通过EasyCVR接口监测日志观察平台拉流情况?
- Migrate Oracle database from windows system to Linux Oracle RAC cluster environment (3) -- set the database to archive mode
- Use of hashcat
- How to choose a regular and safe foreign exchange trading platform?
- 业务与技术双向结合构建银行数据安全管理体系
- 当人们用互联网式的思维和视角来看待产业互联网的时候,其实已陷入到了死胡同
猜你喜欢

Hashcat 的使用

计网 | 【四 网络层】知识点及例题

Processon producer process (customized)
![[STL source code analysis] configurator (to be supplemented)](/img/87/0ed1895e9cdb5327411c0c9cb0197f.png)
[STL source code analysis] configurator (to be supplemented)

After reciting the eight part essay, I won the hemp in June

The role of software security testing, how to find a software security testing company to issue a report?

yarn : 无法加载文件 C:\Users\xxx\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本

Are programmers from Huawei, Alibaba and other large manufacturers really easy to find?

Folding screen will become an important weapon for domestic mobile phones to share the apple market

Test / development programmers, 30, do you feel confused? And where to go
随机推荐
How to choose a regular and safe foreign exchange trading platform?
Left hand dreams right hand responsibilities GAC Honda not only pays attention to sales but also children's safety
E - Average and Median(二分)
Is the compass reliable? Is it safe to open a securities account?
F - spices (linear basis)
How to quickly familiarize yourself with the code when you join a new company?
计算机三级(数据库)备考题目知识点总结
Folding screen will become an important weapon for domestic mobile phones to share the apple market
Please run IDA with elevated permissons for local debugging.
1-6搭建Win7虚拟机环境
Hashcat 的使用
Uncaught Error: [About] is not a <Route> component. All component children of <Routes> must be a <Ro
EasyCVR国标协议接入的通道,在线通道部分播放异常是什么原因?
Processon producer process (customized)
左手梦想 右手责任 广汽本田不光关注销量 还有儿童安全
How do the TMUX color palette work?
分布式事务解决方案和代码落地
Intranet learning notes (5)
Intranet learning notes (6)
Use of hashcat
