物理渲染(PBR)-基于物理的光照模型

本文深入探讨了物理渲染(PBR)中的光照模型,包括Lambert、Phong和Blinn-Phong模型。重点解析了基于物理的光照模型,特别是BRDF的表面反射项和子表面反射,涉及Fresnel反射、法向分布、阴影-遮罩项和微表面理论。此外,还介绍了精准光源和环境光在渲染中的应用。


文章所用图片来自相关领域文献,如有侵权请联系撤除, 转载本文请注明出处

1.关于光照模型

  对于图形学领域和图形学开发来说,实时渲染的光照模型是一个最最基础的问题,简单的来讲,光照模型就是用来描述在真实环境下,物体表面一点在在光照下的反射颜色值.有许许多多的光照模型试图用数学的公式来模拟这个问题,当然这即是一个物理问题,也是一个数学问题.大学时最初接触计算机图形学时,对书本上关于光照模型的推到过程就极为不解,最近为了研究基于物理的光照模型看到一篇10年siggrgrah的course,(< Physically-Based Shading Models inFilm and Game Production  >中的background部分, Physically-Based Shading,其实现今大多流行于产业渲染如游戏中的技术集中来自己过去5-10年前这时间段的会议论文,读这期间的论文最能反应如今视频游戏渲染的前沿  )他是一个对基于物理的光照模型的很详细的教程,对光照模型的很多问题突然很多清晰明了了起来,尤其这篇文章中对于diffuse的解释让我顿感我一直在误解"漫反射"的意思,突然感觉很多国内基础教材的译文不准和推导不仔细会误导初学者,感觉这是篇好文,好文一定要分享,所以就有了把它较完整翻译下来的想法.
  首先本文先概述一下目前流行的几种光照模型,在图形学产业,尤其是游戏,实时的渲染要求我们不能完整的模拟自然界的光照,所以人们都是用各种计算上相对简单的光照模型去模拟.

Lambert模型:

 用来描述Diffuse Reflection,也就是被翻译为所谓的漫反射,愚以为这里漫反射翻译的并不准确,因为漫字偏晦涩,很多人会把它理解为"普通的"反射,但其实这里Diffuse的原意是弥散,散射的意思,其实更准确的物理学上的意思应该是"物体内部大量微粒子表面的反射"或者说是物体内部的散射,和直接的反射意义不同,下图可以直观的告诉我们什么是漫反射
  
,漫反射不是光线从一个点直接反出来的另一个光线,而是进入物体内部被各种子微粒散射出来的n条光线
Lambert模型这样近似的描述某一点的反射光强度:
I_{D}=\mathbf{L}\cdot\mathbf{N} C I_{L} ,
即入射光和法线的点乘再乘以材质颜色和入射光颜色,这里为什么是入射光和法线的点乘其实国内教科书上的解释很难让人信服甚至没有解释,这里还是要从上图那个散射里面来解释,入射光的散射程度可以粗略的认为同夹角(入射光和法线)的增大而减小,比如当垂直入射时,光线完全射入物体,如果不考虑物体的吸收和折射,那这部分光线完全被散射后反射出来,认为这时反射出来的光是最强的,但是这是一个很粗略的模型,除了物体的吸收和折射,其实角度很大时,散射的区域很大,我们不能认为所有反射的光都是从入射点发出来的,不过这个模型还是可以近似描述一些塑料,大理石等亚光材质(不吸收,不折射).

Phong模型

给定上面的光线,Phong模型描述为I_\text{p} = k_\text{a} i_\text{a} + \sum_{m\;\in\;\text{lights}} (k_\text{d} (\hat{L}_m \cdot \hat{N}) i_{m,\text{d}} + k_\text{s} (\hat{R}_m \cdot \hat{V})^{\alpha}i_{m,\text{s}}).
第一项表示为环境光影响,第二项是所有光照的lambert反射,第三项是反射光线和实现的点乘后alpha次幂,这里面不仅包括了环境光和漫散射,还考虑第三项的高光,让物体能够表现出高光斑,当实现和反射线重合时,认为高光最强.这个模型复杂了一些,但是能够表现金属这种有光泽的材质,事实上这个模型也没有遵从真正的物理原理,某种程度上是为了让物体看上去有个光斑而作的模拟.

Blinn-Phong模型

