在计算光线向量时

时间:2019-04-27 16:13:32

标签: c opencl raymarching

我正在尝试为raymarching编写一个opencl内核。一切正常,但结果图像中出现了明显的鱼眼失真,如本例所示:(这应该是一个立方体)

问题在于我为每条射线构造方向向量的方式。

当前,我为内核提供摄像机的俯仰和偏航方向(代码中的pitchyaw)。

然后基于fov(fov),内核正在计算的像素坐标(ixiy)以及整个帧的宽度和高度({{ 1}},width),我得到了音高和射线方向的偏航。

最后,我使用先前计算得出的俯仰和偏航构造了单位矢量。

({height表示浮点数还是双精度数,取决于内核是以双精度还是单浮点精度运行的)

对于上图,varfloat是Pi / 3,fovwidth都是500。

height

有人可以告诉我如何计算方向矢量的俯仰角和偏航角,以消除失真吗?

0 个答案:

没有答案