|
|
ok, so i've been following sslt threads and was wondering why i get:
povray: render/trace.cpp:3525: void
pov::Trace::ComputeDiffuseContribution(const pov::Intersection&, const
pov::Vector3d&, const pov::Vector3d&, const pov::Vector3d&, const
pov::Vector3d&, double&, double, double, double): Assertion `(sd >= 0.0)
&& (sd <= 1.7976931348623157e+308)' failed.
when i have ior > 3.85 (3.85 works but not 3.86) is this and
unreasonable setting ... btw: was just experimenting and discovered this
accidentally (typo with decimal place) then I narrowed in on the fail
threshold
Post a reply to this message
|
|
|
|
Am 18.02.2011 11:09, schrieb Jim Holsenback:
> ok, so i've been following sslt threads and was wondering why i get:
>
> povray: render/trace.cpp:3525: void
> pov::Trace::ComputeDiffuseContribution(const pov::Intersection&, const
> pov::Vector3d&, const pov::Vector3d&, const pov::Vector3d&, const
> pov::Vector3d&, double&, double, double, double): Assertion `(sd>= 0.0)
> && (sd<= 1.7976931348623157e+308)' failed.
>
> when i have ior> 3.85 (3.85 works but not 3.86) is this and
> unreasonable setting ... btw: was just experimenting and discovered this
> accidentally (typo with decimal place) then I narrowed in on the fail
> threshold
That's a problem with a certain approximation used inside SSLT, which
goes bonkers at high refractive indices (and also at refractive indices
<1.0), claiming that at a refractive index of 3.86 or above you get an
average internal reflectance of >100% (or <0% if the ior is <1.0). I
noticed this too yesterday, and right now I'm digging for a suitable
replacement formula, for this and other reasons.
Post a reply to this message
|
|