【光照】Unity中的[光照模型]概念辨析

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

基础光照模型‌

‌标准光照模型(Standard Lighting Model)‌

  • 定义‌:传统光照计算的框架,通常包含漫反射、镜面反射和环境光三部分。
  • 特点‌:非物理经验模型,计算简单但缺乏真实感。
  • 从属关系 ‌:
    • 包含 ‌漫反射 ‌ 和 ‌高光反射
    • 是 ‌Phong模型 ‌ 和 ‌Blinn-Phong模型‌ 的基础框架。

‌漫反射(Diffuse Reflection)‌

  • 定义‌:光线均匀散射到所有方向(如哑光表面)。
  • 模型 ‌:
    • 兰伯特模型Lambertian Model ‌:
      • 公式:I = k_d * (N·L)
      • 特点:与视角无关,仅依赖法线和光照方向。

‌高光反射(Specular Reflection)‌

  • 定义‌:光线集中反射(如镜面或金属光泽)。
  • 模型 ‌:
    • Phong模型 ‌:
      • 公式:I = k_s * (R·V)^n
      • 特点:基于反射向量(R)和视角(V)计算高光。
    • Blinn-Phong模型 ‌:
      • 公式:I = k_s * (N·H)^n
      • 特点:用半角向量(H)替代反射向量,计算更高效。

‌物理基础模型‌

‌BRDF(Bidirectional Reflectance Distribution Function)‌

  • 定义‌:描述入射光与出射光关系的数学函数,是PBR的理论基础。
  • 特点 ‌:
    • 满足能量守恒(反射率≤1)。
    • 包含 ‌漫反射 ‌ 和 ‌镜面反射‌ 的物理计算。
  • 从属关系 ‌:
    • 是 ‌PBR‌ 的核心数学工具。
    • 包含 ‌GGX ‌(法线分布函数)和 ‌菲涅尔效应‌。

‌GGX(Trowbridge-Reitz分布)‌

  • 定义‌:一种微表面法线分布函数(NDF),用于PBR的镜面反射计算。
  • 特点 ‌:
    • 更真实模拟粗糙表面的高光拖尾效果。
    • 公式:D(m) = α² / [π((N·m)²(α²-1)+1)²]
  • 从属关系 ‌:
    • 属于 ‌BRDF‌ 的组成部分。
    • 是 ‌Cook-Torrance BRDF‌ 的核心部分。

‌菲涅尔效应(Fresnel Effect)‌

  • 定义‌:光线在不同角度下反射率变化的物理现象(如玻璃边缘更反光)。
  • 特点 ‌:
    • 金属材质反射率随角度变化显著。
    • 非金属材质(如塑料)反射率较低。
  • 从属关系 ‌:
    • 是 ‌BRDF‌ 的组成部分。
    • 在 ‌PBR‌ 中用于计算镜面反射。

‌高级渲染框架‌

‌PBR(Physically Based Rendering)‌

  • 定义‌:基于物理的渲染流程,使用BRDF等物理模型模拟真实光照。
  • 特点 ‌:
    • 能量守恒(无"超亮"高光)。
    • 参数化(金属度、粗糙度)。
  • 从属关系 ‌:
    • 基于 ‌BRDF ‌ 和 ‌微表面理论‌。
    • 包含 ‌GGX ‌ 和 ‌菲涅尔效应‌。
    • 替代传统 ‌标准光照模型‌。

‌关系层级图‌

graph TD A标准光照模型 --> B漫反射 A --> C高光反射 B --> D兰伯特模型 C --> EPhong模型 C --> FBlinn-Phong模型 GBRDF --> H漫反射 G --> I镜面反射 I --> JGGX I --> K菲涅尔效应 LPBR --> G L --> M能量守恒 L --> N微表面理论


‌关键区别‌

概念 物理性 计算复杂度 应用场景
标准光照模型 实时渲染(如老游戏)
BRDF 电影级渲染
PBR 现代游戏/3D设计

‌总结‌

  • 传统模型‌(如Phong/Blinn-Phong)是经验公式,适合快速渲染。
  • BRDF‌ 是物理模型,为PBR提供数学基础。
  • PBR‌ 是完整流程,整合BRDF、GGX、菲涅尔等实现真实感渲染。

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

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

相关推荐
xcLeigh2 小时前
Unity基础:GameObject与Component——Unity核心架构思想彻底理解
unity·教程·component·gameobject
郝学胜-神的一滴8 小时前
中级OpenGL教程 022:探秘三维世界的血脉传承——物体父子关系与矩阵递归奥义
c++·线性代数·unity·矩阵·游戏引擎·unreal engine·opengl
weixin_424294671 天前
Unity的测试Edit Mode和Play Mode,有什么区别?
unity
帅次1 天前
Android 高级工程师面试:Flutter 渲染与性能 近1年高频追问 20 题
android·flutter·面试·渲染·性能
玖玥拾1 天前
Unity 3D 笔记(八)ScrollRect 滚动视图、NavMesh 自动寻路系统
笔记·3d·unity
淡海水2 天前
06-04-YooAsset源码-Unity加密解密服务
前端·unity·性能优化·c#·游戏引擎·yooasset
cd_949217213 天前
Unity游戏角色资产怎么快速制作?用V2Fun跑通生成、绑定和导入测试
游戏·unity·游戏引擎
HH‘HH3 天前
Unity 项目创建标准指南:分辨率、尺寸、文件路径与命名规范
unity·游戏引擎