opengl 光线追踪和网格
opengl ray tracing and mesh
我能够在线获得光线追踪器的起始代码,起始代码有两个 "Geometries":
class 球体
class三角形
我理解三角形,因为代码使用三角形创建网格并从每个像素获取三角形和射线之间的交点。但是球体是如何发挥作用的呢?
所以我在网上做了一些研究,很多人都在讨论三角形相交和球面相交。但是我们如何在网格中使用球体呢?
网格是三角形的集合,要使用光线追踪渲染该对象,您必须求解大量包含所有三角形的光线追踪方程。然而,球体具有封闭形式的隐函数,求解射线相交非常容易。这两个示例对象来自这样一个事实,即我们在计算机图形中有两种表示对象的方法,我们有一个封闭形式的隐式函数的隐式对象和我们有三角形集合的多边形网格表示。通常,在光线追踪中,我们有球体、圆柱体、平面(三角形)和环面等物体,我们有一个封闭形式的函数,我们可以找到它们与光线的交点。对于像兔子这样的复杂物体,光线被投射并与一组平面(三角形)相交。
我能够在线获得光线追踪器的起始代码,起始代码有两个 "Geometries":
class 球体
class三角形
我理解三角形,因为代码使用三角形创建网格并从每个像素获取三角形和射线之间的交点。但是球体是如何发挥作用的呢?
所以我在网上做了一些研究,很多人都在讨论三角形相交和球面相交。但是我们如何在网格中使用球体呢?
网格是三角形的集合,要使用光线追踪渲染该对象,您必须求解大量包含所有三角形的光线追踪方程。然而,球体具有封闭形式的隐函数,求解射线相交非常容易。这两个示例对象来自这样一个事实,即我们在计算机图形中有两种表示对象的方法,我们有一个封闭形式的隐式函数的隐式对象和我们有三角形集合的多边形网格表示。通常,在光线追踪中,我们有球体、圆柱体、平面(三角形)和环面等物体,我们有一个封闭形式的函数,我们可以找到它们与光线的交点。对于像兔子这样的复杂物体,光线被投射并与一组平面(三角形)相交。