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 David Farmer - 2010-11-14
Last edited by Christoph Lipka - 2012-07-17

FS#169 - Error in Linux version using #while loop and SweepSpline macro in animation.

I used POV-Ray to make an animation of my Morgan driving around a slalom course. (If you are curious, you can see the output on youtube under my user name, nojonushi.) To make the long swooping fenders I used Mike William’s SweepSpline macro.

The code rendered the 1189 frames in one go with no problems. But the wheels in that animation do not rotate, so I then added code to rotate the wheels. In the calculations I added I used a #while loop to step through the spline containing the route coordinates and total up the distance traveled. Running POV-Ray on this file produced a random number of images and then issued an error, e.g.

 0:00:00 Processing Frame 456 of 1189
 0:00:00 Parsing

File: mogslalom.pov Line: 1918
Parse Warning: Patch objects not allowed in intersection.
File: mogslalom.pov Line: 2988
File Context (5 lines):

                object {
                SweepSpline(TFSpline,

Parse Error: Identifier expected, incomplete function call or spline call found instead.

Most of the parameters for the macro are missing. But this is after successfully generating, in this case, 455 images.

I have attached a text file with set-up and sample code that has given the error on two different machines.

Closed by  Christoph Lipka
Tuesday, 17 July 2012, 20:48 GMT
Reason for closing:  Fixed
David Farmer commented on Sunday, 14 November 2010, 16:34 GMT

Addendum:

I said my computer was using Ubuntu 9.4 64 bit, there is no such distro, it should have been, Ubuntu 9.1 64 bit.

Grimbert Jérôme commented on Monday, 15 November 2010, 09:16 GMT

Which ubuntu release is that ? Intrepid Ibex or Jaunty Jackalope ?
(9.1 is not an official release date: 2009 January... Ubuntu likes to release in April & October since a few years (at least 2004))
Or 9.10 for Karmic Koala ? (2009 October)

Bug report.txt seems to provide a minimal scene which does not match the provided logs.
Hopefully it can be reproduced... more on that later.

David Farmer commented on Monday, 15 November 2010, 17:43 GMT

Thanks for enlightening me about Ubuntu's numbering convention, no one else ever implied that the trailing zero meant anything.

It is Ubuntu 9.10 with kernel 2.6.31-22

As to the code I supplied, you do not want to search for the bug with the original code, you could have your machine tied up for
over 24 hours before the error message appears. The code provided was the minimum I could trim to that would reliably reproduce
the error, and I had the error occur after about 125 frames in 1 minute and 29 seconds. A friend also got the same error running
with that code, in his case it ran for 3 minutes and 7 seconds stopping at the 398th frame. Both much better that 24 hours.

Here is the log of a run I just did with the code I posted here, showing the messages for the last three frames. This time it ran a little longer,
amazingly stopping at the 398th frames just like my friend's test, this number of frames would take about 12 hours with the full code
for drawing the Morgan.

BTW comparing to the other logs, you will notice that the SweepSpline statement is not broken in the same place each time.

0:00:00 Processing Frame 396 of 1189

0:00:00 Parsing

Parsing mesh2 from file: FLW
File: FLW Line: 518
Parse Warning: Normal vector in mesh2 cannot be zero - changing it to <1,0,0>.
File: abug.pov Line: 123
Parse Warning: Patch objects not allowed in intersection.
Cleanup Parse Warning: This rendering uses the following experimental
feature(s): spline. The design and implementation of these features is likely
to change in future versions of POV-Ray. Full backward compatibility with the
current implementation is NOT guaranteed.

0:00:00 Parsing 106K tokens

Scene Statistics

Finite objects:            1
Infinite objects:          1
Light sources:             1
Total:                     3
0:00:00 Displaying
0:00:01 Rendering line 43 of 240
0:00:01 Done Tracing

Render Statistics
Image Resolution 320 x 240


Pixels: 76800 Samples: 76800 Smpls/Pxl: 1.00
Rays: 83631 Saved: 0 Max Level: 4/5


Ray→Shape Intersection Tests Succeeded Percentage


Box 486015 29252 6.02
Cone/Cylinder 324010 8398 2.59
CSG Intersection 324010 37995 11.73
CSG Merge 162005 1074 0.66
Mesh 162005 15989 9.87
Plane 162005 79586 49.13
Bounding Box 1141094 346728 30.39


Calls to Noise: 0 Calls to DNoise: 72765


Shadow Ray Tests: 156748 Succeeded: 5987
Reflected Rays: 6831


Smallest Alloc: 9 bytes
Largest Alloc: 352808 bytes
Peak memory used: 1474480 bytes
Frame Processing Times

Parse Time:    0 hours  0 minutes  0 seconds (0 seconds)
Photon Time:   0 hours  0 minutes  0 seconds (0 seconds)
Render Time:   0 hours  0 minutes  1 seconds (1 seconds)
Total Time:    0 hours  0 minutes  1 seconds (1 seconds)
0:00:00 Processing Frame 397 of 1189
0:00:00 Parsing

Parsing mesh2 from file: FLW
File: FLW Line: 518
Parse Warning: Normal vector in mesh2 cannot be zero - changing it to <1,0,0>.
File: abug.pov Line: 123
Parse Warning: Patch objects not allowed in intersection.
Cleanup Parse Warning: This rendering uses the following experimental
feature(s): spline. The design and implementation of these features is likely
to change in future versions of POV-Ray. Full backward compatibility with the
current implementation is NOT guaranteed.

0:00:00 Parsing 106K tokens

Scene Statistics

Finite objects:            1
Infinite objects:          1
Light sources:             1
Total:                     3
0:00:00 Displaying
0:00:01 Rendering line 196 of 240
0:00:01 Done Tracing

Render Statistics
Image Resolution 320 x 240


Pixels: 76800 Samples: 76800 Smpls/Pxl: 1.00
Rays: 83631 Saved: 0 Max Level: 4/5


Ray→Shape Intersection Tests Succeeded Percentage


Box 486015 29252 6.02
Cone/Cylinder 324010 8398 2.59
CSG Intersection 324010 37995 11.73
CSG Merge 162005 1074 0.66
Mesh 162005 15989 9.87
Plane 162005 79586 49.13
Bounding Box 1141094 346728 30.39


Calls to Noise: 0 Calls to DNoise: 72765


Shadow Ray Tests: 156748 Succeeded: 5987
Reflected Rays: 6831


Smallest Alloc: 9 bytes
Largest Alloc: 352808 bytes
Peak memory used: 1474480 bytes
Frame Processing Times

Parse Time:    0 hours  0 minutes  0 seconds (0 seconds)
Photon Time:   0 hours  0 minutes  0 seconds (0 seconds)
Render Time:   0 hours  0 minutes  1 seconds (1 seconds)
Total Time:    0 hours  0 minutes  1 seconds (1 seconds)
0:00:00 Processing Frame 398 of 1189
0:00:00 Parsing

File: abug.pov Line: 121
File Context (5 lines):

	object {
		SweepSpline(FWSpline, VSpline,

Parse Error: Identifier expected, incomplete function call or spline call found
instead.
Total Scene Processing Times

Parse Time:    0 hours  0 minutes 29 seconds (29 seconds)
Photon Time:   0 hours  0 minutes  0 seconds (0 seconds)
Render Time:   0 hours  3 minutes 35 seconds (215 seconds)
Total Time:    0 hours  4 minutes  4 seconds (244 seconds)

david@FARMER-PC:~/JagClubSlalom$

David Farmer commented on Friday, 03 December 2010, 20:03 GMT

A work around.

If you can move the #while loop to after the SweepSpline(s) in the .pov code the animation pictures will all render.

Grimbert Jérôme commented on Thursday, 30 December 2010, 11:13 GMT

I cannot reproduce (from A_Bug_Report.txt): all the frames are rendered fine with beta 41
( povray a.pov -KI0 -KF118.8 -KFI0 -KFF1188 +W640 +H480 +A0.01 )

Side-effect symptom: memory footprint is increasing as render progress.
(I ended up with 9 GB, empty system at 1.5 GB)
Could it be an "out of memory" issue on original system ?

Grimbert Jérôme commented on Sunday, 09 January 2011, 13:43 GMT

Testing with RC2: the leak from 1.5 to 9GB on system memory is strongly reduced now.
(yet, there seems to be about 800k difference between the first & last frame's footprint of povray in top)

Does the error still happens with RC2 on the original poster's system ?

David Farmer commented on Sunday, 09 January 2011, 19:39 GMT

Please do not use TLAs when posting to people outside your working group. I have no idea what RC2 is. A search turned up such diverse possibilities as a cryptography method and a toy testing company. Thirty five years in the computer programming business cured me of the habit.

Waiting clarification...

Admin
Chris Cason commented on Sunday, 09 January 2011, 19:47 GMT

Jérôme's first language is not English, so I think he could be excused for not knowing that the term 'RC' for 'Release Candidate' is not widely known within the English-speaking community outside the computing profession. He is referring to Release Candidate 2 of POV-Ray v3.7.

Jim Holsenback commented on Sunday, 09 January 2011, 20:23 GMT

how many of you had to look up what TLA means ... terribly late always? couldn't resist ;-)

Grimbert Jérôme commented on Saturday, 23 April 2011, 11:29 GMT

Back from kyberspace... testing with povray 3.7RC3 and valgrind.

It's leaking. At least per frame, it's leaking!
(it's also leaking for initial run, but it's irrelevant)

If someone wants to have more investigation on it (and hopefully find a way to fix one or more), please find attached the selected output of valgrind.

Grimbert Jérôme commented on Sunday, 14 August 2011, 14:44 GMT

Change #5467, fixing the previously detected memory leak (2 photonMap per rendered frame).

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing