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

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

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号 

相关文章:

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

Lecture 6 SH for diffuse transport Lecture 7关于 SH for glossy transport 三维空间全局光照 diffuse case和glossy case的区别 在Lambertian模型中&#xff0c;BRDF是一个常数 diffuse case 跟outgoing point无关 glossy case 跟outgoing point有关 &#xff08;Gloss…...

数据库开发常识(10.6)——SQL性能判断标准及索引误区(1)

10.6. 数据库开发常识 作为一名专业数据库开发人员&#xff0c;不但需要掌握数据库开发相关的语法和功能实现&#xff0c;还要掌握专业数据库开发的常识。这样&#xff0c;才能在保量完成工作任务的同时&#xff0c;也保质的完成工作任务&#xff0c;避免了为应用的日后维护埋…...

网络爬虫js逆向之某音乐平台案例

【注意&#xff01;&#xff01;&#xff01;】 前言&#xff1a; - 本章主要讲解某音乐平台的js逆向知识 - 使用关键字搜定位加密入口 - 通过多篇文章【文字案例】的形式系统化进行描述 - 本文章全文进行了脱敏处理 - 详细代码不进行展示&#xff0c;需要则私聊作者 爬虫js逆向…...

Spark--算子执行原理

一、sortByKey SortByKey是一个transformation算子&#xff0c;但是会触发action&#xff0c;因为在sortByKey方法内部&#xff0c;会对每个分区进行采样&#xff0c;构建分区规则&#xff08;RangePartitioner&#xff09;。 内部执行流程 1、创建RangePartitioner part&…...

事件驱动架构(EDA)

事件驱动架构&#xff08;Event-Driven Architecture, EDA&#xff09;是一种软件架构模式&#xff0c;其中系统的行为由事件的产生和处理驱动。在这种架构中&#xff0c;系统的组件通过事件进行交互&#xff0c;而不是通过直接的调用或者请求响应方式。 关键概念 事件&#x…...

C++ 入门速通-第5章【黑马】

内容来源于&#xff1a;黑马 集成开发环境&#xff1a;CLion 先前学习完了C第1章的内容&#xff1a; C 入门速通-第1章【黑马】-CSDN博客 C 入门速通-第2章【黑马】-CSDN博客 C 入门速通-第3章【黑马】-CSDN博客 C 入门速通-第4章【黑马】-CSDN博客 下面继续学习第5章&…...

2025春招,深度思考MyBatis面试题

大家好&#xff0c;我是V哥&#xff0c;2025年的春招马上就是到来&#xff0c;正在准备求职的朋友过完年&#xff0c;也该收收心&#xff0c;好好思考一下自己哪些技术点还需要补一补了&#xff0c;今天 V 哥要跟大家聊的是MyBatis框架的问题&#xff0c;站在一个高级程序员的角…...

排序算法--冒泡排序

冒泡排序虽然简单&#xff0c;但在实际应用中效率较低&#xff0c;适合小规模数据或教学演示。 // 冒泡排序函数 void bubbleSort(int arr[], int n) {for (int i 0; i < n - 1; i) { // 外层循环控制排序轮数for (int j 0; j < n - i - 1; j) { // 内层循环控制每轮比…...

简易C语言矩阵运算库

参考网址&#xff1a; 异想家纯C语言矩阵运算库 - Sandeepin - 博客园 这次比opencv快⑥倍&#xff01;&#xff01;&#xff01; 参考上述网址&#xff0c;整理了一下代码&#xff1a; //main.c#include <stdio.h> #include <stdlib.h> #include <string.h…...

通过C/C++编程语言实现“数据结构”课程中的链表

引言 链表(Linked List)是数据结构中最基础且最重要的线性存储结构之一。与数组的连续内存分配不同,链表通过指针将分散的内存块串联起来,具有动态扩展和高效插入/删除的特性。本文将以C/C++语言为例,从底层原理到代码实现,手把手教你构建完整的链表结构,并深入探讨其应…...

【分布式架构理论3】分布式调用(2):API 网关分析

