计算机图形学----光线追踪(Ray Tracing)----加速(BVH)

光线求交加速算法:边界体积层次结构(Bounding Volume Hierarchies)1-BVH引入 光线求交加速算法:边界体积层次结构(Bounding Volume Hierarchies) 光线和物体求交的加速算法中,最常见的是物体(图元)细分和空间细分。边界体积层次结构(BVH)是一种基于图元(primitives)细分的光线相交加速方法,其中,图元被划分为不相交集的层次结构。 (相反,空间细分通常将空间划分为不相交集的层次结构。)下图显示了一个简单场景的边界框层次结构: 其中,图元存储在叶中,每个节点存储其所有子节点图元的边界框。 因此,当光线穿过树时,只要它不与节点的边界相交,就可. 阅读详情
AI摘要

本文介绍了光线追踪中的加速方法,特别是包围盒(AABB)在减少三角形求交计算上的作用,以及更高级的BVH(Bounded Volume Hierarchy)算法如何提高效率。讲解了二维和三维包围盒的应用,以及如何通过空间划分和物体划分来优化光线与AABB和BVH的相交检测。重点讲解了 BVH 的划分策略和代价计算,以提升渲染性能。

光线追踪–加速

	光线要和所有的三角形求交点,每一个光线都得计算光线和三角形求交。为了提高渲染的效率,我们需要计算加速。
	下图为1000w+三角形,光线弹射很多次,计算复杂。

在这里插入图片描述

加速的方法—包围盒的定义

如果光线碰不到物体的包围盒,那么光线肯定碰不到物体本身
二维包围盒:
在这里插入图片描述
三维的包围盒:
轴对齐包围盒(AABB).我们把包围盒看成是3个对面,且3个对面都与x,y,z中的某一个平面平行。
在这里插入图片描述

光线和包围盒(AABB)相交

光线和AABB求交(二维):
图一:光线在tmin时间进入到盒子(准确来讲,是进入到x0所在的线),tmax出去盒子(准确来讲,是出去到x1所在的线)
图二:光线在tmin进入y0所在的线,在tmax出去y1所在的线。(且tmin <0 ,因为光源在y0和y1之间)
图三:对于二维的情况,光线在tmin进入长方体,在tmax出去长方体。光线实际在包围盒的时间是tmax-tmin。图一和图二的交集为图三。
在这里插入图片描述
光线和AABB相交(三维):
理解为光线和三个对面(可以理解为无限大的平面)相交:
1.光线只有进入每个对面,光线才算进入到三维的AABB包围盒
2.光线只要离开一个对面,光线就离开了AABB包围盒
光线进入包围盒:
t_enter = max{tmin} // 光线进入最后一个对面的时间
t_exit = min{tmax} // 光线离开包围盒的时间
如果 t_enter < t_exit ,那么我们认为光线在包围盒内有一段时间。也就是光线和包围盒相交。
问题:
如果t_exit <0 :光线在三角形背后
i如果 t_exit >=0 and t_enter < 0? 光线的起点在包围盒中。
结论:
光线和AABB包围盒有交点,当且仅当:
t_enter < t_exit && t_exit >=0
*

算法简化:
原理:光线和平面x相交的时间t,可以理解为(p.x - o.x) / dx。

在这里插入图片描述

如何利用光线和AABB包围盒相交加速求交

1.场景预处理,划分格子(可以理解为块,包围盒)
2.首先判断光线如何和格子相交
在这里插入图片描述空间划分的算法:
在这里插入图片描述
KD-Tree和Oct-Tree 比较难判定三角形是否在某个包围盒内。
通过物体来划分加速结构(BVH划重点)
BVH算法根据物体来划分包围盒:
1.BVH防止一个物体出现在多个格子中
2.有可能有重叠的部分
在这里插入图片描述
如何做合适的划分:
1.沿着最长的轴划分
2.划分子节点的时候,永远选择第n/2大的三角形进行划分(n为场景中的三角形数目)

如何计算光线和BVH相交:
在这里插入图片描述

BVH效率优化

思路:
1.沿着最长的轴划分做第一次划分
2.找到cost最小的组合方式:
假设有Na个物体划分为子节点A,有Nb个物体划分给子节点B. 并且认为概率p与包围盒表面积成正比。
那么如下公式,可以计算出划分子节点的时候的代价C,该划分方式使得该节点的代价最小。
在这里插入图片描述
致谢:
截图和公式来源闫令琪老师games101课程 Ray Tracing 1
https://www.bilibili.com/video/BV1X7411F744?p=13
感谢闫令琪老师为我们带来这么精彩的图形学课程

闫令琪:Games101 现代计算机图形学-光线追踪(二):BVH算法及应用 & 作业Assignment06解析 scene里面add(object), 阅读详情

