姬長信(Redy)

java – 2D光线跟踪器的算法


我想用Java编写一个程序化的RayTracer用于演示目的,同时给出一般的Ray Tracing演示文稿(也提到3D,这个2D模型应该只是为了更容易理解,并培养我的一般Java知识).

我的问题是,我不知道从哪里开始这整个事情.

我要尝试的第一件事是使用矢量来跟踪给定坐标(例如我的鼠标光标的位置)的屏幕上的每个像素.然后我会计算向量是否与多边形相交,然后我会在那里停止向量并将其绘制到这个特定点.

也许我甚至可以通过计算法线来绘制一些阴影,并以较低的强度反射另一个方向的矢量.

那么从A = {everypixelonthescreen}绘制一个向量到特定的点P并计算交叉点是一个好主意吗?

完成的版本应该看起来像这样: