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

【光照】[PBR][环境光]实现方法解析

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

环境光实现流程

环境光在基于物理的渲染(PBR)中主要通过以下流程实现:

  • 环境贴图采样‌:获取周围环境的辐照度
  • 漫反射计算‌:处理非金属材质的漫反射部分
  • 镜面反射计算‌:处理金属和高光的反射部分
  • 环境光遮蔽‌:考虑几何遮蔽和环境遮挡
  • 最终混合‌:将环境光与其他光照成分结合

主要环境光实现模型

1. 球谐光照(Spherical Harmonics)

原理‌:

  • 将环境光信息编码为球谐系数
  • 使用低阶多项式近似环境光照

公式‌:

$L(θ,ϕ)≈\sum_{l=0}n\sum_{m=−l}lc_lmY_lm(θ,ϕ)$

特点‌:

  • 内存占用小
  • 计算效率高
  • 适合动态场景

2. 预计算辐照度贴图(Precomputed Radiance Transfer)

原理‌:

  • 预计算环境光对场景的影响
  • 存储为立方体贴图或2D贴图

实现方式‌:

  • 漫反射:预卷积的辐照度图
  • 镜面反射:预过滤的反射探针

3. 屏幕空间反射(Screen Space Reflection)

原理‌:

  • 直接在屏幕空间追踪光线
  • 实时计算环境反射

特点‌:

  • 无需预计算
  • 消耗较大GPU资源
  • 只能反射屏幕内可见内容

Unity URP的环境光实现方案

核心方案:反射探针 + 球谐光照

实现代码‌:

hlsl
// 环境光漫反射计算
half3 ambientDiffuse = SampleSH(normalWS) * surfaceData.albedo;// 环境光镜面反射计算
half3 reflectVector = reflect(-viewDirectionWS, normalWS);
half3 ambientSpecular = GlossyEnvironmentReflection(reflectVector,positionWS,surfaceData.roughness,1.0
);// 最终环境光
half3 ambient = ambientDiffuse * (1 - surfaceData.metallic) +ambientSpecular * surfaceData.metallic;

选择原因‌:

  • 性能与质量平衡‌:

    • 球谐光照提供高效的漫反射环境光
    • 反射探针处理高质量的镜面反射
  • 动态场景支持‌:

    • 反射探针可实时更新
    • 球谐系数可动态计算
  • 移动端优化‌:

    hlsl
    // 移动端简化版
    half3 ambient = SampleSH(normalWS) * surfaceData.albedo;
    half3 specular = surfaceData.metallic * SAMPLE_TEXTURECUBE_LOD(_GlossyEnvironmentCube,sampler_GlossyEnvironmentCube,reflectVector,surfaceData.roughness * UNITY_SPECCUBE_LOD_STEPS
    );
    
  • 艺术家友好‌:

    • 直观的反射探针放置
    • 自动生成的球谐光照

关键实现细节

  • 反射探针系统‌:

    • 立方体贴图预过滤
    • 多级mipmap存储不同粗糙度的反射
    • 混合探针权重计算
  • 球谐光照计算‌:

    • 使用3阶球谐(9个系数)
    • 场景光照烘焙为球谐系数
    • 实时动态物体也能接收球谐光照
  • 环境光遮蔽集成‌:

    hlsl
    ambient *= lerp(1.0, occlusion, _AmbientOcclusionParam.w);
    
  • 性能分级处理‌:

    hlsl
    #if defined(_ENVIRONMENTREFLECTIONS_OFF)half3 ambientSpecular = 0;
    #else// 完整反射计算
    #endif
    

各模型性能对比

模型 内存占用 GPU消耗 动态支持 视觉质量
球谐光照 极低 极低 ★★★★★ ★★☆☆☆
反射探针 中-高 ★★★☆☆ ★★★★☆
SSR ★★★★☆ ★★★★☆
URP混合方案 ★★★★☆ ★★★★☆

Unity URP的选择优势

分级渲染支持‌:

  • 高端设备:完整反射探针+球谐
  • 移动设备:简化版球谐光照

场景适应性‌:

  • 室内场景:高密度反射探针
  • 开放世界:球谐为主+关键区域探针

动态GI支持‌:

  • 可与光照探针系统配合
  • 支持实时环境光更新

扩展性强‌:

  • 容易集成SSR等后期效果
  • 支持自定义环境光遮蔽

Unity URP的环境光实现方案在保持实时性能的同时,通过精心设计的混合策略提供了足够高质量的全局光照效果,特别适合需要跨平台部署的项目。随着硬件发展,URP也在逐步引入更多实时全局光照技术,如Enlighten和GPU Lightmapper的集成,但核心的环境光处理架构仍保持这一基本设计理念。


【从UnityURP开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

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

相关文章:

  • 树莓派搭建NAS之五:数据同步
  • 初识文件管理
  • 微信社群机器人搭建 教程/开发
  • 2025 年激光粒度仪厂家 TOP 企业品牌推荐排行榜,电位仪 / 纳米粒度及 Zeta 电位仪 / Zeta 电位仪公司推荐
  • 微信智能机器人开发-基于WTAPI框架,实现强大的个微管理
  • 2025粒度仪厂家 TOP 企业品牌推荐排行榜,粒度分析仪,喷雾,激光,纳米,在线,图像粒形,干湿两用粒度仪公司推荐
  • glibc堆
  • 完整教程:从 “T+1” 到 “秒级”:MySQL+Flink+Doris 构建实时数据分析全链路
  • 平均数
  • 质数表
  • 小作业 11
  • 深入解析:【RabbitMQ】原理解析
  • 一次insert插入多条数据比insert循环插入数据效率高多少?
  • 内存映射文件
  • 详细介绍:Java安全“幽灵”:深入剖析内存马的原理、注入与查杀
  • 2025波形护栏厂家 TOP 企业品牌推荐排行榜,山东波形护栏防撞,三波,二波,双波,喷塑,公路,热浸锌,浸塑,镀锌波形护栏公司推荐!
  • 好数
  • 2025.10 做题记录
  • 页面分配策略
  • 2025防火皮革厂家TOP企业品牌推荐排行榜,B1级防火皮革,建筑防火皮革,审讯室防火皮革,邮轮级防火皮革,软包防火皮革公司推荐
  • 最强AI图片变视频工具,无内容限制,偷偷下载收藏
  • 2025年电子设备行业最受欢迎的5款CRM推荐
  • 2025年铝板厂家TOP企业品牌推荐排行榜,1060铝板,1100铝板,3003铝板,3004铝板,5052铝板,5083铝板,6061铝板,6063铝板,6082铝板公司推荐!
  • 2025年防撞软包厂家TOP企业品牌推荐排行榜,询问室,幼儿园,B1墙板,防撞软包门防火墙板,阻燃墙板,防撞软包家具,桌椅,马桶,洗手盆公司推荐
  • HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容——错误代码:0x00000000 - 教程
  • 2025年防撞软包厂家TOP企业品牌推荐排行榜,谈话室,留置病房,教育中心,体育馆,约谈室,监察机构,墙体,阻燃,醒酒室,墙面,洽谈室,留置室,防撞软包洽谈桌公司推荐
  • MySQL 全量 + 增量备份脚本(RPM 安装)实践与疑问解析
  • 2025最新展会搭建公司推荐排行榜:服务商创意定制与全流程服务能力深度解析
  • 10 3
  • 2025磁选机厂家TOP企业品牌推荐排行榜,立环磁选机,高梯度磁选机,立环高梯度磁选机,油冷立环磁选机公司推荐