当前位置: 首页 > news >正文

【光照】[光照模型]是什么?以UnityURP为例

【从UnityURP开始探索游戏渲染】专栏-直达

核心定义

光照模型‌是计算机图形学中用于模拟光线与物体表面相互作用的数学算法,它通过计算光能传播的物理特性,决定场景中每个像素的最终颜色值。其本质是求解‌光能传输方程‌的简化实现。

graph LR A[光源发射光子] --> B[与物体表面交互] B --> C[反射/折射/吸收] C --> D[进入人眼或传感器] D --> E[形成视觉颜色]

核心组成要素

光照模型通常包含以下物理现象的数学描述:

光-物交互基础组件

组件 物理原理 数学描述
环境光 全局间接光照 Lₐ = kₐ * Iₐ
漫反射 朗伯余弦定律 L_d = k_d * I * max(0, N·L)
镜面反射 菲涅尔反射 L_s = k_s * I * (R·V)^n
自发光 物体辐射 L_e = emissiveColor

高级光传输特性

  • 能量守恒‌:入射光能 = 反射光能 + 吸收光能 + 透射光能
  • 微表面理论‌:使用法线分布函数(D)、几何遮蔽(G)、菲涅尔(F)描述微观结构
  • 次表面散射‌:光在材质内部的传播(皮肤、玉石等)

光照模型的数学本质

光照模型是‌渲染方程‌的特定解形式:

$$
L_o(x,ω_o) = L_e(x,ω_o) + ∫_Ω f_r(x,ω_i,ω_o) L_i(x,ω_i) (n·ω_i) dω_i
$$

其中:

  • $L_o$:出射辐射度
  • $f_r$:双向反射分布函数(BRDF)
  • $L_i$:入射辐射度
  • $(n·ω_i)$:余弦衰减项

光照模型分类体系

游戏中的光照模型分类

graph TDA[标准光照模型] --> B[漫反射]A --> C[高光反射]B --> D[兰伯特模型]C --> E[Phong模型]C --> F[Blinn-Phong模型]G[BRDF] --> H[漫反射]G --> I[镜面反射]I --> J[GGX]I --> K[菲涅尔效应]L[PBR] --> GL --> M[能量守恒]L --> N[微表面理论]

按物理经验分类

graph TDA[光照模型] --> B[经验模型]A --> C[物理模型]B --> B1[Lambert]B --> B2[Phong]B --> B3[Blinn-Phong]C --> C1[Cook-Torrance]C --> C2[Oren-Nayar]C --> C3[Disney BRDF]

按光照范围分类

类型 原理 代表模型
局部光照 仅考虑直接光照 Phong, Blinn-Phong
全局光照 包含间接光照 路径追踪,辐射度算法
混合光照 直接+简化间接 屏幕空间环境光遮蔽(SSAO)

典型光照模型实现对比

模型 核心公式 适用场景 计算复杂度
Lambert L = k_d I (N·L) 粗糙无光泽表面 ★☆☆☆☆
Phong L = k_d(N·L) + k_s(R·V)^n 塑料/陶瓷 ★★☆☆☆
Blinn-Phong L = k_d(N·L) + k_s(N·H)^n 实时渲染通用 ★★☆☆☆
Cook-Torrance f = (D·F·G)/(4(N·V)(N·L)) 金属/高光材质 ★★★★☆
Oren-Nayar L = k_d I (A + B·max(0,cosφ)sinα tanβ) 布料/粗糙表面 ★★★☆☆

现代应用中的关键作用

在游戏引擎中的实现

  • Unity URP‌:

    csharp
    // 表面着色器示例
    void surf (Input IN, inout SurfaceOutputStandard o) {o.Albedo = _Color.rgb;o.Metallic = _Metallic;o.Smoothness = _Glossiness;o.Normal = UnpackNormal(tex2D(_NormalMap, IN.uv_MainTex));
    }
    
  • Unreal Engine‌:基于物理的材质编辑器(PBR)

电影级渲染应用

  • RenderMan RIS‌:使用路径追踪求解完整渲染方程

  • Arnold:

    surface PBR(color baseColor = 0.8,float metallic = 0,float roughness = 0.5)
    {// GGX微表面BRDF实现bsdf = ggx_brdf(normal, roughness, metallic);Ci = baseColor * illuminate(bsdf);
    }
    

技术演进里程碑

  • 1967‌:Bui Tuong Phong 提出漫反射模型
  • 1975‌:Phong 镜面反射模型完善
  • 1981‌:Cook-Torrance 推出首个物理BRDF
  • 2010‌:Disney 提出艺术家友好的PBR工作流
  • 2020‌:神经辐射场(NeRF)实现照片级渲染

前沿研究方向

  • 神经光照模型‌:使用深度学习预测复杂光传输
    • 示例:MIT 2023年提出的NeILF(神经逆光场)
  • 量子光照计算‌:光量子处理器加速路径追踪
  • 全息光场渲染‌:光波前重建技术(如Looking Glass显示屏)

光照模型是连接虚拟与现实的桥梁——从简单的(N·L)点积运算到包含数百万光路的路径追踪,其演进史就是计算机图形学追求物理真实性的奋斗史。理解光照模型不仅需要掌握其数学形式,更要洞察光与物质相互作用的物理本质。


【从UnityURP开始探索游戏渲染】专栏-直达

(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

本文由博客一文多发平台 OpenWrite 发布!

http://www.hskmm.com/?act=detail&tid=2413

相关文章:

  • 从知识管理困境到高效协同:Gitee Wiki如何重塑研发团队的知识体系
  • PHP数组去重和集合有什么关系
  • kkFileView4.4.0 安装与使用
  • ubuntu22挂载windows server2019的共享文件夹
  • PHP数组去重适用于哪些场景
  • 下载视频
  • 常用Linux配置
  • m1max可以装windows系统很卡吗
  • 1 | 移动语义:浅拷贝,深拷贝和引用拷贝,左值和右值
  • macbook air和windows系统区别
  • Gitee:国产代码托管的领军者,助力企业应对CODING停服挑战
  • 锂电池外围均衡电路仿真
  • Wireshark 学习笔记(一)
  • ELF 文件结构与加载流程介绍
  • 灵码产品演示:Maven 示例工程生成
  • NocoBase 本周更新汇总:优化及缺陷修复
  • CF1265E题解
  • 数组中的第K大元素
  • Gitee:本土开发者生态的崛起与数字化转型新范式
  • 从本土化优势到全场景覆盖:Gitee如何重塑中国开发者的DevOps体验
  • 【2025-09-11】脆弱的睡眠
  • 正则表达式基础
  • 即时通讯管理平台(后台管理)介绍文档
  • HC32F460串口重定向printf
  • 一个我很喜欢的故事
  • paraview将所有时间步下的数据导入到同一个文件中
  • 代码托管新视野:打造本土化研发协作平台,赋能企业敏捷开发新范式
  • 202312_DASCTF_找找找
  • 浅谈博弈论
  • pyinstaller 打包