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.

IDCategoryTask TypeReported InPrioritySeverity  descSummaryStatusProgressDue In Version
 31 Texture/Material/FinishDefinite Bug3.70 beta 32Very LowMedium function pattern in image map Closed
100%
3.70 beta 33 Task Description

Function use in image maps is broken.

The following should result in a white and green checkered unit square, but is transparent.

camera {
   location  <0.0, 0.5, -4.0>
   direction 1.5*z
   right     x*image_width/image_height
   look_at   <0.0, 0.0,  0.0>
}

background {rgb <1,1,1>}

light_source {
  <-30, 10, -30>           
  color rgb <1, 1, 1> 
}

plane {y,-1 pigment{checker rgb <1,0,0> rgb <1,0.5,0.5> }}

plane {y,-0.99 
 pigment {
  image_map { 
   function 10,10 { 
    pigment {checker rgb <0,1,0>, rgb <1,1,1> scale 0.1}
   }
   once 
  }
  rotate <90,0,0>
 }
}
 32 OtherDefinite Bug3.70 beta 32Very LowMedium tiff file extention error Closed
100%
Task Description

The parser is failing to read the .tiff file extension from the input string...

bump_map { tiff "earth03_hf2.tiff" }

Results in file not found, but

bump_map { tiff "earth03_hf2" }

will find the file. It might be that it’s not a three character extension?

 37 DocumentationUnimp. Feature/TODO3.70 beta 32LowMedium Find Documentation Editors Closed
100%
3.70 release Task Description

Recruit version 3.7 documentation editors from the users community.

 39 DistributionDefinite Bug3.70 beta 32Very LowMedium "cats" and "life" sample scenes broken Closed
100%
3.70 release Task Description

The following files were garbled in changelist #4648 by stripping all line terminators, making the files unusable:

  • .../scenes/advanced/cats/cattext.inc
  • .../scenes/animations/life/blink4.inc
  • .../scenes/animations/life/walker.inc

Line terminators of these files were already problematic in previous versions of the file, having been CR-only.

The following files changed with #4648 should be reviewed closely as well, as they were previously CR-only, too, and at least some of them exhibit some peculiarities regarding line and/or file terminators:

  • .../scenes/animations/pentmap/pentmap.ini
  • .../scenes/animations/pentmap/pentmap.pov
  • .../scenes/animations/slinky/slnk.ini
  • .../scenes/incdemo/metals/metals.doc
  • .../scenes/incdemo/stones/stones.doc
  • .../scenes/incdemo/woods/morewood.doc
  • .../scenes/incdemo/woods/woods.doc
  • .../scenes/textures/pigments/skies/skies.doc
 40 Platform-specificCompatibility Issue3.70 beta 32Very LowMedium Compilation on freebsd Closed
100%
3.70 beta 33 Task Description

Reported for freebsd 7.2 (current production version, true for previous version, unknown for 8.0 in beta now)

freebsd does not provide CLOCK_PROCESS_CPUTIME_ID
(even if CLOCK... is posix).

As a consequence, compilation of the unix-source is currently not possible for freebsd target.

Might be a simple selection for Change 4356 ?
(assuming a relevant test in ./configure)
(getrusage() seems available on freebsd, but does it provide the pieces of information needed, I do not know that code good enough to assert that)

42OtherDefinite Bug3.70 beta 32Very LowMediumcommand line parameters are not parsed properly on UnixTracked on GitHub
0%
Task Description

POV-Ray does not follow common practice on command-line handling; for instance:

povray +i"My File"

entered on a Unix shell would be passed to POV-Ray as

povray
+iMy File

(each line representing a distinct parameter here), which POV-Ray would further dissect, interpreting it as

povray
+iMy
File

To achieve the desired effect, one would actually have to quote the string twice:

povray +i"'My File'"

which the shell would translate to

povray
+i'My File'

which POV-Ray would interpret as

povray
+iMy File

In both cases, this is obviously not what a Unix user would expect.

The further dissecting of individual command-line parameters may have had its valid roots in the peculiarities of DOS’ command-line handling, but to my knowledge all major contemporary operating systems follow a concept akin to Unix, passing a list of parameters instead of a monolithic command line, and burdening the respective command shells with the task of dissecting command lines into parameters.

Therefore I suggest to disable this anachronistic feature in favor of contemporary standards; a compiler flag might be used to allow for easy re-enabling of the feature, for compiling POV-Ray on exotic targets.

- edit -

It has been pointed out that the described behaviour differs from 3.6, so I’m promoting this to a bug and changing the title.

50Runtime errorPossible Bug3.70 beta 32Very LowMediumFrequent segfaults with photon scenesTracked on GitHub
0%
Task Description

I observe frequent segfaults with POV-Ray 3.7 betas when rendering scenes using photons:

  • Debian Linux 4.0r5 “etch” for AMD64
  • AMD Phenom X4 9650 2.3GHz, 6 GB RAM
  • POV-Ray compiled with Intel icpc 11.0

Segfaults are sporadic but frequent (occurring in roughly 50% of all photon renders).

 53 Geometric PrimitivesDefinite Bug3.70 beta 32Very LowMedium Blob trace level Closed
100%
Task Description

It appears that reflective bounces from blobs are
not incrementing the trace level, causing self-
reflecting hall of mirror portions to stall renders.

 55 Image formatDefinite Bug3.70 beta 32Very LowMedium Output_Alpha=on doesn't work as documented Closed
100%
Task Description

I have installed POV-Ray 3.7 beta 34 on Windows 7
The setting ‘Output_Alpha=on’ doesn’t work as documented. With this setting the Background appear black and the scene is transparent.

Check with this Code:

camera {
   location  <3, 3, -3>
   direction <0, 0, 2.9>
   look_at   <0, 0, 0>
   right 1.0*x
}
light_source { < 3, 3, -3> color red 1 green 1 blue 1 }
sphere 
{
   <0,0,0> 0.8
   pigment {color rgb<1,1,0>}
   finish
   {
      ambient 0.2
      diffuse 0.8
   }
}

