我正在使用本麻省理工学院教程学习射线跟踪。
我听说过光线追踪只是在灯光的背景下。我知道光线投射是用来点亮已经画好的物体的。然而,我也看到了光线投射的背景只是画的图片(而不是照明)。那么哪一个是射线呢?
“雷”的概念到底是什么?
在本教程中,人们画的图片如下:
image.SetPixel( x, y, pixelColor );
在那里,pixelColor
是从射线施法者那里获得的。但我读到这意味着pixelColor
已经有了照明信息。
发布于 2017-03-14 07:08:38
射线只是一条半无限长的线,投射光线可以在场景中找到射线和物体之间的交叉点。它不仅告诉你光线在空间中与物体相交的位置:它还告诉你物体上那个点的纹理坐标,表面的法线和切线,以及(取决于你使用的算法)过滤宽度。
因此,在射线追踪器中,有不同种类的射线。初级射线、反射光线和折射射线使用它们的交集来运行阴影并计算碎片颜色。他们也会向光线发射阴影射线,光不能计算颜色,只需告诉你是否有物体在遮蔽光线。
因此,射线就是要找到场景中的物体,并对这些物体进行阴影以形成图像。它们也是关于在闪闪发光的物体上发现反射和折射。他们被用来画阴影。他们也被用于更先进的效果,如环境遮挡和光子追踪。
这是射线追踪相对于扫描线光栅的主要概念优势之一:不用使用不同的技术来计算反射、阴影和所有这些效果,同样的核心射线投射算法可以递归地计算整个图像。
发布于 2017-03-17 06:06:30
我想留下一个长期的评论与绘画方面的图片。光线追踪并不局限于计算机图形学,你可以而且经常看到艺术家们通过手工光线追踪,在纸上用尺子,甚至是手肘扭动,找出形状的交叉点。
它也适用于许多物理科学,如机械工程和测量。或者任何你可以用几何学来解决问题的地方。
而@DanHulme正确地推测,射线的数学定义只是一条有起点和无终点的直线(走向无穷大)。这并不是真正的人们所做的,相反,它的定义是严格的。一般来说,这只是一条足以胜任这项工作的线路,我们并不真正感兴趣的是另一端,而是这条线与某物的交互方式。无限仅仅是一种安全的表达方式,事实上,如果可能的话,它将相互作用。数学家们对这类事情很挑剔。
图1:用标尺和笔手动跟踪对象阴影的示例,以便在主题这里上找到尚未完成的答案。主要是因为昨天晚上我在做射线。
所以,当你试图在两个几何原语之间找到一个几何交点时,你就会使用射线。它不仅适用于阴影,也适用于任何你可以将两件事情交叉的地方,在某个地方有一个起点。因此,跟踪可用于寻找两个相交曲面的形状,手动绘制透视图像,求解体积问题,绘制隐式曲面,如数值求解数学函数等。
*大约公元前300年,欧几里得的元素首次描述了现在所谓的射线的定义。它以安全的(Ish)保证金先于计算机。
发布于 2017-03-17 07:28:38
记住波前的定义:
现在引用图像采集书的话:
“光线是将一系列辐射波前的波前法线连接起来的一条直线。将一个光源发出的波前的等角度法线连接在一起,定义了来自该光源的光线。从某个点发出的射线集合被称为一支光笔,而一组从有限区域发出的铅笔称为光束。”
https://computergraphics.stackexchange.com/questions/4853
复制相似问题