三维空间全局光照 | 及各种扫盲

news/2025/2/6 15:16:12 标签: 虚幻, 图形学

Lecture 6

SH for diffuse transport

Lecture 7关于

SH for glossy transport

三维空间全局光照

diffuse case和glossy case的区别

在Lambertian模型中,BRDF是一个常数

diffuse case 跟outgoing point无关

glossy case  跟outgoing point有关 (Glossy就是介于Specular和Diffuse中间的)

“Wavelet” 小波函数

小波变换原理:一次讲透小波变换原理,全新角度切入,20分钟时长警告!_哔哩哔哩_bilibili

dot product<->Similarity

基函数(Basis Functions)

  • 球谐函数(Spherical Harmonics, SH)低频光照(如环境光、漫反射)。

  • 小波(Wavelets):适合表示高频细节(如硬阴影、镜面反射)。

“Interreflections” 指的是相互反射,通常用于描述光线在多个表面之间的多次反射现象

光照探针和反射探针

成组的光照探针,动态物体靠近探针时,把周围几个探针记录的数据插值。

「实战系统课」:Unity光照探针快速上手_哔哩哔哩_bilibili

Recap: PRT

Lo​(p,ωo​)=∫Ω+​Li​(p,ωi​)fr​(p,ωi​,ωo​)cosθi​V(p,ωi​)dωi​

Li​(p,ωi​):Lighting(光源):从方向 ωi进入点 p 的光的亮度

fr​(p,ωi​,ωo​)cosθi​V(p,ωi​)dωi​:通俗点说,Light Transport(光传输) 就是描述 光线如何从一个地方到达另一个地方的过程,但不包括光的源头(光源)。

可以把它想象成:
💡 光源 就像太阳、灯泡,它们是光的起点。
🪞 光传输 就是光线在物体表面上如何被 反射、折射、吸收,以及是否被 遮挡(投影阴影)

Recap:反射方程

总结

这个公式的作用是:

  1. 收集所有入射光 Li
  2. 考虑材质的反射方式 fr
  3. 考虑光照角度 cos⁡θi
  4. 检查是否有遮挡 V(p,ωi)
  5. 对所有可能的入射方向进行求和,得到最终的出射光 Lo(p,ωo)

通俗比喻

  • Li → 有哪些光源在照亮这个点?
  • fr → 这个表面是镜子、墙壁,还是金属?
  • cos⁡θi→ 光是正着照还是斜着照?
  • V(p,ωi) → 这个方向的光有没有被挡住?
  • 积分 ∫Ω+(...)dωi​ → 计算所有方向上的光照贡献,得到最终的颜色。

这个公式在 全局光照预计算辐射传输(PRT) 中非常重要,因为它描述了光线如何在场景中传播,并且决定了每个点的最终颜色。

Recap:球谐投影(Spherical Harmonics Projection)

f(x) = ∑ᵢ cᵢ ⋅ Bᵢ(x)

公式解释

  1. f(x):原始的2D函数,可以是光照信息、颜色分布、阴影等。
  2. Bᵢ(x):一组基函数(Basis Functions),这些基函数是球谐函数(Spherical Harmonics,SH)。
  3. cᵢ:投影系数(Coefficients),代表了函数 f(x)f(x)f(x) 在每个基函数 Bi(x)B_i(x)Bi​(x) 上的权重。

三维空间全局光照

realtime rendering中实现比直接光照多弹射一次的间接光照

次级光源secondary light source

真正光源primary light source

one-bounce global illumination (dir+indir)

得到p的间接光照

how

1)哪些算次级光源=which surface patches are directly lit (shadow mapping可以得到这个信息)

2)这些patches如何贡献给点p

假设:所有反射直接光照的reflector是diffuse的(不用管最后接收到的表面是不是)


这篇破笔记从2.3号写到2.5号 


http://www.niftyadmin.cn/n/5843117.html

相关文章

【分布式架构理论3】分布式调用(1):负载均衡

文章目录 零、三种不同的负载均衡一、常见行业负载均衡方案1. 电商与互联网服务2. 金融与支付系统3. 云计算与分布式存储 二、负载均衡策略概述1. 无状态负载均衡&#xff08;强调公平性&#xff09;2. 有状态的负载均衡&#xff08;强调正确性&#xff09; 三、 总结 零、三种…

前端开发中的“原生模块化”——深入解析ES模块(ESM)的使用与优化

随着前端开发技术的不断演进&#xff0c;模块化的概念已不再是新鲜话题。然而&#xff0c;前端开发者仍然面临如何选择和使用模块化工具和规范的问题。近年来&#xff0c;ES模块&#xff08;ESM&#xff0c;ECMAScript Modules&#xff09;作为一种原生支持的模块化机制&#x…

DRGDIP 2.0时代下基于PostgreSQL的成本管理实践与探索(上)

一、引言 1.1 研究背景与意义 在医疗领域的改革进程中&#xff0c; DRG/DIP 2.0 时代&#xff0c;医院成本管理的重要性愈发凸显。新的医保支付方式下&#xff0c;医院的收入不再单纯取决于医疗服务项目的数量&#xff0c;而是与病种的分组、费用标准以及成本控制紧密相关。这…

防孤岛保护装置在分布式光伏并网中的应用

什么是光伏的“孤岛效应” 孤岛islanding 包含负荷和电源的部分电网&#xff0c;从主网脱离后继续孤立运行的状态。孤岛可分为非计划性孤岛和计划性孤岛。 孤岛效应的危害 当电网侧停电检修&#xff0c;若并网光伏电站的逆变器仍在继续供电&#xff0c;维修人员不一定…

2024年Web前端最新Java进阶(五十五)-Java Lambda表达式入门_eclipse lambda(1),面试必备

对象篇 模块化编程-自研模块加载器 开源分享&#xff1a;【大厂前端面试题解析核心总结学习笔记真实项目实战最新讲解视频】 Arrays.sort(players, sortByName); // 1.3 也可以采用如下形式: Arrays.sort(players, (String s1, String s2) -> (s1.compareTo(s2))); ??其…

华水967数据结构2024真题(回忆版)

一、 选择[10道) (20分). 1、数据结构中&#xff0c;从逻辑结构上可以把数据结构分为() 答案&#xff1a;线性结构和非线性结构 2、给了一个二叉树的中序遍历&#xff0c;求二叉树的后序遍历 解析&#xff1a; 要根据中序遍历的结果来推导后序遍历&#xff0c;需要知道二叉…

TiDB 分布式数据库多业务资源隔离应用实践

导读 随着 TiDB 在各行业客户中的广泛应用 &#xff0c;特别是在多个业务融合到一套 TiDB 集群中的场景&#xff0c;各企业对集群内多业务隔离的需求日益增加。与此同时&#xff0c;TiDB 在多业务融合场景下的资源隔离方案日趋完善&#xff0c;详情可参考文章 《你需要什么样的…

学习threejs,pvr格式图片文件贴图

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️PVR贴图1.2 ☘️THREE.Mesh…