C++ opengl光线跟踪与网格

C++ opengl光线跟踪与网格,c++,opengl,graphics,raytracing,C++,Opengl,Graphics,Raytracing,我能够在线获得光线跟踪器的起始代码,起始代码有两个“几何体”: 类球 阶级三角 我理解三角形,因为代码使用三角形创建网格,并从每个像素获取三角形和光线之间的交点。但球体是如何发挥作用的呢 所以我在网上做了一些研究,其中很多都讨论了三角形相交和球体相交。但我们如何在网格中使用球体呢 网格是三角形的集合,要使用光线跟踪渲染该对象,必须使用所有三角形求解大量光线跟踪方程。但是,球体具有闭合形式的隐式函数,因此求解光线相交非常容易。这两个示例对象来自这样一个事实,即我们在计算机图形学中有两种表示对象的方

我能够在线获得光线跟踪器的起始代码,起始代码有两个“几何体”:

类球

阶级三角

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


所以我在网上做了一些研究,其中很多都讨论了三角形相交和球体相交。但我们如何在网格中使用球体呢

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

“球体是如何发挥作用的”——我们应该如何知道?您只告诉我们光线跟踪器包括一个。@CaptainObvlious我想我在期待了解光线跟踪算法的人的回答。许多光线跟踪教科书都将三角形和球体作为基本体。我得到了三角形,但我不明白球体是如何工作的,除非它们被用于mesh@CaptainObvlious我想我应该说清楚我在问光线跟踪算法。即使我把代码提供给你,我想你也不会知道,但是谢谢你评论《漫不经心的船长》。除了你尖刻的态度,问题是你的帖子不清楚。“sphere是如何发挥作用的”是一个非常宽泛的概念,它可以表示从如何实现到如何与其他对象交互,再到如何管理。如果你想知道球体是如何工作的,那就是你应该问的问题。哇,开枪了哈哈。我只是想问为什么很多光线跟踪算法解释球体。我知道我的问题并不是最具体的问题,但这也是我为什么要问的原因,这样了解它的人可以引导我通过它。也很刺耳?哈哈。你是那个第一次评论就大发雷霆的人。但这很酷,伙计。