POV-Ray : Newsgroups : povray.general : Shadow gap between mesh2 objects : Re: Shadow gap between mesh2 objects Server Time
30 Jul 2024 22:25:12 EDT (-0400)
  Re: Shadow gap between mesh2 objects  
From: FlyerX
Date: 9 Apr 2008 01:07:13
Message: <47fc4f01$1@news.povray.org>
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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.