我目前正在尝试实现光线跟踪器。实际上,我尝试重新排列我们去年做的光线跟踪器(在opengl,glew,qt(由我们的老师写的这个prt)和c ++)到cus中的一个简单的基本光线跟踪器。 因此,opengl不再处理相机,所以我写了一个这样的:
class Camera{
public:
inline Camera() : camPos(Vec3Df(0.0f ,0.0f ,-3.0f)), direction(Vec3Df(0.0f, 1.0f, 2.0f)),upVector(Vec3Df(0.0f ,0.0f ,0.0f)), rightVector(Vec3Df(0.0f ,0.0f ,0.0f)){ }
inline const Vec3Df & getCamPos () const { return camPos; }
inline const Vec3Df & getDirection () const { return direction; }
inline const Vec3Df & getUpVector () const { return upVector; }
inline const Vec3Df & getRightVector () const { return rightVector; }
private:
Vec3Df camPos;
Vec3Df direction;
Vec3Df upVector;
Vec3Df rightVector;
};
我不知道它是否正确,我发现人们把随机坐标放在位置和方向上。
教师还为.off文件实现了一个加载器,用于加载带有顶点和三角形的对象。
与三角形交叉的方法起作用,因为它在最后一个项目中起作用,但在这里,现在我处理相机,它根本找不到任何交叉点,我有一个黑色图像作为输出。
有人可以帮帮我吗?还是建议我?