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 André Vitor de Lima Matos - 2013-11-16
Last edited by William F Pokorny - 2016-10-28
Opened by André Vitor de Lima Matos - 2013-11-16
Last edited by William F Pokorny - 2016-10-28
FS#313 - radiosity.cpp pov::RadiosityFunction::BeforeTile assertion failed
With 3.7.0 final, rendering attached files (for Computer Engineering college course),
which renders without issues in povray 3.6.1, fails with following error:
... ==== [Rendering...] ======================================================== povray: backend/lighting/radiosity.cpp:324: virtual void pov::RadiosityFunction::BeforeTile(int, unsigned int): Assertion `(pts >= PRETRACE_FIRST) && (pts <= PRETRACE_MAX)' failed.
Command line:
povray +K0.6500 \ +FN +Q9 +MB1 \ +W600 +H400 \ +AM1 +A0.0 +R2 \ +D +SP32 +EP4 \ +L/usr/share/povray-3.7/include \ +Imain.pov \ +Omain-0.6500.png
Using Arch Linux testing current:
Linux archmidi 3.12.0-1-ARCH #1 SMP PREEMPT Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux
Downstream bug report:
https://bugs.archlinux.org/task/37689
Sorry, main.pov in bug report had a little typo due to vim (B). Follow fixed version, with .pov-state dump file generated.
main-0.6500.pov-state (0.5 KiB)
Thanks for submitting this bug report.
Can you confirm that avoiding mosaic pretrace (i.e. removing the +SP32 and +EP4 options) works around this issue?
Hi. Thanks for you quick reply.
Confirming that removing given options avoid this issue.
Preliminary fix submitted as change #6092.
Grepping the code for BeforeTile, it seems that all but one calls are using only one parameter, defaulting to pts=FINAL_TRACE) (and FINAL_TRACE is 255 a.k.a UCHAR_MAX / OT_PASS_FINAL ).
Instrumenting the code of tracetask, the radiosity is done via TraceTask::SimpleSamplingM0P which does not provide the second parameter. Hence the failure of assertion.
I would suggest the following correction, because the mosaic preview at that time is the final render (as far as radiosity is concerned, the radiosity computation has been done previously).
The false/ true change is for the "isFinalTrace" member of RadiosityFunction / radiosity.
Did I misinterpret anything ?
Now tracked on github as issue #137.
Sample code runs with our current 3.7.1, but code questions remain.