美文网首页3D渲染
3D渲染-光线追踪-加速结构

3D渲染-光线追踪-加速结构

作者: Cwwng | 来源:发表于2021-08-12 11:11 被阅读0次

一、回顾

Whitted-Style Ray Tracing使用递归的方式,做光线追踪。光线在场景中任何一个地方都可能发生弹射,在任何一个交点都要计算着色和阴影,最后加权到像素值上的原理。

解释了光线和三角形求交的方法。但是光线与三角形求交比较复杂。

然后引入轴对齐包围盒(AABB)结构,利用光线和AABB的求交,来解决光线与三角形求交复杂问题。

二、加速结构

现在我们知道了光线和AABB求交。那我们怎么利用它,来加速光线与场景求交问题?
答:使用以下两个技术来实现:
1、Uniform grids(均匀格子)
2、Spatial partitions (空间划分)
以上的方式,是在做光线追踪之前,对场景的预处理操作。

1、Uniform grids

(1)对场景预处理


1627892730860-a7155ecc-e443-49c7-9937-6208554be23f.png

(2)光线追踪


1627892989493-080ae082-3eed-4a1a-ad0b-fc5cc67cd0bf.png

(3)格子怎么进行划分的选择?


1627893416873-c53efef8-ff20-455e-a7ca-b9924bafc43e.png

(4)Uniform grids的问题


1627893875004-b7e32720-7408-4db0-9a29-a7a458fe5d1c.png

2、Spatial partitions

由于Uniform grids的问题,提出Spatial partitions的解决方案。
思路:Uniform grids是均匀的划分。在物体稀疏的地方不需要用很多格子划分。
下图是一些空间划分算法,KD-Tree使用最多。


1627894090480-e306dd9b-16c9-4ce3-8528-27dbf76330eb.png

1)KD-Tree

(1)KD-Tree对场景预处理


1627894373003-3bdfd6fe-a1df-4947-b971-82a4b2dacc03.png

(2)KD-Tree光线追踪


1627894844265-83edc006-f345-429d-bd84-145dce401e7a.png

(3)KD-Tree空间划分的问题
问题1:KD-Tree的建立不容易,需考虑三角形与格子的求交。
问题2:KD-Tree的划分,一个物体可能和多个格子有交集,则一个物体就会存储在多个叶子节点里。


1627895213616-d7fae998-99f7-41e0-9761-1b9b57d65cfa.png

2)BVH

为了解决KD-Tree的问题,提出Bounding Volume Hierarchy(BVH)。
从物体划分角度对场景预处理。(Object Partitions)
(1)BVH对场景预处理


1627895742765-868d494c-2cf1-496f-818b-50facbe64ed9.png

解决问题1:不用考虑三角形与格子求交,只需更新包围盒。
解决问题2:一个物体只存储在一个叶子节点里。

(2)如何划分物体?
1、总是沿着最长的轴进行场景划分。
2、取中间物体进行划分。
优势:均匀,构成最小深度的树。

3)总结

1627896142418-c2f899de-19be-4774-b367-d1236b0fe48c.png

相关文章

  • 3D渲染-光线追踪-加速结构

    一、回顾 Whitted-Style Ray Tracing使用递归的方式,做光线追踪。光线在场景中任何一个地方都...

  • 3D渲染-光线追踪-渲染方程

    一、直接光源的渲染方程 1、一个点光源 假设有一个点光源,看x点有多强的能量,自然就是反射过来的能量。即入射光经过...

  • Redshift渲染器界的珠穆朗玛峰

    redshift红移渲染器技术特点 习redshift的架构 GPU渲染器核心功能 GPU加速的光线追踪,全局照明...

  • 3D渲染-光线追踪-BRDF

    一、概念 BRDF:Bidirectional Reflectance Distribution Function...

  • 3D渲染-光线追踪-Whitted Style

    一、为什么要引入光线追踪? 1、理解 光栅化和光线追踪是两种不同的成像方式。光栅化是一种很快的近似方法,生成的图像...

  • 3D渲染-光线追踪-包围盒

    一、回顾 1、理解 上节通过光栅化和光线追踪的对比,引入光线追踪。 在光栅化中,其实就是构建网格,然后在像素网格中...

  • 基于物理的渲染

    基于物理的渲染和光线追踪算法 基于物理模型的渲染的目的是为了渲染出一张跟某个真实的3D场景一模一样的图片,就仿佛你...

  • Owlet for Mac(3D光线追踪渲染软件)

    Owlet for Mac是Mac平台上一款独立,无偏见,基于物理的光线追踪渲染器。owlet mac附带了400...

  • GPU & OpenGL相关 & 状态机 2022-06-15

    渲染分离线渲染(离线烘焙) 和 实时渲染。 实时渲染的技术实现分 普通渲染 和 光线追踪算法渲染https://w...

  • 3D渲染-光线追踪-辐射度量学

    一、为什么引入辐射度量学 问题一:之前提到 Blinn-Phong Model,是简化的光照模型。 其中 光照强度...

网友评论

    本文标题:3D渲染-光线追踪-加速结构

    本文链接:https://www.haomeiwen.com/subject/gjflbltx.html