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

【光照】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开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

http://www.xdnf.cn/news/19719.html

相关文章:

  • nginx关于root
  • AI使用指南:9月开学季,自动生成教学PPT
  • 基于 GEE 探索太湖区域 2010—2020 年增强型植被指数 EVI 时空变化
  • dify安装和配置
  • JS循环机制
  • 【ARMv7】开篇:掌握ARMv7架构Soc开发技能
  • 二叉树核心操作知识点整理
  • More Effective C++ 条款22:考虑以操作符复合形式(op=)取代其独身形式(op)
  • JAVA后端开发——forEach 与方法引用(::)详解
  • CoreShop微信小程序商城框架开启多租户-添加一个WPF客户端以便进行上传产品信息和图片(6)
  • 在本地使用 Docker 创建一个易受攻击的云环境
  • leetcode46.全排列
  • 【LLIE专题】一种语义感知知识引导的低照度图像增强方案
  • Day23 机器学习流水线(管道/pipeline)
  • 小程序开发:懒加载只加载当前和滑动到的图片
  • 【Doris入门】Doris数据表模型:主键模型(Unique Key Model)详解
  • 【重学MySQL】九十六、MySQL SQL Mode高效配置全攻略
  • Linux 孤儿进程 (Orphan Process)
  • 【学Python自动化】 6.1 Python 模块系统学习笔记 (与 Rust 对照)
  • Linux中命令收集
  • UE5 C++ 第三方动态库的使用
  • 「任天堂物语」08 任天堂的山寨时代
  • 递归进阶之全排列、组合
  • JS箭头函数
  • 数字铁流:2025.9.3国庆大阅兵系统架构解析
  • 贪心算法解决固定长度区间覆盖问题:最少区间数计算
  • OpenCV 实战:图像模板匹配与旋转处理实现教程
  • G156HAN04.0 宽温域高亮工业屏技术白皮书
  • Spring Ioc —— 集合类型的依赖注入
  • Next.js渲染模式:SSR、SSG与ISR揭秘