and with this ini file:

Input_File_Name=C:\Users\dfv_rei1\AppData\Local\Temp\Cuadrigula\PreviewObject.pov
Output_File_Name=C:\Users\dfv_rei1\AppData\Local\Temp\Cuadrigula\PreviewObject.tga
Output_File_Type=t
Output_Alpha=on
Bits_Per_Color=24
+W121 +H121
+a0.3
+q11
+a
 56 Texture/Material/FinishPossible Bug3.70 beta 34Very LowMedium Crackle pattern in some situations can cause runaway me ...Closed
100%
Task Description

(This happens as of beta 34)

The following scene will cause POV-Ray to allocate memory until all available memory is used, resulting in an Out of Memory error message:

#declare n1 = normal
{
    crackle .5
    scale 0.001
    accuracy 0.0001
}

#declare n2 = normal
{
    bumps 0
}

camera
{
    location <0, 0.2, -1>
    look_at <0.4, 0.3, 1>

    focal_point <0.4, 0.3-.0, 1>
    blur_samples 25
    confidence .9
    variance 0
    aperture .05
}

light_source
{
    <-10, 10,-5>, rgb 1.5
    area_light x*2,y*2,7,7 orient adaptive 2
}

sphere{ <0, 0, 0>, 0.5 pigment {color rgbf <0.85,1,.95,1>}

    interior
    {
        ior 1.5
        fade_color rgb <0.0, 0.5, 0.0>
        fade_power 2
        fade_distance 10.5
        dispersion 1.1
        dispersion_samples 100
    }

    normal {

        checker normal{n2} normal{n1}
        scale 0.1
        warp { spherical }

    }

    translate z*1
} 
 57 Texture/Material/FinishDefinite Bug3.70 beta 34Very LowMedium Compressed TIFF image_map renders all transparent Closed
100%
Task Description

The attached TIFF file was created with IC using compression. When used in an image_map, POV-Ray 3.7.0.beta.34 on Windows XP x64 renders the image all transparent, while POV-Ray 3.6.2 renders the file fine. The same effect can be seen with LZW-compressed TIFF files created with Adobe Photoshop 6.0.

Uncompressed TIFF files created with either IC or Photoshop render fine in both versions of POV-Ray.

Stepping through the code of POV-Ray 3.7.0 shows that the same code path is taken regardless of compression, but the libtiff library returns different alpha channel values, indicating a problem in that library. POV-Ray 3.7 still uses libtiff 3.6.1, whereas the POV-Ray 3.6 branch has been updated to libtiff 3.8.2, which according to the change history includes a few alpha-related changes.

60Geometric PrimitivesDefinite Bug3.70 beta 34Very LowMediumArtifacts using prism in CSGTracked on GitHub
0%
Future release Task Description

Using prisms in intersecion or difference CSG objects may cause artifacts in POV-Ray 3.6.2 as well as 3.7.0.beta.34, as demonstrated by the following code:


camera {
  right    -x
  up        y*image_height/image_width
  location  <-24,19,12>
  look_at   <0,0,0>
}

light_source { <100,200,100> color rgb 1 }

plane { y, -2 pigment { color rgb 1 } }


#declare KeyValue = 1.366; // pick any you like

difference {
  prism {
    linear_sweep -0.5,0.5, 4
    
    <-3,20-17>,
    <-3,KeyValue>,
    <-6,-3>,
    <-0,-5>
  }
  intersection {
    cylinder { <-7,-0.51,1>, <-7, 0.51,1>, 4.0 }
    plane { z, KeyValue }
  }
  pigment { color rgb 0.5 } 
}

Apparently the surface of the other object becomes visible when it exactly coincides with a vertex of the prism; probably there is a failure of the inside() test for such values.

 61 OtherDefinite Bug3.70 beta 34LowMedium Dispersion does not give proper results Closed
100%
Task Description

Source code inspection during examination of issues with the scene published at http://povray.sitewww.ch/?p=177 show the following issues with current (beta.34) implementation of dispersion in POV-Ray 3.7:

  • The same adjustment to the IOR that is applied at the very first dispersion interface is erroneously applied to all subsequent interfaces.
  • As an exception, dispersion adjustment is erroneously not applied to any interface defined by the surface of a non-dispersing object embedded into a dispersing object.

While this still allows to use dispersion for artistic effect, it is neither physically realistic, nor does it match 3.6 behavior.

 73 Parser/SDLDefinite Bug3.70 beta 34Very LowMedium Blend map cannot get 256 entries Closed
100%
3.70 beta 35 Task Description

Reported by cshake + pov @ gmail . com in p.beta-test, 14th december 2009

I wrote a simple script to convert fractint color maps to povray color_maps so I could use ApoMap to make nice fractal colors for pov, but I ran into
“Parse Error: Blend_Map too long.” The map has entries from 0/255 up to 255/255 (inclusive). I looked up the documentation which says that color_maps can have from 2 to 256 entries, and this is exactly 256 entries.
I’m posting this in beta-test because I assume that the documentation is correct for v3.6, and that a previous version can handle 256 entries.

 74 Texture/Material/FinishPossible BugAllVery LowMedium image_maps within pigment_maps are not rendered correct ...Closed
100%
Task Description

Hello,

when I use an image_map within a pigment_map (for example only a half of a box gets the image_map), the image_map is not rendered correctly.

For example when I have this box (scene and images are attached)

box {
	0, 1
	pigment {
		gradient z
		pigment_map {
			[0.4 image_map { png "test.png" } ]
			[0.4 color Cyan ]
		}
	}
}

So on the front you should see the image of test.png (in the attached scene it’s just red).
But on some pixels of the front you see the cyan color of the distant half of the cube.

Rendering the scene mutliple times produces the same result.

Rendering the scene at 200×150 is sufficiant.

povray +W200 +H150 scene.pov

I tested it with 3.6.1 and 3.7.0 beta 32 on Linux

75Geometric PrimitivesUnimp. Feature/TODO3.70 beta 34Very LowMediumReplace POV_MALLOC with std::vector in shape codeTracked on GitHub
30%
Future release Task Description

