【发布时间】:2012-06-19 17:45:41
【问题描述】:
我在光线追踪中完全坚持使用相机。请看一下我的计算并指出错误在哪里。我使用的是左手坐标系。
x,y //范围 [0..S) x [0..S) //像素坐标
现在,让我们将像素坐标转换为相机平面的参数坐标:
xp = x/S * 2 – 1;
yp = y/S * 2 – 1;
xp, yp // 范围 [-1..1] x [-1..1]
相机基础的计算:
//eye - camera position
//up - camera up vector
//look_at - camera target point
vec3 w = normalize(look_at-eye);
vec3 u = cross(up,w);
vec3 v = cross(w,u);
所以光线方向应该有以下坐标:
vec3 dir = look_at – eye + xp*u + yp*v;
ray3 ray = {eye, normalize(dir)};
【问题讨论】:
-
我不明白。为什么要计算这么多?光线不应该在相机和相机可见的兴趣点之间吗?只是两点之间的向量?
标签: graphics camera raytracing