rtrace

Ron O. Dror wrote:

I would like to recover the surface normals of the surfaces visible in
every pixel of a Radiance scene. In other words, I want to trace the
initial ray cast for each pixel, and find the surface normal of the first
surface that ray hits. I figured out that I could do this using rtrace
-on, if I feed rtrace the rays corresponding to each pixel in my
image. Is there an easy way to compute all of these rays automatically
using an existing Radiance program, or will I need to write a special .cal
file for rcalc? I have the feeling that some Radiance gurus could
accomplish this task in one or two lines.

Thanks in advance for any advice,

Ron

Hi Ron,

I don't think there's a genuinely simple way to do what you want.
You have already figured out the "rtrace -on" part, which looks
like a good second step. But the first step would indeed be to
feed all those rays to rtrace, and I don't see an automatic way
to get that information from any Radiance program.

On the other hand, it's not very hard to construct that set
of vectors with a little program of your own for a standard
perspective. Two or three dozen lines of code will do the trick.
You don't even need to understand the actual view transformation.
Just walk through a regular grid on your image plane, subtract
the view point from each of those grid points, and write the
result into a file. There's no need to normalize the vectors to
unit lenght.

I'm not sure if this could be done with cnt/rcalc, and frieds,
as I have rarely used them myself. I suspect that a more complete
programming language (eg. Python) will be more effective to work with.

Have fun!

-schorsch

ยทยทยท

--
Georg Mischler -- simulations developer -- schorsch at schorsch.com
+schorsch.com+ -- lighting design tools -- http://www.schorsch.com/