前言

射线和几何体的求交在实际开发中是非常常见的一种操作,几何体从定义的角度上可以分为 隐式几何体显示几何体 。就我的理解来说,隐式几何体就是能够用直接由 x, y, z 来定义的几何体,反之无法直接表示的就为显示几何体(包括参数方程表示的),在此梳理一下截止到目前遇到过的几何体求交。

隐式几何求交

本文罗列的隐式几何体有:轴对齐包围盒、包围球(或椭球)、平面和三角形;

1. 轴对齐包围盒

2. 包围球

3. 平面

这里主要利用平面的点法式方程;

4. 三角形

分两步,利用射线和平面相交,然后判断交点是否在三角形平面内;

显式几何求交

显式几何求交实际上就是射线和三角形求交,即把显式几何体求交转变为了与隐式几何体求交,但是三角面片的数量是非常夸张的,所以需要利用到各种各样的加速结构,这里主要讲BVH加速结构;

BVH加速

后记

困困困,难难难

参考链接

  1. 射线和轴对齐包围盒的快速求交

  2. GAMES101 Ray Tracing