相关推荐

VBH加速结构(compute shader )RayTracing

Tip:VBH,RayTracing,Unity,Compute shader 全名:Bounding volume hierarchy 前言: 在我们写光追的时候,引入Mesh filter一类的不再是单独的模拟球,而涉及到Triangle,三角面的时候就会涉及到光线是否击中物体,也就是光线与物体的每一个三角面求交查看是否击中物体。涉及到这个最简单粗暴的就是遍历了,遍历是世界上最好的算法,没有之一。虽然肯定可以达到你要的效果,但是他会带来另一个致命缺陷开销过大,所以就开始各显神通创造多...

lala_lzw 的代码时间 3229

空间数据结构(四叉树、八叉树、BVH树、BSP树、k-d树)

转载地址:https://www.cnblogs.com/KillerAery/p/10878367.html 1. 前言: 在游戏程序中,利用空间数据结构加速计算往往是非常重要的优化思想,空间数据结构可以应用于场景管理、渲染、物理、游戏逻辑等方面。 因此,博主将游戏程序中常用的几个空间数据结构整理出这篇笔记,也会持续更新下去,有错误或有未及之处望指出。 2. 四叉树/八叉树 (Quadtree/Octree) 四叉树索引的基本思想是将地理空间递归划分为不同层次的树结构。 它将已知范围的空间等分成四个相等

XiaoCai 1万+

【计算机图形学】从物理到像素:光线追踪(Ray Tracing)核心原理与实现精讲

本文深入解析光线追踪(Ray Tracing)技术的核心原理与实现方法,从物理光学基础到计算机图形学应用全面讲解。详细介绍了光线追踪算法的工作机制,包括逆向追踪、反射折射计算等关键技术,并提供了实用的代码示例和性能优化技巧,帮助开发者掌握这一革命性的渲染技术。

weixin_30414305的博客 436

场景管理方法之BVH介绍

总结一下最近学习BVH的知识。      BVH全称:Bounding volume hierarchy。这是一种用来管理3D场景中物体的方法。      我主要是在光线追踪算法中用这个方法来做加速,因为光线追踪算法的计算要求非常高,稍微好点的画质,至少要求每像素达到上千的采样数量。简单介绍下光线追踪算法:从相机发射射线到场景中与场景中物体进行相交检测,如果碰撞检测成功,则根据物体的材质计算颜

Less Is More 1万+

WebGPU中Ray Packet光线追踪优化实践

光线追踪作为计算机图形学的核心技术,通过模拟光线传播实现逼真渲染效果。其核心原理是发射射线并与场景几何体求交,传统CPU实现存在计算密集的瓶颈。现代GPU凭借并行计算架构,特别是SIMD(单指令多数据)特性,为光线追踪提供了天然加速优势。Ray Packet技术通过将空间相邻的射线打包处理,显著提升内存访问效率和计算吞吐量。在WebGPU环境下,开发者可利用计算着色器和显式内存管理,实现高性能的Ray Packet光线追踪方案。该技术特别适用于浏览器端的实时3D渲染、游戏开发以及新兴的神经辐射场(NeRF)

weixin_34301132的博客 347

Foxglove 介绍以及入门使用教程

Foxglove 是由Foxglove 工作室开发的一套工具集,包括和等组件。跨平台支持:可以在 Windows、macOS 和 Linux 上运行。多协议兼容:支持 ROS、ROS 2、CAN 数据以及其他自定义协议。丰富的可视化功能:可以绘制点云、轨迹、激光雷达数据、IMU 数据等。实时与离线模式:既可以实时监控机器人状态,也可以加载和回放记录的数据文件。Foxglove 的 3D 视图允许你以三维方式查看机器人的运动轨迹、传感器数据和其他几何信息。你可以旋转、缩放和平移视图以获得更好的观察角度。

zolty 1万+

光线追踪30天速成指南:从零基础到掌握核心概念

光线追踪是计算机图形学中一种强大的渲染技术,能够模拟光线在场景中的传播、反射和折射,生成逼真的图像效果。本指南将带领你在30天内从零基础入门,逐步掌握光线追踪的核心概念和实现方法,最终能够独立构建一个简单但功能完整的光线追踪器。 ## 一、光线追踪基础:理解核心原理 光线追踪的基本思想是模拟光线从相机出发,与场景中的物体相交,并根据物体的材质属性计算颜色。这个过程可以简单概括为"发射光线-求交

gitblog_01160的博客 469

网络安全 —— 实验(基于华为eNSP模拟器)

