POV-Ray : Newsgroups : povray.binaries.images : Black pixels again Server Time
7 Nov 2024 13:38:44 EST (-0500)
  Black pixels again (Message 1 to 10 of 10)  
From: Norbert Kern
Subject: Black pixels again
Date: 2 Feb 2016 10:35:01
Message: <web.56b0ca867e1cd917dea14abf0@news.povray.org>
Hi,

I got an annoying "black pixel" problem, which was mentioned here several times
before.

When I added a "carpet"-like normal to a plane, I got black pixels on nonrelated
objects.

Here is the offending normal part:
normal {
        average
        normal_map {
              [1      quilted 3
                      control0 0.5
                      control1 0.9
                      scale 0.24
                      turbulence 1
              ]
              [1      bumps 0.9
                      warp {turbulence 1}
                      scale 2
              ]
              [1      bumps 0.6
                      warp {turbulence 0.5}
                      scale 0.01
              ]
        }
        scale 0.05
}

I found a circuitous solution by saving radiosity data, rendering with no_image
on the plane and +ua, rendering a mask (because of an mistake in the sky_sphere
definition this part wasn't fully transparent) and finally combining all of it
to a defect-free final render (via povray).

The result can be seen on the current TinaChep round "Abstract"
(http://www.tc-rtc.co.uk/display/animation.html).

Now the question - is there a more elegant solution for the problem or is the
reason known causing the black pixels?

Norbert Kern


Post a reply to this message


Attachments:
Download 'black pixels.jpg' (859 KB)

Preview of image 'black pixels.jpg'
black pixels.jpg


 

From: clipka
Subject: Re: Black pixels again
Date: 2 Feb 2016 14:39:17
Message: <56b105e5$1@news.povray.org>
Am 02.02.2016 um 16:30 schrieb Norbert Kern:
> 
> I got an annoying "black pixel" problem, which was mentioned here several times
> before.
...
> Now the question - is there a more elegant solution for the problem or is the
> reason known causing the black pixels?

That depends on what version of POV-Ray you happen to be using.

If it's POV-Ray 3.6, I'd point out that it has been notorious for a type
of splotchy black artifacts that POV-Ray 3.7 has done away with.

If it's POV-Ray 3.7, I'd ask you for more details and a sample scene
because I'd currently have no ideas what's going on there.


Post a reply to this message

From: Norbert Kern
Subject: Re: Black pixels again
Date: 2 Feb 2016 16:05:01
Message: <web.56b118fe9966c5b4dea14abf0@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:

> > I got an annoying "black pixel" problem, which was mentioned here several
> > times before.

> If it's POV-Ray 3.7, I'd ask you for more details and a sample scene
> because I'd currently have no ideas what's going on there.

I downloaded the source to binaries.scene-files
(http://news.povray.org/povray.binaries.scene-files/message/%3Cweb.56b113905217ab9dea14abf0%40news.povray.org%3E/#%3Cwe
b.56b113905217ab9dea14abf0%40news.povray.org%3E).

Black pixels are depending on radiosity and certain object/material
combinations.
Some scenes generate black pixels with higher probability - same is true for
several materials.

Black pixels don't disappear with higher max_trace levels or better radiosity
settings and no coincident surfaces are involved.

In one older post somebody mentioned minimum_reuse or adc_bailout settings as
possible cause, but I couldn't verify it.

It's an annoying problem and I'm happy you will look over it.

Of course I can send more scenes with black pixels...


Norbert


Post a reply to this message

From: Norbert Kern
Subject: Re: Black pixels again
Date: 2 Feb 2016 19:05:01
Message: <web.56b143eb9966c5b4dea14abf0@news.povray.org>
"Norbert Kern" <nor### [at] t-onlinede> wrote:

> Of course I can send more scenes with black pixels...


I uploaded a collection of 12 materials, which give black pixels in combination
with a very simple scene setup.

http://news.povray.org/povray.binaries.scene-files/message/%3Cweb.56b13fdfffbcf045dea14abf0%40news.povray.org%3E/#%3Cwe
b.56b13fdfffbcf045dea14abf0%40news.povray.org%3E

Averaging normals seem to be a good way to cause such problems...


Norbert


Post a reply to this message

From: William F Pokorny
Subject: Re: Black pixels again
Date: 3 Feb 2016 05:48:40
Message: <56b1db08$1@news.povray.org>
On 02/02/2016 07:03 PM, Norbert Kern wrote:
> "Norbert Kern" <nor### [at] t-onlinede> wrote:
>
>> Of course I can send more scenes with black pixels...
>
>
> I uploaded a collection of 12 materials, which give black pixels in combination
> with a very simple scene setup.
>
>
http://news.povray.org/povray.binaries.scene-files/message/%3Cweb.56b13fdfffbcf045dea14abf0%40news.povray.org%3E/#%3Cwe
> b.56b13fdfffbcf045dea14abf0%40news.povray.org%3E
>
> Averaging normals seem to be a good way to cause such problems...
>
>
> Norbert
>
>
Hi Norbert,

I think the trigger is normals with turbulence scaled very, very small. 
Perhaps the shape is seen inside out. Try replacing the averaged normals 
in your primitives3.pov with the single normal :

normal { bumps 0.6 warp {turbulence 0.5} scale 0.01 scale 0.05 }

If the problem is still present as it was for me, try :

normal { bumps 0.6 warp {turbulence 0.0} scale 0.01 scale 0.05 }

or

normal { bumps 0.6 warp {turbulence 0.5} scale 1.01 scale 0.05 }

and see if the problem goes away for you too. If so then I guess 
understanding how small is too small to use turbulence with normals, 
whether a real bug etc.

Radiosity is sending out its own rays of course. I am not sure why those 
rays seem more sensitive to what ever is happening than do rays directly 
from the camera.

Aside: Wish I had your machine! I had to cut WAY back on the radiosity 
settings to get things to turn reasonably for me & some chance this 
affected results though I was seeing similar artifacts to those posted.

Bill P.


Post a reply to this message

From: clipka
Subject: Re: Black pixels again
Date: 3 Feb 2016 12:42:10
Message: <56b23bf2$1@news.povray.org>
Am 02.02.2016 um 22:00 schrieb Norbert Kern:
> clipka <ano### [at] anonymousorg> wrote:
> 
>>> I got an annoying "black pixel" problem, which was mentioned here several
>>> times before.
> 
>> If it's POV-Ray 3.7, I'd ask you for more details and a sample scene
>> because I'd currently have no ideas what's going on there.
> 
> I downloaded the source to binaries.scene-files
>
(http://news.povray.org/povray.binaries.scene-files/message/%3Cweb.56b113905217ab9dea14abf0%40news.povray.org%3E/#%3Cwe
> b.56b113905217ab9dea14abf0%40news.povray.org%3E).

Okay, I'm now officially frustrated by how slow that scene parses. Can
you tell me what parameters to change so that parsing doesn't take ages?
It's all the more important in debug mode, as everything runs far slower
there.


Post a reply to this message

From: Norbert Kern
Subject: Re: Black pixels again
Date: 3 Feb 2016 14:40:03
Message: <web.56b256a59966c5b4893f3760@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:

> Okay, I'm now officially frustrated by how slow that scene parses. Can
> you tell me what parameters to change so that parsing doesn't take ages?
> It's all the more important in debug mode, as everything runs far slower
> there.

Hmmm, sorry for slow parsing. Here is a faster version.

#version 3.7;

#declare RAD = 16/4;

global_settings {
        #declare a_g = 2.2;
        assumed_gamma a_g
        max_trace_level 5
        noise_generator 2
        #if(RAD > 0)
                radiosity {
                        pretrace_start 0.08
                        pretrace_end   0.04/RAD
                        count 60*RAD
                        nearest_count min (20, RAD)
                        error_bound 2/RAD
                        low_error_factor 0.5
                        recursion_limit 1
                        gray_threshold 0
                        minimum_reuse 0.015
                        brightness 1
                        adc_bailout 0.005
                        normal on
                        media on
                        always_sample off
                }
        #end
}

#include "stdinc.inc"

sky_sphere {
        pigment {
                average
                pigment_map {
                        [1      function {max (min (y, 1), 0)}
                                color_map {
                                        [0      rgb 2.35]
                                        [0.96   rgb 4.5]
                                        [1      rgb 13.5]
                                }
                        ]
                        [1      function {max (min (y, 1), 0)}
                                turbulence 0.2
                                color_map {
                                        [0      rgbt 1]
                                        [0.5    rgbt <0.385,0.77,1.1,1>]
                                }
                                rotate <0,0,-45>
                        ]
                }
        }
}

light_source {
        <2000,1000,1500>,
        color <2.42,2.23,1.87>
        area_light <100,0,0>, <0,100,0> 7, 7 adaptive 1*0 jitter circular orient
}

#declare camloc = <0,3.9,-5.85>;
#declare lookat = <-0.9,-0.5,0>;

camera {
        location camloc
        look_at lookat
        right x*image_width/image_height
        up y
        angle 67.38*image_width/image_height*0.54
}

//______________________________________________________________________________

#declare SkinCol = <0.95,0.9,0.85>;

#declare T1 =
material {
        texture {
                pigment {color rgb SkinCol filter 0.75}
                finish {ambient 0 diffuse 0.6}
        }
        texture {
                pigment {
                        aoi
                        color_map {
                                [0      rgb SkinCol*0.7 filter 1]
                                [0.167  rgb SkinCol*1.2 transmit 0.66]
                                [0.333  rgb SkinCol+5 filter 0.1]
                                [0.5    rgb 10]
                                [0.667  rgb SkinCol+5 filter 0.1]
                                [0.833  rgb SkinCol*1.2 transmit 0.66]
                                [1      rgb SkinCol*0.7 filter 1]
                        }
                }
                finish {
                        emission SkinCol*0.01
                        diffuse 0.6
                        specular 0.1
                        roughness 0.03
                }
        }
        texture {
                pigment {color rgb SkinCol transmit 0.15}
                finish {
                        emission SkinCol*0.01
                        diffuse 0.6
                        specular 0.1
                        roughness 0.03
                }
                normal {
                        dents -0.25
                        scale 0.002
                }
        }
        interior {
                ior 1.35
                media {
                        scattering {1, rgb 8 extinction 0.2}
                        method 3
                        aa_level 4
                        intervals 1
                        samples 10
                }
        }
}

//______________________________________________________________________________

#declare f_radi = function {pattern {cells}}
#declare f_pig1 = function {pattern {crackle metric 1 form <0,-2,2>}}

#declare f_p =
pigment {
        function {-100*f_pig1 (x-f_radi (x,y,z), y-f_radi (x,y,z), z-f_radi
(x,y,z))}
}

#declare T2 =
material {
 texture {
                pigment {color rgb <65,136,166>/255}
  normal {
   average
   normal_map {
    [1      quilted 3
     control0 0.5
     control1 0.9
     scale 0.24
     turbulence 1
    ]
    [1      bumps 0.9
     warp {turbulence 1}
     scale 2
    ]
    [1      bumps 0.6
     warp {turbulence 0.5}
     scale 0.01
    ]
   }
                        scale 0.05
  }
                finish {diffuse 0.5 reflection 0.01}
 }
 interior {ior 1.4}
}

//______________________________________________________________________________


#macro fonctionX (xx)

tan (xx)*cos (xx)

#end

#macro fonctionY (xx)

tan (xx+pi/2)*cos (xx+pi/2)*asin (xx+pi/2)*sin (xx+pi/2)

#end

#declare oldcoord = array [500];
#declare newcoord = array [500];
#declare oldcoord [0] = <-1214,0,0>;

#macro parabol (zmin, zmax, nbPts, a, b, c, rsphere, rcyl, rx, ry, tx, tz, id)

#local zcur = zmin;
#local step = (zmax-zmin)/nbPts;
#local index = 0;

union {
        #while (zcur <= zmax)
                sphere {
                        <0,fonctionX (zcur),fonctionY (zcur)>,
                        rsphere
                        rotate rx*x
                        rotate ry*y
                        translate tx*x
                        translate tz*z
                }
                #if (id != 0)
                        #declare oldcoord [index] = newcoord [index];
                #end
                #declare newcoord [index] =
                vtransform (
                        <0,fonctionX (zcur),fonctionY (zcur)>,
                        transform {
                                rotate rx*x
                                rotate ry*y
                                translate tx*x
                                translate tz*z
                        }
                );
                #if (index != 0)
                        cylinder {
                                <0,fonctionX (zcur),fonctionY (zcur)>,
                                <0,fonctionX (zcur-step),fonctionY (zcur-step)>,
                                rcyl
                                rotate rx*x
                                rotate ry*y
                                translate tx*x
                                translate tz*z
                        }
                #end
                #local index = index+1;
                #local zcur = zcur+step;
        #end
        #if (id != 0)
                #local index = 0;
                #while (index <= nbPts)
                        cylinder {
                                oldcoord [index], newcoord [index], rcyl
                        }
                        #local index = index+1;
                #end
        #end
}

#end

#declare birdy =
union {
        #declare nbsteps = 100;
        #declare index = 0;
        #declare rs = 0.012;
        #declare gr = 2;
        #while (index <= nbsteps)
                object {
                        parabol (0, 2*pi, 100, 1, 0, 0, rs, rs,
2*index/nbsteps*360, 0.5*index/nbsteps*360, gr*cos (index/nbsteps*2*pi), gr*sin
(index/nbsteps*2*pi), index)
                }
                #declare index = index+1;
        #end
        material {T1}
}

object {birdy}
object {birdy scale 0.4 rotate y*140 translate <-5,-1.2,1.5>}
object {birdy scale 0.4 rotate y*280 translate <-7,-1.2,7>}

plane {
        y, -2
        //no_image
        material {T2}
}




Norbert


Post a reply to this message

From: Norbert Kern
Subject: Re: Black pixels again
Date: 3 Feb 2016 17:20:01
Message: <web.56b27c969966c5b4893f3760@news.povray.org>
William F Pokorny suggested to look at the scale of the normals and the
turbulence - indeed there is the problem.

The image shows a small part - rendered with very good radiosity settings (RAD =
32; -> line 10).

1. shows the unchanged averaged normal with black pixels

2. only the first normal (quilted) - no black pixels

3. the first two normals - few black pixels

4. first and third normals - black pixels

5. like 4. but without warp {turbulence 0.5} - no black pixels

6. like 5. with turbulence 0.5 - black pixels

7. like 1. but without warp {turbulence 0.5} - few black pixels

8. like 7. with lower quality radiosity (RAD = 4;)


So the culprit is turbulence in combination with small scaled normals.

This helps to prevent the problem, but isn't a solution.



Norbert


Post a reply to this message


Attachments:
Download 'black pixels2.jpg' (739 KB)

Preview of image 'black pixels2.jpg'
black pixels2.jpg


 

From: clipka
Subject: Re: Black pixels again
Date: 3 Feb 2016 20:43:16
Message: <56b2acb4$1@news.povray.org>
Am 02.02.2016 um 16:30 schrieb Norbert Kern:
> I got an annoying "black pixel" problem, which was mentioned here several times
> before.

I think you still haven't officially told me what version of POV-Ray
you're using ;)

FYI, I have managed to reproduce the issues with the official POV-Ray
3.7.0 release, but I've also found the problem to be much less prominent
in the current master branch version.


Post a reply to this message

From: Norbert Kern
Subject: Re: Black pixels again
Date: 4 Feb 2016 10:10:01
Message: <web.56b369919966c5b419f4e8b90@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Am 02.02.2016 um 16:30 schrieb Norbert Kern:
> > I got an annoying "black pixel" problem, which was mentioned here several times
> > before.
>
> I think you still haven't officially told me what version of POV-Ray
> you're using ;)
>
> FYI, I have managed to reproduce the issues with the official POV-Ray
> 3.7.0 release, but I've also found the problem to be much less prominent
> in the current master branch version.


Good to hear that from you!


Norbert


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.