opengl射线追踪和网格

时间:2015-07-02 22:56:47

标签: c++ opengl graphics raytracing

我能够在线获取光线跟踪器的入门代码,并且入门代码有两个“几何图形”:

类球体

三角形

我理解三角形,因为代码使用三角形创建网格,并从每个像素获取三角形和光线之间的交集。但球体如何发挥作用?

所以我做了一些在线研究,很多人讨论了三角交叉和球体交叉。但我们如何在网格中使用球体?

1 个答案:

答案 0 :(得分:1)

网格是三角形的集合,要使用光线跟踪渲染该对象,您必须使用所有三角形来解决许多光线跟踪方程。然而,球体具有封闭形式的隐式函数,对于该函数来说,求解光线交叉是非常容易的。这两个样本对象来自这样一个事实,即我们有两种方式来表示计算机图形中的对象,隐式对象,我们有一个闭合形式的隐式函数和多边形网格表示,我们有一组三角形。通常,在光线跟踪中,我们有对象,如球体,圆柱体,平面(三角形)和环面,我们有一个闭合形式函数,我们可以找到它们与光线的交点。对于像兔子这样的复杂对象,光线被投射并与一组平面(三角形)相交。