8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)5. 实验五 —— 将交换机作为PC端通过交换机相连。5. 实验五 —— 将交换机作为PC端通过交换机相连。4. 实验四 —— 两个PC机通过两台交换机相连。2. 实验二 —— 两个PC机通过交换机相连。2. 实验二 —— 两个PC机通过交换机相连。

这个家伙看起来很懒,只想把你留下来哦 9338

光线追踪教学终极指南:Ray Tracing in One Weekend 大学计算机图形学课程应用实践

光线追踪(Ray Tracing)技术是计算机图形学领域的核心技术,能够生成高度真实的渲染图像。Ray Tracing in One Weekend 系列教程为初学者提供了一个完整的光线追踪学习路径,特别适合大学计算机图形学课程的教学应用。这个开源项目包含了三本完整的在线书籍,从基础概念到高级渲染技术,循序渐进地教授光线追踪的实现原理。 ## 📚 项目结构与核心资源 这个光线追踪教学项目采用

gitblog_00691的博客 482

3D Slicer-最强大的开源医学图像分割工具简要概述

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。读/写DICOM图像和多种其他格式;三维图像、多边形网格和体积渲染的交互式可视化;手动编辑和标记图像;使用刚性和非刚性算法融合和共同配准数据;图像自动分割;跟踪图像引导程序的设备。所有的功能模块可在工具栏里找到,提供搜索,下拉选择,左右切换等功能。3D slicer的大概情况就介绍到这里。它的功能非常强大,也没有必要说掌握每个功能的使用。

Tina姐的博客 2万+

新手必看:TwinCAT死活扫不到倍福CX5020?别慌,先检查这3个地方(附静态IP配置)

本文详细介绍了TwinCAT软件无法扫描到倍福CX5020控制器的常见问题及解决方案。从网络连通性检查、系统环境配置到静态IP设置,提供了一套完整的排查流程和优化建议,帮助新手快速解决通信问题,确保设备稳定运行。

weixin_27219587的博客 364

raytracing.github.io教学案例:大学计算机图形学课程应用

计算机图形学作为计算机科学专业核心课程,其理论抽象性与实践复杂性常导致教学效果不佳。传统教学中存在三大痛点:学生难以将光线追踪原理转化为代码实现(78%学习者反馈)、硬件资源限制导致渲染实验无法完成、缺乏循序渐进的项目架构支持分阶段教学。raytracing.github.io项目以"三阶段渐进式路径追踪"为核心,完美契合课程从基础几何到高级光照的教学逻辑,其开源特性与清晰代码结构为计算机图形学课...

gitblog_00431的博客 757

【FISCO-BCOS】十一、一键部署

一键部署包括以下服务:节点(FISCO-BCOS 2.0+)、管理平台(WeBASE-Web)、节点管理子系统(WeBASE-Node-Manager)、节点前置子系统(WeBASE-Front)、签名服务(WeBASE-Sign)。部署成功后,登录此网站:http://localhost:5000 访问WeBASE管理平台。快速搭建WeBASE管理台环境,方便用户快速体验WeBASE管理平台。修改节点管理子系统和签名服务组系统的mysql数据库配置。如使用root账户:改为。配置方法:参考如下指令。

naihe_fish的博客 2596

计算机图形学笔记十二:Ray Tracing2(AABB加速光线追踪)

计算机图形学自学笔记之 Ray Tracing2(AABB加速光线追踪)

qq_51776686的博客 1701

uniapp:详细ios本地离线打包完整流程,使用XCode苹果本地离线打包APP,UNIAPP IOS离线打包并上传到上传到App Store应用商店(mac环境 Uniapp iOS本地离线打包)

uniapp ios 本地离线打包(攻略),iOS App打包发布上架,uni-app项目离线打包之iOS,uni-app实现XCode苹果本地离线打包APP,UNIAPP之IOS离线打包,iOS开发打包ipa,uniapp 打包 IOS,uniapp ios app离线打包配置,uniapp打包离线App(ios),uniapp ios打包详细步骤,最新版iOS Xcode如何证书配置和ipa打包(附图文教程)uniapp申请ios证书,uniapp iOS打包,证书申请,XCode打包IOS应用发布Ap

✅ 精选推荐文章 4506

【科研数据获取】根据Excel表个中的企业/公司信息批量获取经纬度坐标,并进行地图可视化

批量获取企业/公司的经纬度坐标,并进行地图可视化1 需求2 实现途径3 需求逐步实现 1 需求 在做项目的时候,老板或者项目答辩时候甲方最喜欢看到的就是可视化结果,尤其是涉及到地图可视化。很多时候会遇到企业/公司的数据,想要做地图可视化,必不可少的就是要获取它们具体地址:第一种就是像查户口一样精准一下具体的城镇街道,还有一种就是经纬度信息,前一种属于文字内容往往用于管理方面,第二种数字信息多用于数据处理与分析。 2 实现途径 获取地理信息数据,自然需要使用到地图的功能,这里直接采用百度地图的拾取坐标系统,