In the files bezier.cpp, fpmetric.cpp, fractal.cpp, hfield.cpp, isosurf.cpp, lathe.cpp, poly.cpp, polygon.cpp, prism.cpp, sor.cpp, and sphsweep.cpp the use of POV_MALLOC can be replaced by std::vector quite easily because the containing class already is a C++ class. As this is a low hanging fruit for continued code cleanup, it should be done sooner rather than later.

 76 OtherFeature Request3.6Very LowMedium Povray returns incorrect exit code when aborting render Closed
100%
3.70 release Task Description

If you abort a render with ^C, Povray exits with a ‘success’ error code.

To test:

povray scene.ini
(^C to abort it)
echo $?

Right now 0 is returned (’success’). A non-zero value should be returned (’failure’).

This is particularly important for scripting, where command lines like:

povray scene.ini && halt

...can be used. I only want the halt to be executed if the scene renders successfully. If I change my mind and ^C it, I don’t want the machine to shut down!

 80 Parser/SDLPossible Bug3.70 beta 35aVery LowMedium Bad behavior for missing image file Closed
100%
Task Description

The following SDL code

sphere {0, 1 pigment {image_map {png "missing.png"}}

yields “render failed” in 3.7b25 and the position of the error
is not highlighted in source code, giving no clue what went wrong.
In 3.6 this yields “Parse Error: Cannot open PNG file”.

81Geometric PrimitivesDefinite Bug3.62Very LowMediumsphere_sweep generating artifactsTracked on GitHub
0%
Task Description

I’m running POV-Ray for (64 bit) Windows v3.62 on (64 bit) Windows Vista

This pov file:


#include "colors.inc"
#include "metals.inc"

light_source { <6, 9, -21> color White }
camera { location <0, 0, -3> look_at <0, 0, 0> }

sphere_sweep {
                cubic_spline
                6
                <-2.0, 0, 0> 0.05

                <0.000,0,0> 0.2
                <0.025,0,0> 0.2
                <0.050,0,0> 0.2
                <0.075,0,0> 0.2

                <3.0,0,0> 0.2
                pigment { color White }
}

Produces two strange artifacts: A disk at the center of the sweep, and a faint “halo” or veil which shows as 4 faint hyperbolas centered around the origin.

I have tried tweaking tolerance (for no other reason than I saw that someone else was tweaking it to solve a problem) but this does not seem to change things.

For a look at MY result when I run this, view this image:

riventree.comarchivebugdatapovrayspheresweepartifacts.jpg

Alain reports the same behavior in the latest version: “It’s still there with the latest version: 3.7 beta 35a.” This MAY move the status to “confirmed”, but I can’t do that

Someone else says that changing the scale (!) “solves” the problem by moving the disk and the halo offscreen, but that sounds like a bad idea to me.

-Jeff Evarts, first-time POVRay bug reporter

 93 PhotonsDefinite Bug3.70 beta 36Very LowMedium Photons are unnaturally amplified by pass_through objec ...Closed
100%
3.70 release Task Description

The following scene shows how photons are “boosted” by pass_through objects; removing one of the boxes will reduce the effect; the effect can be seen with 3.6 as well as current betas:

global_settings {
  max_trace_level 10 // makes a difference!
  photons { spacing 0.02 }
}

camera {
  right x*image_width/image_height
  location  <0,2.6,-10>
  look_at   <0,0.75,0>
}

light_source {
  <500,500,150>
  color rgb 1.3
  photons {
    refraction on
    reflection on
  }
}

sky_sphere {
  pigment {
    gradient y
    color_map {
      [0.0 rgb <0.6,0.7,1.0>]
      [0.7 rgb <0.0,0.1,0.8>]
    }
  }
}

plane {
  y, 0
  texture { pigment { color rgb <1.0, 0.8, 0.6> } }
}

#declare M_Glass=
material {
  texture {
    pigment {rgbt 1}
    finish {
      ambient 0.0
      diffuse 0.05
      specular 0.6
      roughness 0.005
      reflection { 0.1, 1.0 fresnel on }
      conserve_energy
    }
  }
  interior {
    ior 1.5
    fade_power 1001
    fade_distance 0.9
    fade_color <0.5,0.8,0.6>
  }
}


sphere {
  <1.1,1,-1.3>, 1
  material { M_Glass }
  photons {
    target 1.0
    refraction on
    reflection on
  }
}

cylinder {
  <-1.2,0.01,0.8>, <-1.2,2.5,0.8>, 1
  material { M_Glass }
  photons {  // photon block for an object
    target 1.0
    refraction on
    reflection on
  }
}

box {
  <2.4,0,-2.3>, <2.6,4,-0.3>
  material { M_Glass }
  photons { pass_through }
}

box {
  <2.9,0,-2.3>, <3.1,4,-0.3>
  material { M_Glass }
  photons { pass_through }
}
98Refactoring/CleanupUnimp. Feature/TODO3.70 beta 36DeferMediumRefactor Windows UI code for Unicode supportTracked on GitHub
50%
Future release Task Description

Windows UI code should be refactored to use _TCHAR throughout instead of char, as well as the corresponding string function macros, to head for Unicode support.

 144 Image formatCompatibility Issue3.6Very LowMedium povray compatibility issue with png-1.4 Closed
100%
3.70 beta 39 Task Description

source/png_pov.cpp included in povray-3.6.1 contains calls to an internal function of libpng (png_write_finish_row) which was removed from the public interface quite a while ago, so linking fails.

Also, in the 1.4 releases of libpng, the info_struct “trans” member was renamed to trans_alpha. This causes a compilation error in the same file.

A suggestion for the solution:
a) remove the png_write_finish_row prototype and function call
b) add something like:
#if PNG_LIBPNG_VER < 10400
#define trans_alpha trans
#endif
and change
cmap[index].Transmit = 255 - r_info_ptr→trans[index];
to
cmap[index].Transmit = 255 - r_info_ptr→trans_alpha[index];
(two occurrences).

 155 Runtime errorDefinite Bug3.70 beta 38Very LowMedium Not able to run --benchmark Closed
