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.

Tasklist

FS#226 - Near-coincident surface accuracy

Attached to Project: POV-Ray
Opened by Andrey Zholos (aaz) - Saturday, 05 November 2011, 22:41 GMT
Last edited by William F Pokorny (wfpokorny) - Wednesday, 19 October 2016, 11:20 GMT
Task Type Possible Bug
Category Backend → Geometric Primitives
Status Tracked on GitHub
Assigned To No-one
Operating System All
Severity Low
Priority Normal
Reported Version 3.70 RC3
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

This is a transparent box very close to a plane.

box {
    -1, 1
    pigment { rgbf <0, 0, 1, 1> }
}

plane {
    #if (version < 3.7)
        y, -1.0000007
    #else
        y, -1.00007
    #end
    pigment { rgb 1 }
    finish { ambient 1 }
}

camera {
    location <1, 2, 3>
    look_at 0
}

The box is placed 100 times closer to the plane for 3.6, but both 3.6 and 3.7 produce exactly the same black artifact (attached).

So apparently 3.7 is less accurate. (And the exact factor 100 feels suspicious.)

   near.png (1.9 KiB)
This task depends upon

Comment by Grimbert Jérôme (Le_Forgeron) - Sunday, 09 September 2012, 19:04 GMT

Historical search (ignore case needed)
* Max_distance

  • 3.1g : 1.0e7
  • 3.6.1 : 1.0e7
  • 3.7RC5 : 1.0e7
  • 3.7RC6 : 1.0e7

* Small_tolerance

  • 3.1g : 0.001
  • 3.6.1 : 0.001
  • 3.7RC5 : 0.001
  • 3.7RC6 : 0.001

From comment in objects.cpp, a change occurred for >= MIN_ISECT_DEPTH
(no such limit in 3.6.1), or some postcondition in FindIntersection

For instance: in trace.cpp, the postcondition is := dist > SMALL_TOLERANCE

The post condition somehow contradict the comment about MIN_ISECT_DEPTH

I will try to experiment with the post condition later.

Comment by Grimbert Jérôme (Le_Forgeron) - Sunday, 09 September 2012, 19:25 GMT

Post condition is not relevant for the original test scene.

But MIN_ISECT_DEPTH is !
at 1.0e-4 and 1.0.e-5, it's the picture of 3.7RC...
at 1.0e-6, back to the picture of 3.6

The comment (of objects.cpp) seems to ask for a less rough value than SMALL_TOLERANCE as MIN_ISECT_DEPTH, yet 1.0e-4 seems not small enough (compared to 1.0e-3 of SMALL_TOLERANCE).

Comment by William F Pokorny (wfpokorny) - Wednesday, 19 October 2016, 11:20 GMT
  • Field changed: Status (Unconfirmed → Tracked on GitHub)

Now tracked as github issue #125.

Loading...