Raytracing camera translation and rotation not exactly sure how to do this, driving me mad

Hi All,

I’m getting really confused whilst trying to implement a camera that can move around in a ray traced scene and also rotate. When the up arrow is pressed, the camera should move forward in the direction it is looking. I’ve seen several example using DirectX but none really for pure raytracing cameras. I’ve tried using a rotation matrix, but I don’t know how to alter the camera’s movement to follow where it is looking, instead of moving at an angle sideways.

Can anyone help shed some light?

Changing the position might help? If you have the pointing vector (unit vector) you just add that one times a factor to the position of the camera.

Changing the rotation matrix only you will not be able to translate. What you probably need is an affine transformation, which you can represent by homogeneous coordinates.

What I have is a camera eye point and a camera lookat point and I want to be able to alter these. So far, to rotate the camera, I have been solving for a point on a circle i.e x^2 + z^2 = r^2. This seems to work ok until i move the eye point. And when I do, the eye does not follow what the camera is looking at. Is there some standard way to move the camera without using OpenGL functions or something?