POV-Ray

The Persistence of Vision Raytracer (POV-Ray).

This is the legacy Bug Tracking System for the POV-Ray project. Bugs listed here are being migrated to our github issue tracker. Please refer to that for new reports or updates to existing ones on this system.

|
Attached to Project: POV-Ray
Opened by Grimbert Jérôme - 2012-06-25
Last edited by William F Pokorny - 2017-01-23

FS#246 - Regression on scale limit between 3.7 and previous releases

From Thomas de Groot

Using the following code for a (sky) sphere in a scene, with light source well outside the sphere;
works correctly until the above scale value. Use a value of >=100*10e4 and the sphere becomes black.

#version 3.7;
global_settings{ assumed_gamma 1.0 }

#declare T_sky =
texture {
  pigment {
    gradient y
    pigment_map {
      [0.0 srgb <1.0,0.7,0.6>*1 transmit 0.5]
      [1.0 srgb <0.8,0.1,0.0>*1 transmit 0.5]
    }
  }
  finish {
    emission 0.9
    diffuse 0.0
  }
}

#declare T_cosmos =
texture {
  pigment {
    color rgbt <0,0,0,1>
  }
  finish {
    ambient 0.0
    diffuse 0.0
  }
}

sphere {
  <0,0,0>,1
  texture {T_sky}
  interior_texture {T_cosmos}
  no_shadow
  no_reflection
  inverse
  scale 99.9*10e4
}

Working with windows version of POV-Ray and Win7 x64

Is this normal for version 3.7 RC5? I seem to remember that with lower
versions of POV-Ray on could go at least to 10e6. Especially with the
Ringworld scenes back in 2010 the scales used where much larger without
any black out.

I can indeed confirm that the Ringworld scene does not render correctly anymore, with identical black out.

Grimbert Jérôme commented on Monday, 25 June 2012, 11:51 GMT

Confirmed with Linux 3.7RC6

Seems related to the values in configbackend.h (source/backend/) of SMALL_TOLERANCE & MAX_DISTANCE

Grimbert Jérôme commented on Sunday, 09 September 2012, 19:38 GMT

Additional comment: unable to duplicate the 3.6.1 reported behavior:

With my 3.6.1 (fresh compilation from source), the picture is also full black for a scale of 100.0*10e4

I will check a 3.5 later.

Grimbert Jérôme commented on Monday, 10 September 2012, 21:12 GMT

Well, it's easier to compile 3.1 than 3.5

With 3.1, I got the same behaviour as with 3.6.1 & 3.7RC6 : light red at 99.9*10e4, full black at 100.0*10e4

On 3.1, the difference of render between 99.9*10e4 and 100.0*10e4 is:

 ----------------------------------------------------------------------------
 Pixels:           10000   Samples:           10000   Smpls/Pxl: 1.00
 Rays:             20000   Saved:                 0   Max Level: 2/5
 ----------------------------------------------------------------------------
 Ray->Shape Intersection          Tests       Succeeded  Percentage
 ----------------------------------------------------------------------------
 Sphere                           20000           13173     65.86
 ----------------------------------------------------------------------------
 Calls to Noise:                  0   Calls to DNoise:             10
 ----------------------------------------------------------------------------
 Transmitted Rays:            10000
 ----------------------------------------------------------------------------
 Smallest Alloc:                 22 bytes   Largest:            12816
 Peak memory used:            67263 bytes
 ----------------------------------------------------------------------------

Versus (100):

 ----------------------------------------------------------------------------
 Pixels:           10000   Samples:           10000   Smpls/Pxl: 1.00
 Rays:             10000   Saved:                 0   Max Level: 1/5
 ----------------------------------------------------------------------------
 Ray->Shape Intersection          Tests       Succeeded  Percentage
 ----------------------------------------------------------------------------
 Sphere                           10000           10000    100.00
 ----------------------------------------------------------------------------
 Calls to Noise:                  0   Calls to DNoise:             10
 ----------------------------------------------------------------------------
 ----------------------------------------------------------------------------
 Smallest Alloc:                 22 bytes   Largest:            12816
 Peak memory used:            67263 bytes
 ----------------------------------------------------------------------------

There is no more transmitted ray for the 100.0*10e4

This is for the Unix code. Maybe the Windows distribution used a bigger MAX_DISTANCE (or Max_Distance, it was spelled differently in previous version; but was still 1.0e7 on Unix since 3.1)

./3.5/povray-3.50c/src/frame.h:#define Max_Distance 1.0e7
./povray-3.7.0.RC5/source/backend/configbackend.h://#define MAX_DISTANCE 1.0e+10 // TODO FIXME #define MAX_DISTANCE 1.0e7
./povray-3.7.0.RC5/source/backend/configbackend.h:#define MAX_DISTANCE 1.0e7
./3.1e/povray31/source/frame.h:#define Max_Distance 1.0e7
./povray-3.6.1/source/frame.h:#define Max_Distance 1.0e7
./povray31/source/frame.h:#define Max_Distance 1.0e7
Admin
Chris Cason commented on Monday, 10 September 2012, 22:08 GMT

POVWIN hasn't used a different MAX_DISTANCE to that in the main source in any build that I can think of, and a look through the old source and revision history seems to confirm that.

For a while (Feb through May 2005) MAX_DISTANCE was 1.0e+10 and SMALL_TOLERANCE 1.0e-6, but apart from that it's had the old values for as long as I can remember.

William F Pokorny commented on Monday, 23 January 2017, 14:09 GMT

Now tracked on github as issue #215.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing