|
![](/i/fill.gif) |
Dear Povray -Experts,
A while ago I reported problems with povray on Dec Alpha machines.
Povray 3.02 crashed with a
"Floating exception". This occured in do_specular. I tracked the problem
down to a
Layer_Normal whose magnitude was much larger than one. Consequently the
direction cosine was larger than one and in do_specular this is taken to
the power of the reciprocal roughness which eventually leads to very
large intensities. This Layer_Normal was derived from a Raw_Normal so I
have been trying to find out why the function
Normal (Raw_Normal, Ray_Intersection->Object, Ray_Intersection)
returns a Raw_Normal that is not normalized. However I got stuck in the
bewildering amount of
preprocessor statements, nested structs and pointer to functions.
Can anyone tell me where the code for Normal () is ?
( Normal has been defined in frame.h as :
#define Normal(x,y,z) ((*((y)->Methods->Normal_Method)) (x,y,z))
so the argument y ( here Ray_Intersection->Object ) is a struct that
contains the information
I need i.e. Ray_Intersection->Object->Methods->Normal_Method - the
address of a function.
But again I somehow lost track. Can anyone tell me where to find the
code that calculates
whatever it is that Normal does ?
Even better, can any experienced povray programmer look into that
problem himself ?
On Linux PC's this problem does not lead to a crash but apparently
results in black pixels whereas on SGI machines you find white pixels.
Yours,
Lothar Esser
------------------------------------------------------------------
Dr. Lothar Esser
Howard Hughes Medical Institute
5323 Harry Hines Blvd.
Dallas Texas 75235-9050
E-mail : ess### [at] chop swmed edu
------------------------------------------------------------------
Post a reply to this message
|
![](/i/fill.gif) |