In the ray tracing,it said that generate a ray of per pixel form pixel screen coord.

but how to compute.I cann`t found anywhere introduction for this

thanks!

A ray , as far as i know, is defined as

r = r0 + s*t

where r0 is a origin vector and t a vector to the destination. I think you can use your camera position as r0 and a destination vector. So you can build a ray r, from r0 to t.

r0 points to the âPointâ in space where your ray starts. and t is a point along your ray.

greetings,

lobbel

thanks,i know that and my means is how determinate the ray dir(âsâ in up equation of you wrote) through pixel screen coord.

Hi, s is just a point in space. For instance, if you want to send a

ray from your view along your viewing direction you can say that

r0 is the position of your camera and s the point where your camera looks at. If you use glLookAt you can easy imagine.

glLookAt uses 4 vectors (?). The camera position and 3 vectors

that describe the cameraâs alignment. These are the up vector,

the direction vector and the right vector. The direction vector is build from camera position and the point where you want to look at.

In this case we can say itâs also a ray that goes from your camera position to the point where you want to look at.

For example you camera is at (0,5,0) and your point you want to look at is (2,0,2) then your view vector (resp. ray) is

(2,0,2) - (0,5,0) = (2,-5,2)

Btw. s is just a scalar. it can be 1.

greetings,

lobbel

In the chapater <<Implementing Ray Tracing on GPU>>

it calculate the primary ray form pixel coord as this:

vec3 raydir(vec2 pixelpos)

{

vec3 direction=_tl+_right*(_pixelsize/2.0)-_upvec*(_pixelsize/2.0);

direction=direction+_right*(pixelpos.x*_pixelsize)-_upvec*(pixelpos.y*_pixelsize);

return direction;

}

vec3 _upvec; // camera: up-vector

vec3 _right; // camera: vector to the right

vec3 _tl; //camera: vector to the âvirtual screenâ top left

float _pixelsize; // pixel size of the âvirtual screenâ

float psize; // Size of a pixel in texture coordinates

vec3 camera_pos; // camera position

I not determinate what means of â_rightâ and â_tlâ,such as âbinormalâ and âtangentâ in the tangent space?

And why compute as this?

My confused is there`s no pixel position information in your method for ray