文章目录 一、API 网关的作用1. 业务层面&#xff1a;简化调用复杂性2. 系统层面&#xff1a;屏蔽客户端调用差异3. 其他方面&#xff1a; 二、API 网关的技术原理1. 协议转换2. 链式处理3. 异步请求机制1. Zuul1&#xff1a;同步阻塞处理2. Zuul2&#xff1a;异步非阻塞处理 三…...

基于Kamailio、MySQL、Redis、Gin、Vue.js的微服务架构

每个服务使用一台独立的服务器的可行部署方案&#xff0c;尤其是在高并发、高可用性要求较高的场景中。这种方案通常被称为分布式部署或微服务架构。以下是针对您的VoIP管理系统&#xff08;基于Kamailio、MySQL、Redis、Gin、Vue.js&#xff09;的详细分析和建议。 1. 分布式部…...

6S模型的编译问题解决

使用python处理遥感光谱数据&#xff0c;免不了进行大气校正&#xff0c;基本上免费的就是使用Py6s&#xff0c;而py6s库只是一个接口&#xff0c;还需要自己配置6S模型&#xff0c;可以查到很多资料&#xff0c;6S模型是古老的fortran语言写的&#xff0c;基本配置流程就是安装…...

C++11详解(二) -- 引用折叠和完美转发

文章目录 2. 右值引用和移动语义2.6 类型分类&#xff08;实践中没什么用&#xff09;2.7 引用折叠2.8 完美转发2.9 引用折叠和完美转发的实例 2. 右值引用和移动语义 2.6 类型分类&#xff08;实践中没什么用&#xff09; C11以后&#xff0c;进一步对类型进行了划分&#x…...

实验十四 EL和JSTL

实验十四 EL和JSTL 一、实验目的 1、掌握EL表达式的使用 2、掌握JSTL的使用 二、实验过程 1、在数据库Book中建立表Tbook&#xff0c;包含图书ID&#xff0c;图书名称&#xff0c;图书价格。实现在bookQuery.jsp页面中模糊查询图书&#xff0c;如果图书的价格在50元以上&#…...

为什么在springboot中使用autowired的时候它黄色警告说不建议使用字段注入

byType找到多种实现类导致报错 Autowired: 通过byType 方式进行装配, 找不到或是找到多个&#xff0c;都会抛出异常 我们在单元测试中无法进行字段注入 字段注入通常是 private 修饰的&#xff0c;Spring 容器通过反射为这些字段注入依赖。然而&#xff0c;在单元测试中&…...

DeepSeek大模型介绍、本地化部署与使用!【AI大模型】

一、DeepSeek 是什么&#xff1f; 1.技术定位 专注大模型与AGI研究&#xff0c;开发高性能基座模型&#xff08;如 DeepSeek LLM 系列&#xff09;&#xff0c;支持长文本、多模态、代码生成等复杂任务。 提供开源模型&#xff08;如 DeepSeek-MoE、DeepSeek-V2&#xff09;…...

备考蓝桥杯嵌入式4:使用LCD显示我们捕捉的PWM波

上一篇博客我们提到了定时器产生PWM波&#xff0c;现在&#xff0c;我们尝试的想要捕获我们的PWM波&#xff0c;测量它的频率&#xff0c;我们应该怎么做呢&#xff1f;答案还是回到我们的定时器上。 我们知道&#xff0c;定时器是一个高级的秒表&#xff08;参考笔者的比喻&a…...

智能化转型2.0:从“工具应用”到“价值重构”

过去几年&#xff0c;“智能化”从一个模糊的概念逐渐成为企业发展的核心议题。2024年&#xff0c;随着生成式AI、大模型、智能体等技术的爆发式落地&#xff0c;中国企业正式迈入智能化转型的2.0时代。这一阶段的核心特征是从单一场景的“工具应用”转向全链条的“价值重构”&…...

机器学习之数学基础:线性代数、微积分、概率论 | PyTorch 深度学习实战

前一篇文章&#xff0c;使用线性回归模型逼近目标模型 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章内容来自于 强化学习必修课&#xff1a;引领人工智能新时代【梗直哥瞿炜】 线性代数、微积分、概率论 …...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...