Blinn Phong基本假设与Phong是一样的,只是提高了运算效率,用 N \cdot H 替代上面的R \cdot V
<think> 我们正在讨论物理渲染PBR)的原理、应用及技术细节。根据引用内容,PBR是一种基于物理定律的渲染技术,旨在生成逼真的图像。其核心是模拟真实世界的光照和材料属性,确保在不同光照条件下保持视觉一致性。 原理部分: PBR基于物理定律,特别是光的反射和散射。它使用BRDF(双向反射分布函数)来描述光线如何从表面反射。引用[1]提到PBR的基本原理,引用[2][3]提到它通过物理模型计算光照和材质的相互作用。 技术细节: - 材质参数:包括金属度(metallic)、粗糙度(roughness)等。 - 光照计算:使用复杂的数学模型,如渲染方程。 - 渲染管线:涉及HDR、色调映射、全局光照等技术(引用[3])。 应用: 在Unity中,PBR通过设置材质属性和使用高质量纹理实现逼真效果(引用[2])。在Monado引擎中,PBR提升了虚拟现实游戏的沉浸感(引用[3])。 现在,我们按照用户要求的格式组织答案,包括使用$...$和$$...$$表示数学公式,添加引用标记,并生成相关问题。 </think> ### 物理渲染PBR)技术解析 #### 一、PBR核心原理 物理渲染基于真实物理定律模拟光与材质的交互: 1. **能量守恒原则** 入射光能$ E_i $ = 反射光能$ E_r $ + 吸收光能$ E_a $ $$ E_i = E_r + E_a $$ 确保场景中光线行为符合真实世界规律[^1][^3] 2. **双向反射分布函数(BRDF)** 核心函数$ f_{\text{BRDF}} $精确描述光线反射行为: $$ f_{\text{BRDF}}(l, v) = \frac{dL_o(v)}{dE_i(l)} $$ 其中$ l $为入射方向,$ v $为观察方向,$ L_o $为出射辐射率[^1][^3] 3. **材质属性物理化** | 参数 | 物理意义 | 取值范围 | |-------------|---------------------------|----------| | 金属度 | 电子自由移动程度 | [0,1] | | 粗糙度 | 表面微结构无序度 | [0,1] | | 高光反射 | 非金属表面菲涅尔反射 | [0.02,0.08] | | 基底色 | 纯材质吸收光谱特性 | RGB向量 | #### 二、关键技术实现 ```mermaid graph LR A[PBR渲染管线] --> B[材质预处理] A --> C[实时光照计算] A --> D[后处理优化] B --> B1(法线贴图烘焙) B --> B2(粗糙度图生成) C --> C1(IBL环境光卷积) C --> C2(实时光追) D --> D1(HDR色调映射) D --> D2(屏幕空间反射) ``` 1. **材质工作流**(Unity URP/HDRP实践) - **金属/粗糙度流程**: ```glsl vec3 F0 = mix(vec3(0.04), albedo, metallic); vec3 F = fresnelSchlick(max(dot(H, V), 0.0), F0); ``` - **镜面反射/光泽度流程**:分离高光与漫反射控制[^2] 2. **光照计算优化** - 环境光采用预计算辐照度图:$ L_{\text{env}} = \frac{1}{N}\sum_{i=1}^{N} L_i \cdot \max(\cos\theta_i, 0) $ - 实时点光源使用Cook-Torrance模型: $$ f_{\text{cook-torrance}} = \frac{D \cdot F \cdot G}{4(\omega_o \cdot n)(\omega_i \cdot n)} $$ 3. **移动端特殊优化**(URP方案) - 简化BRDF:Karis近似公式替代完整积分 - 纹理压缩:ASTC 6x6替代RGBA32 - 烘焙光照贴图减少实时计算[^2] #### 三、跨领域应用案例 1. **VR沉浸感增强**(Monado引擎) - 动态环境反射:$ R_{\text{env}} = \text{cubemap}( \text{reflect}(-V, N) ) $ - 眼球追踪优化:注视点区域采用全精度PBR[^3] 2. **影视级渲染**(HDRP管线) - 光线步进体积光:$ \tau(x) = \int_{0}^{d} \sigma_t \cdot L(x+t\omega) e^{-\int_{0}^{t}\sigma_t ds} dt $ - 16K HDR输出配合ACES色彩空间 3. **开放世界优化** - 分块式延迟渲染降低带宽 - 动态材质LOD:$ \text{精度} = k \cdot \frac{1}{\Vert P_{\text{cam}} - P_{\text{obj}} \Vert^2} $ > PBR核心价值:**通过物理正确性保证材质在任意光照场景下的视觉一致性**,避免传统渲染中手动调整参数的试错成本[^1][^2][^3] ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值