unity里的pbr

本文介绍了Unity3D中的物理渲染(PBR)技术,详细讲解了BRDF(双向反射分布函数)的概念,包括漫反射、高光反射的计算公式,并探讨了基于物理的光照模型,如Torrance-Sparrow和Cook-Torrance模型在Unity3D中的应用。还阐述了Unity3D中PBR BRDF的实现,涉及Disney的BRDF漫反射项和基于微面元理论的高光反射项。
摘要由CSDN通过智能技术生成

unity3D里使用的PBR公式

PBR即为基于物理的光照、材质和摄像机。这里只讨论材质以及unity里如何实现基于PBR的BRDF。
这里提一下BRDF,意指反射函数。由于人眼看到物体都是通过反射光,所以BRDF就实际上表现了一个物体的材质。

一个BRDF的基本组成部分为漫反射(diffuse),大部分还要加上环境光(ambient)+ 高光反射(specular),还有可能会有自发光(emissve)、此表面散射等等。

BRDF可大概的分为基于经验模型和基于真实物理(还有测量模型之类的不讨论)。
经验模式主要为

lambert漫反射
C d i f f u s e = ( c l i g h t ⋅ m d i f f u s e ) max ⁡ ( 0 , n ^ ⋅ l ^ ) , C_{diffuse} = (c_{light} \cdot m_{diffuse})\max(0,\hat{n} \cdot \hat{l}), Cdiffuse=(clightmdiffuse)max(0,n^l^),
其中c为光源颜色,m为漫反射颜色,n为表面法线,l是指向光源的单位矢量。

高光反射
主要分为 Phone 和 Blinn-Phone ,后者使用半角向量避免计算反射向量,要比前者省大概1/3的性能。
Phone高光模型
C s p e c u l a r = ( c l i g h t ⋅ m s p e c u l a r ) max ⁡ ( 0 , v ^ ⋅ r ^ ) m g l o s s , C_{specular} = (c_{light} \cdot m_{specular})\max(0,\hat{v} \cdot \hat{r})^{m_{gloss}}, Cspecular=(clightmspecular)max(0,v^r^)mgloss,
其中v为视线方向的单位矢量,r为反射反射矢量。r可由如下公式计算得到:
r ^ = 2 ( n ^ ⋅ l ^ ) n ^ − l ^ , \hat r= 2(\hat n \cdot \hat l)\hat n - \hat l, r^=2(n^l^)n^l^,
与上面的 Phone 模型相比,Blinn 提出了一个更节省计算性能的公式,引入一个新的向量h,避免计算反射向量 r。Blinn-Phone 高光模型如下所示:
C s p e c u l a r = ( c l i g h t ⋅ m s p e c u l a r ) max ⁡ ( 0 , n ^ ⋅ h ^ ) m g l o s s , C_{specular} = (c_{light} \cdot m_{specular})\max(0,\hat{n} \cdot \hat{h})^{m_{gloss}}, Cspecular=(clightmspecular)max(0,n^h^)mgloss,
其中h为半角向量,可由如下公式计算:
h ^ = v ^ + l ^ ∣ v ^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值