RayTrace:
PROC [
display: PixelMap, -- place to create the ray-traced image
eyePoint: Triple ¬ origin, -- position of the eye
eyeView: Triple ¬ zAxis, -- view direction
upDirection: Triple ¬ yAxis, -- orientation
fieldOfView: REAL ¬ 40.0, -- half horizontal view in degrees
jitter: BOOL ¬ FALSE, -- stochastic ray from pixel center
nPixelSamples: NAT ¬ 1, -- sub-sampling of pixels
adaptiveLimit: NAT ¬ 0, -- # levels of adaptive refinement
rayProc: RayProc ¬ NIL, -- client supplied ray-tracing proc
clientData: REF ANY ¬ NIL] -- passed to the rayProc
RETURNS [RayData];
This forks a ray-tracing process and the sampleMaps are painted accordingly.
The eyeView is mapped to the center of the sampleMaps and the fieldOfView spans
the right half of the sampleMaps. rayProc is called with a unit length ray.