100%
3.70 beta 39 Task Description

Compiled on linux (revision #5066),
./configure COMPILED_BY=”###” –disable-io-restrictions

the command: povray –benchmark

is failing:
Failed to parse INI file

povray –version

povray: this pre-release version of POV-Ray for Unix expires in 27 day(s) and 5 hour(s)
POV-Ray 3.7.0.beta.38

This is a time-limited beta test version which expires 31 Dec 2010.
General distribution is strongly discouraged.

Copyright 1991-2003 Persistence of Vision Team
Copyright 2003-2010 Persistence of Vision Raytracer Pty. Ltd.

Built-in features:

I/O restrictions:          disabled
X Window display:          enabled (using SDL)
Supported image formats:   gif tga iff ppm pgm hdr png jpeg tiff openexr
Unsupported image formats: -

Compilation settings:

Build architecture:  x86_64-unknown-linux-gnu
Built/Optimized for: x86_64-unknown-linux-gnu (using -march=native)
Compiler vendor:     gnu
Compiler version:    g++ 4.4.3
Compiler flags:      -pipe -Wno-multichar -Wno-write-strings -fno-enforce-eh-specs -s -O3 -ffast-math -march=native -pthread 
 157 Include filesDefinite Bug3.70 beta 37aVery LowMedium Warnings when parsing include file provided by distribu ...Closed
100%
3.70 beta 39 Task Description

Include file golds.inc still provides warnings when parsed, a shame for a standard include file.
(colors.inc is ok, I did not test the other includes)

File '/usr/local/share/povray-3.7/include/golds.inc' line 118: Parse Warning:
 Expected pure RGB color expression, unexpected filter and transmit components
 will have no effect.
File '/usr/local/share/povray-3.7/include/golds.inc' line 119: Parse Warning:
 Expected pure RGB color expression, unexpected filter and transmit components
 will have no effect.
File '/usr/local/share/povray-3.7/include/golds.inc' line 129: Parse Warning:
 Expected pure RGB color expression, unexpected filter and transmit components
 will have no effect.
File '/usr/local/share/povray-3.7/include/golds.inc' line 130: Parse Warning:
 Expected pure RGB color expression, unexpected filter and transmit components
 will have no effect.
File '/usr/local/share/povray-3.7/include/golds.inc' line 140: Parse Warning:
 Expected pure RGB color expression, unexpected filter and transmit components
 will have no effect.
File '/usr/local/share/povray-3.7/include/golds.inc' line 141: Parse Warning:
 Expected pure RGB color expression, unexpected filter and transmit components
 will have no effect.
File '/usr/local/share/povray-3.7/include/golds.inc' line 151: Parse Warning:
 Expected pure RGB color expression, unexpected filter and transmit components
 will have no effect.
File '/usr/local/share/povray-3.7/include/golds.inc' line 152: Parse Warning:
 Expected pure RGB color expression, unexpected filter and transmit components
 will have no effect.
File '/usr/local/share/povray-3.7/include/golds.inc' line 162: Parse Warning:
 Expected pure RGB color expression, unexpected filter and transmit components
 will have no effect.
File '/usr/local/share/povray-3.7/include/golds.inc' line 163: Parse Warning:
 Expected pure RGB color expression, unexpected filter and transmit components
 will have no effect.
 161 Image formatDefinite Bug3.70 beta 38Very LowMedium error when writing jpg format (linux build) Closed
100%
3.70 release Task Description

There is a confirmed bug when writing jpg file format with the current linux build (beta39). when specifying +fj output format the following error occurs:

JPEG parameter struct mismatch: library thinks size is 372, caller
expects 376
JPEG parameter struct mismatch: library thinks size is 372, caller
expects 376
Render failed

this has been confirmed on ubuntu 10.4 and openSuSe 11.2 (assuming 32 bit version) as openSuSe 11.2 64-bit reports no problem

there has been a proposed fix to ~smp/source/base/image/jpeg.cpp that appears to work, however it requires some additional work to make it a platform (linux) and compiler (gcc) specific fix.

 163 Parser/SDLUnimp. Feature/TODO3.70 beta 38Very LowMedium no pigment warning Closed
100%
Future release Task Description

no warning is issued when an object/primitive has no pigment type given

 167 OtherDefinite Bug3.70 beta 38Very LowMedium Core dump when rendering to huge dimensions Closed
100%
Task Description

From post in povray.general (circa 29 september 2010: “Maximum Resolution of Renders?”)

The ultimate goal would be a 41000×41000 image. However each time I have attempted to render that Pov-Ray has crashed on
me. Even when using a single, simple test object (a plain white sphere that
should use a single pixel). So I think this is running into a program limitation
at present.

It won’t be for the faint hearted: a 30500 x 30500 does still produces the bug, but you’d better have 24 GB of true ram to test it.
(it’s a render of a few “real” minutes if you do not swap, for any very quick scene (a 305 x 305 in 0.117s moved to 220s for 30500×30500 on my system when corrected))

With core-dumped enable, the issue is pointed in the creator of PixelContainer.
The problem is due to the resize() parameter: despite the parameter being a size_t (8 bytes long on 64bits), the computation ( h * w * 5 ) use unsigned int for h & w (and signed int for 5).

As a consequence, the value of resize is computed as a signed int... havoc might happen when the signed bit (#31) is propagated to the #63 to #32 of size_t... vector does not enjoy a negative value for resize (and destroy itself: no iterator on coming soon call! hence the crash when the values in the vector are to be initialised)

30500²: (in hex)

1 15 3C 71 50 floats
4 54 F1 C5 40 bytes

Basic solution: promote the 5 to an unsigned long, forcing the computation to happen on unsigned long, avoiding promotion of silly sign-bit, and keeping the resize’s value as a good number.

aka: resize( w * h * 5) becomes resize ( w * h * 5ul )

This solution has been tested and seems fine (it’s just that in base/image/image.cpp, there is a lot of resize()!).
For all resize(), the “ul” must be added. (and that means also that resize( w * h ) must be rewritten as ( w * h * 1ul ). )

 168 Texture/Material/FinishDefinite Bug3.70 beta 38Very LowMedium noise_generator default broken Closed
100%
3.70 beta 40 Task Description

[Original Title: “texture_map interpolation does not work correctly for some patterns”]

The below test scene should yield identical textures
T_STRAND1 and T_STRAND2 but this is not the case. Reported
and verified in

http://news.povray.org/povray.general/thread/%3C4cbd804b%241%40news.povray.org%3E/

The problem seems to affect bozo, bumps, dents, granite, spotted,
and maybe wrinkles. The problem was reported earlier in

http://news.povray.org/povray.beta-test/thread/%3C48112367%241%40news.povray.org%3E

with a comment that 3.6 gives the expected results

#declare C_STRAND = color rgb 1;

#declare C_CLEAR  = color rgb 0;

#declare T_STRAND = texture
{
  pigment {color C_STRAND}
}

#declare T_CLEAR = texture
{
  pigment {color C_CLEAR}
}

#declare T_STRANDS1 = texture
{
  pigment
  {
    granite scale 2 color_map
    {
      [0.0 color C_STRAND]
      [0.5 color C_CLEAR]
      [1.0 color C_CLEAR]
    }
  }
}

#declare T_STRANDS2 = texture
{
  granite scale 2 texture_map
  {
    [0.0 T_STRAND]
    [0.5 T_CLEAR]
    [1.0 T_CLEAR]
  }
}

plane
{
  z, 10
  texture {T_STRANDS1}
  //texture {T_STRANDS2}
} 
 174 Setup/InstallDefinite Bug3.70 beta 39Very LowMedium I/O Restriction defaults not being properly set for POV ...Closed
100%
3.70 RC7 Task Description

I/O Restriction defaults are not being properly set on a fresh install of POVWIN.

See this thread for more information.

181BackendUnimp. Feature/TODO3.70 beta 40Very LowMediumUnimplemented, altered or missing features to document ...Tracked on GitHub
0%
Task Description

This is a list of unimplemented features and things to fix with respect to 3.7 vs 3.6 compatibility. They either need to be fixed in code, or failing that, to be documented prior to release.


Create_INI works differently from 3.6. Prior versions of POV-Ray would write all options to the file, even if they were not supplied by the user (non-supplied options would take the default value). Currently in 3.7, only supplied options are written, because the front-end does not send unused options to the back-end. The proper fix for this would be to have a set of defines that establish the defaults all in one place (currently we rely on hard-coded values scattered around the code), and for the Output_INI_Option() function to look up and use the default when not supplied. As this is not likely to be done before 3.7 release, we need to document it as a temporary situation.

The following messages are marked as ‘currently not supported by code’ in povmsgid.h. We need to check where this comment is correct and if so the docs need to be updated to indicate this (for items that are already documented). Some items may be re-implemented later, and some may never be:

  • kPOVAttrib_TestAbort
  • kPOVAttrib_TestAbortCount
  • kPOVAttrib_VideoMode
  • kPOVAttrib_Palette
  • kPOVAttrib_DisplayGammaType
  • kPOVAttrib_FieldRender
  • kPOVAttrib_OddField
  • kPOVAttrib_AntialiasGammaType
  • kPOVAttrib_LightBuffer
  • kPOVAttrib_VistaBuffer
  • kPOVAttrib_DrawVistas

This bug should be edited to add/remove items as time goes by.

 195 OtherCompatibility Issue3.70 RC3Very LowMedium povray-3.7.0rc3 incompatible with NetBSD Closed
100%
Task Description

While testing if the png support was working, I tried 3.7.0rc3 on NetBSD-5.99.45/amd64, and had the following problems:

1. lseek64 (used in source/base/image/image.cpp) is not portable, and not necessary on NetBSD (off_t there is large-file-safe)
2. unix/Makefile.am doesn’t add -lboost_thread to povray_LDADD, which breaks linking the executable.
3. vfe/unix/platformbase.cpp uses CLOCK_THREAD_CPUTIME_ID, which is not provided on NetBSD (I hacked around it by defining the symbol to “0”, but that’s of course not a correct fix).
4. vfe/unix/platformbase.cpp uses CLOCK_PROCESS_CPUTIME_ID, which is not provided on NetBSD – it’s called CLOCK_REALTIME like on FreeBSD, so we could just add defined(NetBSD) to the FreeBSD case, except for point 3.
5. vfe/unix/vfeplatform.cpp uses WEXITSTATUS. For this, sys/wait.h should be included. The obvious fix is
#ifdef HAVE_SYS_WAIT_H
# include <sys/wait.h>
#endif
but this also needs a check in the configure script.

Fixing all this, I get it to build, but core dump when run against the demo file from http://www.csb.yale.edu/userguides/graphics/povray/demo.pov.html.
Backtrace is
Program terminated with signal 11, Segmentation fault.
#0 0x00000000004ac479 in boost::gregorian::date::date ()
(gdb) bt
#0 0x00000000004ac479 in boost::gregorian::date::date ()
#1 0x00000000004d29f7 in boost::gregorian::date::date ()
#2 0x0000000000479a85 in std::vector<std::string, std::allocator<std::string> >::operator= ()
#3 0×0000000000461570 in std::vector<std::string, std::allocator<std::string> >::operator= ()
#4 0x00000000004656c7 in std::vector<std::string, std::allocator<std::string> >::operator= ()
#5 0x00000000005efc9f in Imf::TypedAttribute<std::string>::typeName ()
#6 0x00000000005fd890 in Imf::TypedAttribute<std::string>::typeName ()
#7 0x00000000005fe5d8 in Imf::TypedAttribute<std::string>::typeName ()
#8 0x000000000045d6dc in std::vector<std::string, std::allocator<std::string> >::operator= ()
#9 0x00007f7ffd80d9cf in thread_proxy ()

from /usr/pkg/lib/libboost_thread.so.1.45.0

#10 0x00007f7ffd00b24e in pthreadcreate_tramp (cookie=<value optimized out>)
at /archive/cvs/src/lib/libpthread/pthread.c:473
#11 0x00007f7ff8871780 in _lwp_park50 () from /usr/lib/libc.so.12

Please advise on how to proceed.

 198 Parser/SDLDefinite Bug3.70 RC3Very LowMedium Missing closing brace in function definition causes mem ...Closed
100%
3.70 RC4 Task Description

Given the following two statements, a missing closing brace in the function declaration fn should throw a parse exception; instead it causes a memory access violation when trying to use fn in the second delcaration:

#local fn = function { 
  pigment { image_map { png "MultiPassBlobs3.png" gamma 1 map_type 0 once }} 
#local clr = fn(0,0,0);
 209 Geometric PrimitivesDefinite Bug3.70 RC3Very LowMedium Weighted texture of CSG Closed
100%
3.70 RC4 Task Description

in change #3319, csg got a new computation for its weighted textures.

But I’m confused by the computation of the weight: (circa end of csg.cpp file)

COLC weight = 1.0f / min(COLC(textures.size() - firstinserted), 1.0f);

I would have used a max() rather than a min().

It is transparent when there is only one texture, but:

  • should there be no texture (an error...): it would be a division by 0
  • should there be more than 1, the weight of each would be 1. which is without consequence UNLESS there is already some other textures in the list. The right value (from previous code) was 1/n

Or did I get a confusion about min() ?

min(0,1) == 0
min(4,1) == 1

Using max would protect against the division by 0 and the right value when multiple textures are used.

Any thought ?

 210 Geometric PrimitivesDefinite Bug3.70 RC3LowMedium UV mapping broken for parametric Closed
100%
3.70 RC4 Task Description

UV-mapped textures for parametrics are broken in POV-Ray 3.70 RC3, in cases where two (or more) parametrics overlap in a scene.

In the following scene, note how the texture per se is always taken properly from whichever parametric is in front, while the UV coordinates are erroneously taken always from the red parametric where both overlap, no matter whether it is in front or back.

camera {
  location  <0.0, 1.5, -3.0>
  direction 1.5*z
  right     x*image_width/image_height
  look_at   0
}

light_source { <-30, 30, -30> color rgb 1 }

#declare Param = parametric {
  function { u*v*sin (15*v) },
  function { v },
  function { u*v*cos (15*v) }
  0, 1
  contained_by { box { -1,1 } }
  accuracy 0.002
  precompute 15 x,y,z
  rotate 180*x
  translate  <0.3,0.5,0>
}

object {
  Param
  uv_mapping
  texture {
    pigment {
      gradient x frequency 3
      color_map {
        [0 color red .5 ]
        [1 color red 1 ]
      }
    }
  }
}

object {
  Param
  uv_mapping
  texture {
    pigment {
      gradient x frequency 7
      color_map {
        [0 color green .5 ]
        [1 color green 1 ]
      }
    }
  }
  rotate y*180
}

POV-Ray 3.62 renders the scene properly.

As this bug has been found during code inspection, the uderlying cause has already been identified; I’m currently working on a fix.

 213 Parser/SDLDefinite Bug3.70 RC3Very LowMedium Missing check for ios failbit/badbit: endless loop whil ...Closed
100%
3.70 RC4 Task Description

Hello,

this bug report relates to this thread: http://news.povray.org/povray.beta-test/thread/%3Cweb.4e0064d9a3970d212b256d410%40news.povray.org%3E/

In /unix/unixoptions.cpp around line 817:

while ( !Stream.eof() )
{
	// get and preprocess line
	std::getline(Stream, line);
	line = pre_process_conf_line(line);
	++line_number;
	// skip empty line
	if(line.length() == 0)
		continue;
        [...]
}

`Stream.eof()` could never be true as well as `line.length()` always can be zero, leading to an endless loop. In my case, the problem occurred due to my ~/.povray/3.7/povray.conf being a directory instead of a file.

To fix the problem, one has to consolidate this loop by not only checking for eofbit, but also for failbit and badbit of `Stream`. The getline() method on a directory does not set the eofbit, but it sets fail and bad (test: http://codepad.org/RiZGo3ia). According to http://www.cplusplus.com/reference/iostream/ios/operatornot/ fail and bad can be checked for by `!Stream`. A simple `if (!Stream) break;` within the loop fixes the problem (patch file attached).

Are there more missing checks on iostreams like this in the code? :) They should definitely be fixed.

Furthermore, one could think about using the boost filesystem library to be able to distinguish files and directories to provide good error messages.

Hope that helps,

Jan-Philip Gehrcke

 228 Texture/Material/FinishPossible Bug3.70 RC3Very LowMedium Emission Media does not show on Alpha background Closed
100%
Task Description

I tried to render a candle’s flame (an object with interior made of emission media) against an Alpha background. In 3.6, the “flame” appears as a bright object against the alpha background; but in 3.7, the flame disappears against the alpha (as the attached scene will make clear, the “flame” is still visible against opaque background objects). I used the settings “Output_Alpha=true Output_File_Type=N”.

If there is another (better?) way to achieve a similar effect, I am open to using a work-around.

 236 AnimationPossible Bug3.70 RC3Very LowMedium Segmentation fault with animation of large image Closed
100%
Task Description

If the image is more than 1270 pixels wide or more than 720 pixels high, animation fails with a segmentation fault during the second rendered frame. This happens after parsing is complete and the .pov-state file is created. The last message line is the “[Rendering...]” line. (There is also a separate, but possibly related, issue that the output display does not work for these renders.)

On one occasion, POV-Ray hung, and I had to ctrl-Z kill -9 out of it.

On another occasion, instead of the segmentation fault, I got the message:

povray: xcb_io.c:140: dequeue_pending_request: Assertion `req == dpy->xcb->pending_requests' failed.
Aborted

There is no crash when -D is used.

I have not run an animation this large in Windows, so I don’t know if it’s a problem there.

Neither problem occurs in POV-Ray 3.6.1.

I used the following source code:

global_settings { assumed_gamma 1 }
light_source { <-1, 1, -1> * 1000, rgb 1 }
sphere { 2.5 * z, 1 pigment { red 1 } }

Platform

Operating system: openSUSE Linux 12.1
Hardware: HP Pavilion dv5030us Notebook PC (32 bits)
RAM: 1GB
Displays: 1280×800 built-in panel; 1680×1050 HP w2007 external monitor

Libraries

Boost 1.48.0 (Note: bzip2 and python dependent modules did not compile, and MPI support does not work.)
Zlib 1.2.5 (LibXML 2.7.8)
LibPNG 1.5.7
LibJPEG IJG 8d
LibTIFF 3.8.2
OpenEXR 1.6.1 (IlmBase 1.0.1)
SDL unknown

 239 Setup/InstallDefinite Bug3.70 RC4Very LowMedium Owner and group of user's local configurations on insta ...Closed
100%
Future release Task Description

I reinstall a system, (so ~/.povray was not existant), and then
installed povray from sources, as a normal user (excepted the
installation step):

$ ./configure ...
$ make
$ make check
$ sudo make install

I find these steps pretty much standard.

The problem I’m noticing is that the $HOME/.povray hierarchy get owned
by root (hey, it’s *MY* directory !). There is a chown in the Makefile
for the target files (povray.ini & povray.conf), as well as subtree but:

* povowner & povgroup are hard coded to 0 (I would expect a copy of the
owner & group of $HOME, wouldn’t I ?)

For getting povowner, I would suggest `stat -c “%u” $HOME`
For povgroup, `stat -c “%g” $HOME`

Are they portable enough ? (I could ask on Monday a Solaris system, but
I do not have bsd and the other flavours of unix)

(Stat is in section 1 of man, part of gnu coreutils, /usr/bin/stat)

Side note: This is fine to install for the local user, but new later
users could benefit also from a ~/.povray/3.7/ subtree ; what about also
filling the /etc/skel (when available) ? (and in /etc/skel, root owner
is fine!)

251Parser/SDLPossible Bug3.70 RC6Very LowMediumScene / include files of >2GB size may cause problemsTracked on GitHub
0%
3.71 release Task Description

Code inspection shows that we’re still using fseek() and ftell() in various places (including text file input), which can’t handle file positions of 2GB and beyond (except on 64-bit linux machines); those calls need to be examined and (where appropriate) replaced with the fseek64() macro we’re already defining (but currently not using), and a to-be-defined ftell64() macro.

One potential (untested) error scenario would be a scene file calling a macro that is defined at the end of a > 2GB long include file.

 254 CameraDefinite Bug3.70 RC6Very LowMedium Mesh_camera type 0 output seems to be incorrect Closed
100%
Task Description

When using mesh_camera type ‘0’

The first line of the mesh output seems to be repeated resulting in incorrect light colour values.

If the first line of the texture is skipped then the values seem to be correct.

 255 CameraDefinite Bug3.70 RC6Very LowMedium Mesh_camera type 0 should compute per vertex or per fac ...Closed
100%
Task Description

The documentation states mesh_camera 0 should produce 1 pixel per index but it currently seems to produce 1 lighting pixel per face.

This output seems fairly meaningless as using this data for vertex colours (presumably the intention for mesh_camera 0) would result in a flat shaded model.

Logically it would make more sense to output 1 pixel per vertex instead of 1 pixel per face. Another solution might 1 pixel per face index (as per documentation) although POV would need to record which indices had already been computed otherwise it could end up duplicating computation.

At the moment I’ve written a code workaround for my exporter which produces a special mesh but this is obviously a much more complex solution to a fairly simple problem.

 261 CameraDefinite Bug3.70 RC6Very LowMedium mesh_camera distribution type 3 output image is placed  ...Closed
100%
Task Description

Output images are 0.5 pixels too right and 0.5 pixels too down (mesh_camera_bug.pov).

The error is cumulative when image files are used again as texture (run 10 times mesh_camera_bug_reuse.pov).

This can be compensated by adjusting UV maps (mesh_camera_fix.pov and mesh_camera_fix_reuse.pov).

Tested with and without anti-aliasing.

 267 Geometric PrimitivesDefinite Bug3.70 RC6Very LowMedium Bug in "sor" Primitive Leads to Random Black Artefacts  ...Closed
100%
3.70 RC7 Task Description

Recently, I have been rendering an animation with POV-Ray 3.7 RC 6 using radiosity, photons and backside illumination. Many frames contained artefacts like in the attached image file. Trying to eliminate those artefacts I observed the following:

  • Rendering the same frame several times did not reproduce the artefacts or reproduced them differently. I.e., when I rendered a second (third, fourth, ...) time with +SF100 +EF100, the black space in the image was somewhere else or in some cases disappeared.
  • With radiosity turned off, no such artefacts have happened since, even in the scenes where they happened with radiosity turned on.
  • Turning off photons with radiosity still turned on did not remove the artefacts.
  • Rendering with one thread on one CPU core instead of two threads on two cores did not change anything except the rendering time.
  • Changing the radiosity settings I have not tried thoroughly, but at least raising or lowering count or error_bound does not seem to have any effect on this.

While POV-Ray was rendering, no other memory-intensive or CPU-intensive programs were running and POV-Ray itself did not report any error (just the usual warnings that some of the used features could change in future versions etc.). Render priotity was set to “high”.

273OtherDefinite Bug3.70 RC6Very LowMediumNo automatic backup files from inc filesTracked on GitHub
0%
Task Description

If enabled, POVray always created backups of pov and inc files once per session.
Now using 3.7 RC6 only pov file backups are created but not from inc files.

 276 Parser/SDLFeature Request3.70 RC7Very LowMedium SDL Access to Spline Derivatives Closed
100%
Task Description

I would like to suggest an additional feature regarding splines. POV-Ray’s spline objects (spline {}) are very useful to create animation paths as a function of time from reference points; however, in many cases you do not only need a position to place an object correctly, but also its velocity etc., e.g. if you are animating a car moving along a spline you do not only need to know where the car is at a given clock value but also in which direction it is going. If you want to rotate the wheels correctly you even need to know how this direction is currently changing.

In a nutshell, if you are using splines to create an animation path, you might not only need the spline value itself, but also the value of its first and second derivative. So I suggest adding an SDL capability to access these values like it is possible to access the spline value for a given parameter.

I do not think it would be too difficult to add a feature like this as far as the backend is concerned, since for computing a (cubic) spline you need the first and second derivatives anyway. (They are probably not being stored separately, but a polynomial is not that hard to differentiate.)

Indeed I do not know how an SDL language construct for it should look like (i.e. whether to use ' and ‘’ like in mathematics or a second spline function parameter).

 277 OtherPossible Bug3.70 RC7Very LowMedium Max Image Buffer Memory Does not Seem to Work Closed
100%
Task Description

In POV-Ray’s documentation it says:

3.2.2.2 Max Image Buffer Memory
This INI parameter sets the number of megabytes of RAM to allow for output image caching. If the output image happens to use more than this, a file backed temporary image is used instead.

I used this INI file option because the default value (128 megabytes) seemed insufficient. pov-state backend files were always created and they were remarkably larger than the resulting image (bmp) files. Consequently, I set

Max_Image_Buffer_Memory = 3096

in the INI file so that POV-Ray should, according to the documentation, now be able to use 3 gigabytes of RAM so no backend temporary file would be needed at all (this large they were never).

However, while POV-Ray was rendering I still discovered a pov-state file and it still had a similar size.

Now I am confused: did the INI option not work or have I misunderstood the documentation? If the former is the case, that would be a bug, wouldn’t it?

I tested both under Windows XP and Debian 6.0.5.

278BackendFeature Request3.70 RC7Very LowMediumImplement Lens Flare RenderingTracked on GitHub
0%
Task Description

Currently POV-Ray does not support rendering lens flare effects, however, they can be simulated using a macro (include file) by Chris Colefax.

I would like to suggest adding a feature to POV-Ray to support lens effects “natively” since

  • as far as I know the macro has been designed for POV-Ray 3.1 so with each new POV-Ray version it gets more likely that this macro does not work properly any more
  • the macro does not work when rendering with radiosity, probably because the macro creates the lens effect by using a pigment with a high ambient value (which is ignored by POV-Ray 3.7’s radiosity algorithm).

Additionally, the macro is not quite easy to employ because

  • it needs to know the exact camera parameters (location etc.) and defines an own camera itself so any important camera information has to be stored if the effect has to work as expected
  • it does not (actually cannot) take into account that objects may (partially) hide the lens effect
  • reflections and refractions (of light sources) cannot be combined with it properly - the user would have to calculate both the point where the reflected/refracted light source can be observed and the shape it then has due to distortion, and in more complex scenes such computations are nearly impossible in SDL.

I would suggest integrating such a lens flare rendering feature with the “looks like” mechanism you already have for light sources. Several parameters that can currently be set for the macro - including effect brightness and intensity, lens options and whether to create a flare at all - could be set for the light source.

Then POV-Ray could store the location and colour of each ray that finally intersected the “looks like” object of a light source and, having finished the main rendering, from that data compute a partially transparent “lens flare layer” eventually mixed into the rendered image. By this, the above mentioned problems could be avoided:

  • an object fully or partially intersecting a light source’s “looks like” object would also reduce the number of pixels used to create a flare - and therefore reduce that flare until fully hiding it
  • the same goes for reflected and/or refracted versions of the “looks like” object
  • the camera’s location and other properties would be used automatically
  • and finally, as a feature supported by POV-Ray itself, there would be neither compatibility issues nor problems like the effect not fitting together with radiosity.

Do not get me wrong, I would not expect POV-Ray to really calculate intersections that naturally happen in a camera lens, causing lens flares. Effects looking appropriate can actually be created just in 2D space (as some graphics programs do support) so the work to be done would, as far as I have any overview, be:

  • storing, as mentioned above, the relevant data for pixels showing “looks like” objects
  • calculating a lens flare from that data after the render has finished
  • overlaying the rendered image with the newly created lens effect.
 280 EditorPossible Bug3.70 RC7Very LowMedium editor issue Closed
100%
Task Description

The following editor issue experienced in 3.7 RC 6 under Win7/64::

Place the curser at the middle of a row.
Press enter. Now the line has been split and the cursor is at the beginning of the new line, followed by the rest of the original line
Press backspace.
Instead of restoring the original line, the second part of the line disappears.

RC 3 under Vista/32 (and earlier versions) behave normally.

 290 DocumentationPossible Bug3.70 RC7Very LowMedium Windows. Editor context menu opens folder instead of ad ...Closed
100%
Task Description

This is an annoying little bug in the Windows GUI:

Installed 3.7 RC07 on Windows 8.
No previous povray installation on this machine.

How to reproduce error :

- Open a file in the editor.

- Right click on the files tab. This opens a popup menu showing “Open containing folder/Copy file to clipboard/....”.

-Now each selection in this menu does open the containing Folder. I cannot close or run any of the other actions in this menu.

296Geometric PrimitivesDefinite Bug3.70 RC7DeferMediummax gradient computation is not thread safe (isosurface...Tracked on GitHub
0%
3.71 release Task Description

It appears as a side effect of investigation of #294: the code in isosurf.cpp, inside
bool IsoSurface::Function_Find_Root_R(ISO_ThreadData& itd, const ISO_Pair* EP1, const ISO_Pair* EP2, DBL dt, DBL t21, DBL len, DBL& maxg)

	if(gradient < temp)
		gradient = temp;

is not thread-safe (The code is used at render time, there is a data race between < and = operation, as gradient is stored in the global object and accessed in write mode by the cited code)

It is only important if the gradient is initially undervaluated (otherwise, all is fine, no write-access)

Showing tasks 51 - 100 of 336 Page 2 of 7 - 1 - 2 - 3 - 4 - 5 - Last >>

Available keyboard shortcuts

Tasklist

Task Details

Task Editing