Games101学习笔记 Lecture 14: Ray Tracing 2 (Acceleration Radiometry)

Lecture 14: Ray Tracing 2 (Acceleration & Radiometry

  • 一、加速光线追踪 AABB
    • 1.均匀网格 Uniform Spatial Partitions (Grids)
      • ①前处理-构建加速网格
      • ②射线与场景相交
      • ③网格分辨率
      • ④适用情况
    • 2.空间划分
      • KD-Tree
        • ①预处理
        • ②数据结构
        • ③遍历
        • ④问题
    • 3.对象划分 & 包围盒层次结构(BVH)
      • ①步骤
      • ②数据结构
      • ③遍历
  • 二、辐射度量学
    • 1.Radiant Energy 辐射能量
    • 2.Radiant Flux 辐射(光)通量
    • 3.Radiant Intensity 辐射强度
      • 立体角求法
        • ①球面面积法
        • ②微分立体角法
    • 4. 辐照度 Irradiance
    • 5.辐射亮度 Radiance

一、加速光线追踪 AABB

1.均匀网格 Uniform Spatial Partitions (Grids)

①前处理-构建加速网格

  • 找到包围盒
  • 创建网格
  • 判断与物体表面相交的格子(图中右上角少画了一个)
    在这里插入图片描述

②射线与场景相交

  • 按照射线顺序遍历网格
  • 对每个网格单元
    • 测试与存储在该单元中所有对象相交的情况

③网格分辨率

  • 分辨率低,单元格太少 —— 没有加速效果
    在这里插入图片描述
  • 分辨率太高,单元格太多 —— 效率低
    在这里插入图片描述
  • 格子划分要适中,cells = C * objs(物体数),C ≈ 27 in 3D
    在这里插入图片描述

④适用情况

  • 在大量均匀分布的对象集合上表现良好
  • 大规模空气不适合

2.空间划分

  • Oct-Tree(八叉树)、KD-Tree(每次只砍一刀,沿轴方向划分)、BSP-Tree

KD-Tree

①预处理
  • 找到场景中所有的包围盒(AABB)
    • 找到这些包围盒的最小外包围盒,作为KD-Tree的根节点
  • 递归划分节点
    • 对每个节点选择一个轴进行划分(两种)
      • 最长轴:选择对象分布范围最大的轴
      • 中位数
②数据结构
  • 内部节点:(不存储物体)
    • 划分的轴
    • 划分的位置
    • 子结点
  • 叶节点
    • 物体的包围盒
③遍历
  • 判断射线是否与节点的包围盒相交
  • 如果是叶节点,则遍历叶节点中的对象,并测试射线与对象相交情况
  • 如果是内部节点,按顺序判断射线穿过的子节点
    在这里插入图片描述
④问题
  • 物体可能在多个格子里
  • KD-Tree构造太麻烦

3.对象划分 & 包围盒层次结构(BVH)

  • 每个物体只在一个包围盒中,包围盒可能重叠

①步骤

  • 找到包围盒
  • 递归地将包围盒分成两个
    • 最长轴:选择对象分布范围最大的轴
    • 中位数
  • 在每个叶节点存储物体
    在这里插入图片描述

②数据结构

  • 内部节点:
    • 包围盒
    • 子结点
  • 叶节点
    • 物体的包围盒
    • 物体

③遍历

  • 判断射线是否与节点的包围盒相交
  • 如果是叶节点,则遍历叶节点中的对象,返回最近的那个
  • 如果是内部节点,按顺序判断射线穿过的子节点

二、辐射度量学

1.Radiant Energy 辐射能量

  • 指电磁辐射的能量,单位为 J(焦耳)

2.Radiant Flux 辐射(光)通量

  • 单位时间内发射、反射或投射接收的能量,单位为 W(瓦特)

3.Radiant Intensity 辐射强度

  • 光源单位立体角内 发射的 功率,单位为 瓦特每球面度 (W/sr)
    在这里插入图片描述

立体角求法

①球面面积法
  • Ω = A/ r 2 r^{2} r2 ,A 是球面上被截取的面积,r 是球面半径
    在这里插入图片描述
②微分立体角法
  • dΩ = sinθ dθ dϕ,其中 θ 是极角,ϕ 是方位角
    在这里插入图片描述

4. 辐照度 Irradiance

  • 单位面积上 接收到 的辐射通量,单位为 W/ m 2 m^{2} m2(瓦特每平方米)
    在这里插入图片描述

5.辐射亮度 Radiance

  • 单位面积、单位立体角内沿特定方向传播的辐射通量,W/ m 2 m^{2} m2/sr(瓦特每平方米每球面度)
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lua: 轻量级多用途脚本语言

Lua 是一种高效而轻量级的脚本语言,具备强大的扩展性和灵活性,广泛应用于游戏开发、嵌入式系统、Web 应用等多个领域。本文将深入探讨 Lua 的特性、应用场景以及如何使用 Lua 进行开发。 1. Lua 的起源与发展 Lua 的发展始于上世纪90年代初,…

c++习题04-忙碌的工人

目录 一,问题 二,思路 1,图形 2,分析 3,伪代码 三,代码 一,问题 二,思路 1,图形 根据题目,绘制出来的图形如下👇 之后再绘制甲经过楼梯…

【数据结构】--栈

👌个人主页: 起名字真南 🤣个人专栏:【数据结构初阶】 【C语言】 目录 1 栈1.1 栈的概念和结构1.2 栈的实现1.2.1 头文件1.2.2 初始化1.2.3 销毁1.2.4 打印所有元素1.2.5 入栈1.2.6 出栈1.2.7 获取栈顶数据1.2.8 判空1.2.9 获取元素个数 1 栈 1.1 栈的概…

spring mvc实现一个自定义Formatter请求参数格式化

使用场景 在Spring Boot应用中,Formatter接口用于自定义数据的格式化,比如将日期对象格式化为字符串,或者将字符串解析回日期对象。这在处理HTTP请求和响应时特别有用,尤其是在展示给用户或从用户接收特定格式的数据时。下面通过…

昇思MindSpore学习入门-函数式自动微分

函数式自动微分 神经网络的训练主要使用反向传播算法,模型预测值(logits)与正确标签(label)送入损失函数(loss function)获得loss,然后进行反向传播计算,求得梯度&#…

[单机版]新天龙八部之14门派绝情谷版|Win一键端+GM工具

前言 今天给大家带来一款单机游戏的架设:新天龙八部之14门派绝情谷版一键端紫色穿刺 无字谱,金陵天外。 如今市面上的资源参差不齐,大部分的都不能运行,本人亲自测试,运行视频如下: [单机版]新天龙八部之…

数据结构-分析期末选择题考点(广义表)

莫道桑榆晚 为霞尚满天 数据结构-图期末选择题 数据结构-串、数组选择题 数据结构-排序选择题 数据结构-线性表、栈、队列、二叉树合集 契子✨ 广义表&#xff1a; <1>考点一&#xff1a;基本概念 广义表的基础概念 &#xff08;1&#xff09;什么是广义表 广义表&#…

53、基于竞争层的竞争学习(matlab)

1、基于竞争层的竞争学习简介及原理 竞争学习是一种无监督学习方法&#xff0c;其中的竞争层神经元之间互相竞争以学习输入模式的表示。竞争学习的一个经典模型是竞争神经网络&#xff08;Competitive Neural Network&#xff0c;简称CNN&#xff09;&#xff0c;其核心部分是…

运营商、银行、国企等单位开发岗24届Offer薪资与福利汇总

本文介绍24届校园招聘中&#xff0c;地理信息科学&#xff08;GIS&#xff09;专业硕士研究生所得Offer的整体薪资情况、福利待遇等。 在2024届秋招与春招中&#xff0c;我累计投递了170余个单位&#xff0c;获得17个Offer&#xff1b;平均每投递10个简历才能获得1个Offer。说句…

flink-触发器Trigger和移除器Evictor

窗口原理与机制 图片链接&#xff1a;https://blog.csdn.net/qq_35590459/article/details/132177154 数据流进入算子前&#xff0c;被提交给WindowAssigner&#xff0c;决定元素被放到哪个或哪些窗口&#xff0c;同时可能会创建新窗口或者合并旧的窗口。每一个窗口都拥有一个…

Pc端多功能视频混剪工具/便携版打开即用

PC便携版 视频批量剪辑大师&#xff0c;全自动剪辑神器&#xff0c;会打字就能做视频 多功能&#xff0c;视频混剪&#xff0c;视频配音&#xff0c;文字生成语音&#xff0c;图片合成视频&#xff0c;自动识别音频并生成字幕等功能 链接&#xff1a;https://pan.baidu.com/…

文件操作与管理

程序经常需要访问文件和目录&#xff0c;读取文件信息或写入文件信息&#xff0c;在Python语言中对文件的读写是通过文件对象&#xff08;file object&#xff09;实现的。Python的文件对象也称为类似文件对象或流&#xff08;stream&#xff09;&#xff0c;因为Python提供一种…

<电力行业> - 《第9课:输电(二)》

4 输送电能流程 输送电能总共有&#xff1a;发电站→升压变压器→高压输电线→降压变压器→用电单位等五个流程。 电力工业初期&#xff0c;发电厂建在电力用户附近&#xff0c;直接向用户送电&#xff0c;所以那个时候只有发电和用电两个环节。 随着电力生产规模和负荷中心规…

烧结刚玉砂轮片 磨具用晶谷低温陶瓷结合剂玻璃粉

晶谷CBN 砂轮磨具用低温陶瓷结合剂玻璃粉的一些特点如下&#xff1a; - 软化点&#xff1a;通常为450~650度&#xff1b; - 膨胀系数&#xff1a;50~12010-7&#xff1b; - 粒径&#xff1a;300~3000目&#xff08;可按要求订做&#xff09;&#xff1b; - 外观颜色&#xff…

h5兼容table ,如何实现h5在app内使用h5渲染table表格而且实现横屏预览?

压图地址 横屏div 通过css 实现 transform: rotate(90deg); transformOrigin: 50vw 50vw ; height: 100vw; width: 100vh;<divclass"popup-box":style"{transform: originSet 0 ? rotate(90deg) : ,transformOrigin: originSet 0 ? 50vw 50vw : ,height…

GuLi商城-商品服务-API-三级分类-删除-逻辑删除

注意&#xff1a;官方文档说logic配置可以省略&#xff0c;代码中直观些&#xff0c;配上吧 逻辑删除注解&#xff1a; 实体类字段上加逻辑删除注解&#xff1a; 启动nacos&#xff1a; 启动商品服务&#xff1a; postman测试&#xff1a; 数据库字段值改成了0&#xff0c;说明…

Linux----> tail、cat、more、head、less的用法详解

1.tail命令&#xff1a;用于查看文件的最后几行内容。 基本用法&#xff1a;tail [选项] [文件] 常用选项&#xff1a; -n <行数>&#xff1a;显示最后的 <行数> 行。-f&#xff1a;实时显示文件新增内容&#xff0c;通常用于查看日志文件。 示例&#xff1a;…

数据恢复篇:如何在没有备份的情况下从恢复已删除的照片

许多用户更喜欢将他们的私人照片保存在他们的 Android 设备上的一个单独的安全空间中&#xff0c;以确保他们的记忆不仅被存储&#xff0c;而且受到保护。这就是“安全文件夹”功能派上用场的地方。您可以使用 PIN 码、密码、指纹或图案锁定此文件夹&#xff0c;即使您的设备落…

[小试牛刀-习题练]《计算机组成原理》之数据信息的表示、运算方法与运算器

【数据信息的表示运算方法与运算器】 1、【机器码转换】X-0.11111111&#xff0c;X的补码是 1.00000001 。 最高位符号位为负值&#xff1a; 反码法——绝对值按位取反末位加一&#xff0c;1.000000000.000000011.00000001扫描法——从右往左找到第一个为1的&#xff…

常用字符串方法<python>

导言 在python中内置了许多的字符串方法&#xff0c;使用字符串方法可以方便快捷解决很多问题&#xff0c;所以本文将要介绍一些常用的字符串方法。 目录 导言 string.center(width[,fillchar]) string.capitalize() string.count(sub[,start[,end]]) string.join(iterabl…