PBR概论
来源:互联网 发布:linux apache链接php7 编辑:程序博客网 时间:2024/06/04 19:50
基于物理的渲染(PBR)是一系列渲染技术的总称,他们或多或少都基于物理世界的理论。相对与传统渲染管线,PBR的材质使用基于物理的参数,使得无论在什么光照情况下,材质的颜色都趋于物理正确。PBR的光照模型一般来说要满足以下3个条件:基于微表面模型;能量守恒;使用基于物理的BRDF。
微表面模型
所有的PBR技术都是基于微表面理论的。微表面理论认为,任何表面在微观尺度上都是由非常小的完美的镜面组成的。根据表面粗糙度的情况,微表面的朝向分布会有很大的不同。
表面越粗糙,微表面的朝向分布差异越大,当一束光照射到表面的时候,反射的高光可能朝向不同的方向,导致高光的范围变大,亮度降低;相反在光滑的平面上,高光的方向尽可能的接近,高光的范围变小,亮度较大。
能量守恒
能量守恒的原则是:反射光的能量应该比入射的能量要小。当一束光入射到表面的时候,分离成反射和折射两个部分。反射部分不进入物体内部,直接被反射出去,这就是高光部分;折射部分的光进入物体的内部,和物体内部的粒子碰撞,有一部分被物体吸收转化成热能,另一部分又折射出物体表面,也就是漫反射部分,漫反射部分的光线由于和物体内部粒子发生过碰撞,因此方向被改变,导致漫反射光的方向也是随机的。
金属和非金属的的反射和折射有明显的区别。入射到金属表面的折射光全部都被吸收,转化为金属内部的热能,因此金属只有高光部分,没有漫反射部分;非金属材质基友高光部分又有漫反射部分。
BRDF
双向反射分布函数(BRDF)是描述给定入射方向
Cook-Torrance BRDF包含一个漫反射项和一个高光项:
其中
c是物体的颜色,
Cook-Torrance BRDF的高光部分如下:
Cook-Torrance BRDF的高光部分包含三个函数项和一个正则化项。D,F,G分别表示法线分布项,菲涅尔方程,几何衰减项。
法向分布函数
给定表面粗糙度
当粗糙度很低的时候高光区域比较狭窄,亮度高;当粗糙度比较大的时候高光区域较大,亮度较低。
几何衰减项
在微表面理论中入射光线可能会被微表面遮挡(Geometry Obstruction),反射光线也可能会被其他微表面遮挡(Geometry Shadowing)。几何衰减项就是用来度量反射光线或者入射光线被微表面遮挡的概率。
与NDF项相同,几何衰减项也把粗糙度考虑在内,粗糙度越高入射光线和出射光线被遮挡的概率更高。下面使用Schlick-GGX的公式来表示在特定方向上的衰减项:
其中k是表面粗糙度
菲涅尔方程
菲涅尔方程描述入射到物体表面的入射光和折射光的比率,当一束光入射到表面的时候,给定一个观察者的角度,菲涅尔方程就能告诉我们反射光的能量占总的入射能量的比值。每一个材质都有其自身的基本反射率,当垂直看向某一表面时的反射率就是材质本身的基本反射率,这时的反射比较小,当视线接近90°时的反射最大。
菲涅尔是计算的是在绝对光滑表面光的反射,完整的菲涅尔等式非常复杂,通过观察真实世界材质的特性可以得到一个简单的表达式:
观察上图可以看出金属的
总结
在了解完Cook-Torrance的各个项以后,在入射光线的方向上做积分就可以计算出近似物理的在出射方向上的能量。
- PBR概论
- CISCO PBR
- 什么是PBR
- PBR基本理论
- pbr文章
- pbr制作
- 概论
- 概论
- 概论
- cisco路由器PBR实现
- 策略路由PBR详解
- policy and pbr/distibution
- Unity3d PBR海水渲染
- 策略路由PBR
- 华为路由器PBR
- PBR基于物理渲染
- PBR的初探
- PBR 基础知识干货总结
- TTL电平和CMOS电平总结
- C语言的发展及其版本
- Java 一条进程的栈区、堆区、数据区和代码区在内存中的映射
- Maximum Subarray
- Java中JNI的使用详解第三篇:JNIEnv类型中方法的使用
- PBR概论
- 数据科学学习笔记7 --- 数据挖掘基础
- Java单链表反转
- 将自己的类封装成lib的方法
- 【CV】图像处理之角点检测与亚像素角点定位
- Mybatis
- Hive阶段性总结实例一
- RAM、ROM、SRAM、DRAM、SSRAM、SDRAM、FLASH、EEPROM的区别
- 计算机组成原理知识点(第五章:输入输出系统)