lys_828的博客 2337

GAMES101-现代计算机图形学入门(Ray Tracing)

Ray Tracing

lzh804121985的博客 885

手把手教你学Simulink--电机控制架构与算法实现​场景示例:基于Simulink的电机速度环PID调节仿真

本文带你完成了电机速度环PID参数的科学整定,实现了:✅ 理解了速度环的级联系统特性与关键参数影响工程整定法(理论初值)系统辨识法(参数未知时)✅ PID Tuner自动调参(推荐!自动调参兼具快速性与鲁棒性✅ 学会了前馈补偿抗饱和等工程实用技巧。

MHD0815的博客 653

计算机图形学(光线追踪)

笔记:光线追踪Why Ray Tracing?Ray-Tracing Algorithm(光线追踪算法)Basic Ray-Tracing AlgorithmWhitted-Style Ray Tracing(Whitted风格的光线追踪)实现Ray-Surface Intersection(光线曲面相交)---如何求光线和曲面的交点Möller Trumbore AlgorithmAccelerating Ray-Surface Intersection(加速光线曲面相交)Bounding Volumes

xiao_xiao_lan的博客 3267

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

GAMES101复习:光线追踪(Ray Tracing)

图形学复习

最不正经的计算机专业学生 2054

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

GAMES101-现代计算机图形学入门(四)——光线追踪Ray Tracing

写本系列的目的是回顾已经学过的知识、记录新学习的知识或是记录心得理解,方便自己以后快速复习,减少遗忘。课程是b站。

qq_65078669的博客 1045

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

GAMES101-现代计算机图形学学习笔记(作业07)

GAMES101-现代计算机图形学学习笔记(作业07) Assignment 07GAMES101-现代计算机图形学学习笔记(作业07)作业作业描述思路结果 原课程视频链接以及官网 b站视频链接: link. 课程官网链接: link. 作业 作业描述 在之前的练习中,我们实现了 Whitted-Style Ray Tracing 算法,并且用 BVH 等加速结构对于求交过程进行了加速。在本次实验中,我们将在上一次实验的基础上实现完整的 Path Tracing 算法。至此,我们已经来到了光线追踪版块的最后

qq_36242312的博客 5780

计算机图形学Games101笔记--光线追踪。RTX ON!!!(<--删除线)

本博文仅作为复习笔记或者快速浏览。不适用于从零开始了解光线追踪。

顾若茵的博客 1019

10分钟看懂 Awesome Ray Tracing 光线追踪术语表:BRDF、BVH、GI 核心概念速查

如果你刚开始接触计算机图形学,翻开任何一篇光线追踪入门文章,大概率会被 BRDF、BVH、GI 这些缩写劝退。好消息是,开源项目 **Awesome Ray Tracing**(光线追踪资源精选清单)专门整理了一份 **光线追踪术语表**,把零散的专业名词一网打尽。本文带你用 10 分钟速查这份术语表的核心内容,读完就能轻松看懂大部分渲染相关的技术讨论,再也不怕缩写轰炸。 ## 光线追踪术语表在

gitblog_00121的博客 244

什么是光线追踪?Awesome Ray Tracing 带你7分钟看懂核心原理

光线追踪(Ray Tracing)是当前最受关注的计算机图形学技术之一:电影里以假乱真的爆炸特效、玻璃杯边缘的焦散光影、游戏画面中镜面般的水面反射,背后几乎都有它的身影。如果你正在寻找"光线追踪入门教程"或想弄清"光线追踪原理",由 GitHub 加速计划收录的 [awesome-ray-tracing](https://link.gitcode.com/i/ee13ff0ef7ece040f95

gitblog_00401的博客 152

GAMES101-现代计算机图形学入门-闫令琪 - lecture14 光线追踪2 - 加速结构(Ray Tracing 2 - Acceleration) - 课后笔记

光线追踪2 - 加速结构(Ray Tracing 2 - Acceleration) 对AABB结构优化来加速光线追踪的速度 均匀网格(Uniform grids) 空间划分(Spatial partitions) 均匀空间划分(Uniform Spatial Partitions) 上一节课中,使用了AABB包围盒的方式来判断物体,然后判断光线是否和包围盒相交,如果和包围盒相交,再判断是否和内部的物体相交。均匀空间划分就是直接使用了这个思想。 比如有下面这个场景: 先找到整个场景的包围盒

a1353206432的博客 1406
上一篇: 计算机图形学----光线追踪(Ray Tracing)
下一篇: 计算机图形学---光线追踪----辐射度量学(Radiometry)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值