|
![](/i/fill.gif) |
Ive,
Thank you very much for the tip. Scaling seems to indeed fix the
problem. It certainly looks like a floating point limitation.
I would have never guessed that POV-Ray did not rescale the whole scene
internally to maximize accuracy. I was familiar with the problems with
several distant objects in the same scene but not for the coordinates
being too small. I will add scaling to the scene in PoseRay for the
upcoming version.
I just wonder what would be a good scale range. The scene shadows start
to fail with a scale in the order O(0.1). Scaling to O(10) eliminates
the shadow gaps. Maybe scaling the whole scene to O(100) or more should
be a safe approach. This shadow gap problem seems to be more restrictive
than the 64 bit floating point for the scene coordinates. POV-Ray
renders the geometry perfectly in the original file. It is the shadows
that start degrading at small scales.
thanks again,
FlyerX
Ive wrote:
> My guess: limited floating point accuracy.
>
> I've run into this problem quite frequently when using poser
> figures - mostly with transmapped hair, but also with 'tight' clothes,
> lashes or eyebrows. And especially by using figures with a high
> poly count. Even if the Poser/PoseRay preview looked perfect.
> The problem completely disappeared as soon as I started
> to scale all my scenes in a way that 1 POV-unit equals 1 cm
> (before I usually used 1 unit = 1 m) . It is not even necessary
> to scale the object within PoseRay (but I'm sure this would also
> work), it is enough to but e.g. 'scale 100' into the unioned mesh
> objects (and adjust the camera and lights).
>
> Your scene renders perfectly when upscaled:
>
> //==================================================
>
> #include "stdinc.inc"
> #include "skies.inc"
> #include "stars.inc"
> #include "textures.inc"
> #include "testscene_POV_geom.inc" //Geometry
>
> global_settings {
> //This setting is for alpha transparency to work properly.
> //Increase by a small amount if transparent areas appear dark.
> max_trace_level 15
>
> }
>
> //CAMERA PoseRayCAMERA
> camera {
> perspective
> up <0,1,0>
> right -x*image_width/image_height
> location <-0.3466585,-0.1462403,3.818377>
> look_at <-0.3466585,-0.1462403,2.818377>
> angle 4.306029 // horizontal FOV angle
> rotate <0,0,12.06625> //roll
> rotate <-17.04571,0,0> //pitch
> rotate <0,15.46715,0> //yaw
> translate <0.425,0.5,0.425>
> scale 100 // !!!
> }
>
> //Light_1
> light_source {
> <0.425,1.85,1.775> //light position
> color rgb <1,1,1>*0.8
> parallel
> point_at <0.425,0.5,0.425>
> scale 100 // !!!
> }
>
> //Light_2
> light_source {
> <0.425,2.40918830920368,0.425> //light position
> color rgb <1,1,1>*0.8
> parallel
> point_at <0.425,0.5,0.425>
> scale 100 // !!!
> }
>
> //Background
> background { color rgb<0,0,0> }
>
> //Assembled object that is contained in testscene_POV_geom.inc
> object{
> testscene_
> scale 100 // !!!
> }
> //==================================================
>
> -Ive
>
>
Post a reply to this message
|
![](/i/fill.gif) |