I have an assignment to implement ray tracing in Java.
I’m not asking for much, just to have some information on how to construct the rays from the camera through a pixel given its x and y. I’ve found over the Internet a lot of sources that explain that but in 2D, and I need how to do that in 3D.
Thanks in advance
The question is how to find the coordinates in space of a point on the screen whose position is given by (x,y) in screen coordinates.
I don’t know what coordinates system you’re using for the screen, so I’ll make some educated guesses and you can adjust accordingly.
The center of the screen has known location [X,Y,Z]center in space. I’ll presume the origin of the screen coordinate system is there. We have a “direction” vector d which is normal (perpendicular) to the screen, and an “up” vector u. I’ll presume that the +y direction on the screen is u. We can take the cross-product of these vectors, r = dxu, which I will take to be the +x direction on the screen. So the location of a point on the screen whose screen coordinates are (x, y) will be [X, Y, Z]center + xr + yu, and we’re done.