I am using the following rtrace command :
rtrace -dr 1 -lr 1 -dp 0 -ds 0.02 -dj 0 -lw 0 -dc 1 -st 0 -ab 0 -I+ -h- -w- -otopn model.oct < singlepoint.pts >> output.out
... to output direct rays from a single gridpoint to an omni light source in a room of mirrors.
The intention is to find all the locations of the reflection points (of the secondary sources) on each wall from the point of view of the gridpoint. I've written a routine which reads in all the rays, filters them and outputs the reflection point x y z coordinates.
The gridpoint is simply :
x y z 0 0 1 indicating an upward direction for the rtrace 'receiver'
The problem I have is that rtrace doesn't output the reflection rays if the z-coordinate of the light source is within a small distance above the z-coordinate of the gridpoint. i.e. some reflection rays are not output if they are near to, and of course above, the height of the gridpoint.
I can understand this may be something to do with the cosine of the incident angle and that a threshold isn't reached which therefore doesn't output the reflection ray, but I have set -st 0, and I've set all the other parameters I can think of to their maximum accuracy.
By setting the property of the mirrors to :
void mirror walls
3 100 100 100 <--- i.e. reflect 100 times the incident intensity
this helped a little, but by increasing the 100 100 100 further and further still didn't solve the problem.
If there is anyone who has any ideas, without having to set up each grid point for all directions (not just 0 0 1) - as this produces multiple outputs for the same reflection points - any suggestions would be much appreciated.
Thanks very much,