【光照】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 ‌ 和 ‌菲涅尔效应‌。
    • 替代传统 ‌标准光照模型‌。

‌关系层级图‌


‌关键区别‌

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

‌总结‌

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

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

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

相关推荐
淡海水7 小时前
【光照】[自发光Emission]以UnityURP为例
unity·urp·光照模型·经验模型·自发光
寻水的鱼、、7 小时前
【Unity Shader学习笔记】(二)图形显示系统
unity·shader
NRatel13 小时前
Unity资源管理——操作一览(编辑器下 &运行时)
unity·资源管理·资源·打包ab·unity热更
1uther16 小时前
Unity核心概率④:MonoBehavior
开发语言·游戏·unity·c#·游戏引擎
霜绛1 天前
Unity:XML笔记(一)——Xml文件格式、读取Xml文件、存储修改Xml文件
xml·笔记·学习·unity·游戏引擎
霜绛1 天前
Unity笔记(八)——资源动态加载、场景异步加载
笔记·学习·unity·游戏引擎
枫景Maple1 天前
Unity中多线程与高并发下的单例模式
unity·单例模式·游戏引擎
魔术师Dix1 天前
在 Unity 中调用腾讯云机器翻译
学习·unity·c#·腾讯云·机器翻译
SmalBox2 天前
【URP】[平面阴影]原理与实现
unity·渲染