POV-Ray : Newsgroups : povray.bugreports : Blobs: Error 1: Negative Values: Holes! / Error 2: Alpha Value Overwriting? Server Time
31 Oct 2024 06:14:48 EDT (-0400)
  Blobs: Error 1: Negative Values: Holes! / Error 2: Alpha Value Overwriting? (Message 1 to 10 of 48)  
Goto Latest 10 Messages Next 10 Messages >>>
From: Sven Littkowski
Subject: Blobs: Error 1: Negative Values: Holes! / Error 2: Alpha Value Overwriting?
Date: 22 Dec 2015 12:15:56
Message: <5679854c@news.povray.org>
The scene took the entire night up to now for rendering, but I discover
two problems and think, it could be caused by programming.

DEFINITE 1ST ERROR
I have a blob, and work with regular (positive) values, but on a few
locations also with negative values. And these negative values seem to
give a problem: around their edges are holes or black areas (holes or
not covered with texture).

POSSIBLE 2ND ERROR
I believe that there is a 2nd problem: while all other areas of the ship
hull follow the texture's FINISH declarations, it seems the blob does
not: the low-light areas should have been almost black, but are gray. My
FINISH declarations use an alpha value for textures of 0.0, but it seems
here that 0.0 is not accepted or it is overwritten.

Full Image:
http://www.SvenLittkowski.name/v/StuffSL - Seneca II - Distance - 001 -
Compressed.jpg

--- SCENE CODE -----------------------

#declare HullFinish = finish
{
 brilliance   1.5
 phong albedo 0.05
 metallic     1.00
 ambient      0.00
}



#declare MyMidshipBlob = blob
{
 #declare MyWidth     = 1.75;
 #declare MyThickness = 0.01;
 #declare MyZ         = 0.20;
 threshold 0.5
 cylinder { < -0.2, 0.0, 0.0 > < 0.2, 0.0, 0.0 > 2.0, 1 scale < 0.12,
1.00, 1.0 > translate < 0.0, 0.0, -0.50 > texture { TextureHullRing
scale 1/450.0 translate < 0.0, 0.0, (-250.0-0.0)/450.0 > } }
 cylinder { < -0.2, 0.0, 0.5 > < 0.2, 0.0, 0.5 > 0.75, 1 scale < 0.5,
1.00, 1.0 > translate < 0.0, 0.0, -0.50 > texture {
TextureHullWindowsSide scale 1/450.0 translate < 0.0, 0.0,
(-250.0-0.0)/450.0 > } }

 cylinder { < -0.2, 0.0, 0.0 > < 0.2, 0.0, 0.0 > 2.0, 1 scale < 0.10,
0.50, 0.5 > translate < 0.0, 0.0, -0.25 > texture {
TextureHullWindowsSide scale 1/450.0 translate < 0.0, 0.0,
(-250.0-0.0)/450.0 > } }

 cylinder { < -MyWidth,  MyThickness+0.150, MyZ+0.00 > < MyWidth,
MyThickness+0.150, MyZ+0.00 > 0.25, 1 texture { TextureHullFront
                            scale 1/450.0 translate < 0.0,
MyThickness+0.000, 0.0 > } }
 cylinder { < -MyWidth,  MyThickness+0.120, MyZ+0.00 > < MyWidth,
MyThickness+0.120, MyZ+0.00 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness+0.000, 0.0 > } }
 cylinder { < -MyWidth,  MyThickness+0.090, MyZ+0.00 > < MyWidth,
MyThickness+0.090, MyZ+0.00 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness+0.000, 0.0 > } }
 cylinder { < -MyWidth,  MyThickness+0.060, MyZ+0.00 > < MyWidth,
MyThickness+0.060, MyZ+0.00 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness+0.000, 0.0 > } }
 cylinder { < -MyWidth,  MyThickness+0.030, MyZ+0.00 > < MyWidth,
MyThickness+0.030, MyZ+0.00 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness+0.000, 0.0 > } }
 cylinder { < -MyWidth,  0.00,              MyZ+0.00 > < MyWidth,  0.00,
             MyZ+0.00 > 0.25, 1 texture { TextureHullWindowsFewSide
rotate < 0.0, 90.0, 0.0 > scale 1/450.0 translate < 0.0,  00.00,
     0.0 > } }
 cylinder { < -MyWidth, -MyThickness-0.030, MyZ+0.00 > < MyWidth,
-MyThickness-0.030, MyZ+0.00 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0, -MyThickness+0.000, 0.0 > } }
 cylinder { < -MyWidth, -MyThickness-0.060, MyZ+0.00 > < MyWidth,
-MyThickness-0.060, MyZ+0.00 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0, -MyThickness+0.000, 0.0 > } }
 cylinder { < -MyWidth, -MyThickness-0.090, MyZ+0.00 > < MyWidth,
-MyThickness-0.090, MyZ+0.00 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0, -MyThickness+0.000, 0.0 > } }
 cylinder { < -MyWidth, -MyThickness-0.120, MyZ+0.00 > < MyWidth,
-MyThickness-0.120, MyZ+0.00 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0, -MyThickness+0.000, 0.0 > } }
 cylinder { < -MyWidth, -MyThickness-0.150, MyZ+0.00 > < MyWidth,
-MyThickness-0.150, MyZ+0.00 > 0.25, 1 texture { TextureHullFront
                             scale 1/450.0 translate < 0.0,
-MyThickness-0.000, 0.0 > } }

 cylinder { < -MyWidth,  MyThickness+0.150,   MyZ+0.825 > < MyWidth,
MyThickness+0.150,   MyZ+0.075 > 0.25, 1 texture { TextureHullFront
rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.075
> } }
 cylinder { < -MyWidth, -MyThickness-0.150,   MyZ+0.825 > < MyWidth,
-MyThickness-0.150,   MyZ+0.075 > 0.25, 1 texture { TextureHullFront
rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.075
> } }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.15 > < MyWidth,
MyThickness  , MyZ+0.15 > 0.5, 1 texture { TextureHullFront rotate <
90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.15 > < MyWidth,
-MyThickness  , MyZ+0.15 > 0.5, 1 texture { TextureHullFront rotate <
90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.30 > < MyWidth,
MyThickness  , MyZ+0.30 > 0.5, 1 texture { TextureHullFront rotate <
90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.30 > < MyWidth,
-MyThickness  , MyZ+0.30 > 0.5, 1 texture { TextureHullFront rotate <
90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.45 > < MyWidth,
MyThickness  , MyZ+0.45 > 0.5, 1 texture { TextureHullFront rotate <
90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.45 > < MyWidth,
-MyThickness  , MyZ+0.45 > 0.5, 1 texture { TextureHullFront rotate <
90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.60 > < MyWidth,
MyThickness  , MyZ+0.60 > 0.5, 1 texture { TextureHullFront rotate <
90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.60 > < MyWidth,
-MyThickness  , MyZ+0.60 > 0.5, 1 texture { TextureHullFront rotate <
90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.75 > < MyWidth,
MyThickness  , MyZ+0.75 > 0.5, 1 texture { TextureHullFront rotate <
90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.75 > < MyWidth,
-MyThickness  , MyZ+0.75 > 0.5, 1 texture { TextureHullFront rotate <
90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }

 cylinder { < -MyWidth,  MyThickness+0.150,   MyZ+0.825 > < MyWidth,
MyThickness+0.150,   MyZ+0.825 > 0.25, 1 texture { TextureHullFront
rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 > } }
 cylinder { < -MyWidth, -MyThickness-0.150,   MyZ+0.825 > < MyWidth,
-MyThickness-0.150,   MyZ+0.825 > 0.25, 1 texture { TextureHullFront
rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, MyZ+0.00 >
} }

 cylinder { < -MyWidth,  MyThickness+0.150, MyZ+0.90 > < MyWidth,
MyThickness+0.150, MyZ+0.90 > 0.25, 1 texture { TextureHullFront
                            scale 1/450.0 translate < 0.0,
MyThickness+0.000,   0.0 > } }
 cylinder { < -MyWidth,  MyThickness+0.120, MyZ+0.90 > < MyWidth,
MyThickness+0.120, MyZ+0.90 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness+0.000,   0.0 > } }
 cylinder { < -MyWidth,  MyThickness+0.090, MyZ+0.90 > < MyWidth,
MyThickness+0.090, MyZ+0.90 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness+0.000,   0.0 > } }
 cylinder { < -MyWidth,  MyThickness+0.060, MyZ+0.90 > < MyWidth,
MyThickness+0.060, MyZ+0.90 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness+0.000,   0.0 > } }
 cylinder { < -MyWidth,  MyThickness+0.030, MyZ+0.90 > < MyWidth,
MyThickness+0.030, MyZ+0.90 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness+0.000,   0.0 > } }
 cylinder { < -MyWidth,  0.00,              MyZ+0.90 > < MyWidth,  0.00,
             MyZ+0.90 > 0.25, 1 texture { TextureHullWindowsFewSide
rotate < 0.0, 90.0, 0.0 > scale 1/450.0 translate < 0.0,  00.00,
       0.0 > } }
 cylinder { < -MyWidth, -MyThickness-0.030, MyZ+0.90 > < MyWidth,
-MyThickness-0.030, MyZ+0.90 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness-0.000,   0.0 > } }
 cylinder { < -MyWidth, -MyThickness-0.060, MyZ+0.90 > < MyWidth,
-MyThickness-0.060, MyZ+0.90 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness-0.000,   0.0 > } }
 cylinder { < -MyWidth, -MyThickness-0.090, MyZ+0.90 > < MyWidth,
-MyThickness-0.090, MyZ+0.90 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness-0.000,   0.0 > } }
 cylinder { < -MyWidth, -MyThickness-0.120, MyZ+0.90 > < MyWidth,
-MyThickness-0.120, MyZ+0.90 > 0.25, 1 texture {
TextureHullWindowsFewSide rotate < 0.0, 90.0, 0.0 > scale 1/450.0
translate < 0.0,  MyThickness-0.000,   0.0 > } }
 cylinder { < -MyWidth, -MyThickness-0.150, MyZ+0.90 > < MyWidth,
-MyThickness-0.150, MyZ+0.90 > 0.25, 1 texture { TextureHullFront
                             scale 1/450.0 translate < 0.0,
MyThickness-0.000,   0.0 > } }

 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.00, 1.00, 0.5 > translate <
 MyWidth-0.2, 0.0, MyZ-0.25 > texture { TextureHullWindowsFewSide scale
1/450.0 translate < 0.0, 0.0, (-250.0-0.0)/450.0 > } } // Hangar-Seiten
 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.00, 1.00, 0.5 > translate <
-MyWidth+0.2, 0.0, MyZ-0.25 > texture { TextureHullWindowsFewSide scale
1/450.0 translate < 0.0, 0.0, (-250.0-0.0)/450.0 > } }
 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.25, 1.75, 2.5 > translate <
 MyWidth-0.3, 0.0, MyZ+0.90 > texture { TextureHullWindowsFewSide scale
1/450.0 translate < 0.0, 0.0, (-250.0-0.0)/450.0 > } }
 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.25, 1.75, 2.5 > translate <
-MyWidth+0.3, 0.0, MyZ+0.90 > texture { TextureHullWindowsFewSide scale
1/450.0 translate < 0.0, 0.0, (-250.0-0.0)/450.0 > } }

 sphere { < 0.0, 0.0, 1.5 > 0.5, -4 texture { TextureHullWindowsFewSide
rotate < 0.0, 90.0, 0.0 > scale 1/450.0 translate < 0.0, 0.0, 0.0 > } }
// Heckeinschnitt
 sphere { <  0.35,  0.25, MyZ+0.08 > 0.275, -1.50 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { <  0.35, -0.25, MyZ+0.08 > 0.275, -1.50 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { < -0.35,  0.25, MyZ+0.08 > 0.275, -1.50 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { < -0.35, -0.25, MyZ+0.08 > 0.275, -1.50 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { <  0.85,  0.25, MyZ+0.06 > 0.225, -1.75 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { <  0.85, -0.25, MyZ+0.06 > 0.225, -1.75 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { < -0.85,  0.25, MyZ+0.06 > 0.225, -1.75 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { < -0.85, -0.25, MyZ+0.06 > 0.225, -1.75 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { <  1.10,  0.23, MyZ-0.04 > 0.175, -1.50 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { <  1.10, -0.23, MyZ-0.04 > 0.175, -1.50 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { < -1.10,  0.23, MyZ-0.04 > 0.175, -1.50 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }
 sphere { < -1.10, -0.23, MyZ-0.04 > 0.175, -1.50 texture {
TextureHullFront rotate < 90.0, 0.0, 0.0 > scale 1/450.0 translate <
0.0, 0.0, MyZ+0.00 > } }

 scale 450.0
 translate < 0.0, 0.0, 250.0 >
}


Post a reply to this message


Attachments:
Download 'untitled-3.jpg' (305 KB)

Preview of image 'untitled-3.jpg'
untitled-3.jpg


 

From: Sven Littkowski
Subject: Re: Blobs: Error 1: Negative Values: Holes! / Error 2: Alpha ValueOverwriting?
Date: 22 Dec 2015 12:20:36
Message: <56798664$1@news.povray.org>
DEFINITE 3RD ERROR
It seems also, that the BLOB object does not accept EMISSION (windows on
hull).


Post a reply to this message

From: Sven Littkowski
Subject: Re: Blobs: Error 1: Negative Values: Holes! / Error 2: Alpha ValueOverwriting?
Date: 22 Dec 2015 13:01:09
Message: <56798fe5@news.povray.org>
POSSIBLE 4TH ERROR
Something in the rendering of the spheres on top and below of the blob
(not a part of the blob object) seems to be wrong - please look at their
edges. Something looks boxish or squarish, if you understand what I mean.


Post a reply to this message

From: clipka
Subject: Re: Blobs: Error 1: Negative Values: Holes! / Error 2: Alpha ValueOverwriting?
Date: 22 Dec 2015 20:15:32
Message: <5679f5b4@news.povray.org>
Am 22.12.2015 um 18:15 schrieb Sven Littkowski:
> The scene took the entire night up to now for rendering, but I discover
> two problems and think, it could be caused by programming.
> 
> DEFINITE 1ST ERROR

Is it definite? Have you diagnosed the symptoms in enough depth to be
sure about this?

Blobs (and actually most features of POV-Ray) have been around for quite
a while now, and it is unlikely that any obvious bug in their
implementation has survived through all these years undetected.
Therefore, any error in the current version would probably have been
introduced with recent architectural changes; thus, an easy test whether
some unexpected behaviour is truly a bug would be to compare whatever
version you are using (I'll presume it's the latest semi-official dev
build) to the official 3.7.0 release and/or the last 3.6 release:

- If the stuff works as expected with official 3.7.0 but does not with
the latest dev build, it is fully justified to label it as a "definite
error".

- If the unexpected behaviour also occurs with official 3.7.0, it might
work as designed, and what you're seeing might just be known limitations
of that design; if the unexpected behaviour even occurs with 3.6, it's
almost guaranteed to be as designed.


> I have a blob, and work with regular (positive) values, but on a few
> locations also with negative values. And these negative values seem to
> give a problem: around their edges are holes or black areas (holes or
> not covered with texture).

Those artifacts might actually be the result of inherent limitations in
the numerical precision of the algorithm used. Try using "sturm on" in
the blob to choose a more precise (but slower) algorithm.

> POSSIBLE 2ND ERROR
> I believe that there is a 2nd problem: while all other areas of the ship
> hull follow the texture's FINISH declarations, it seems the blob does
> not: the low-light areas should have been almost black, but are gray. My
> FINISH declarations use an alpha value for textures of 0.0, but it seems
> here that 0.0 is not accepted or it is overwritten.

Your finish declarations certainly do not use an "alpha value", as
there's no such thing in finish. Either you mean pigment (with an alpha
value specified in conjunction with an image_map, or via the colour's
transmit or filter component), or you mean something else. Ambient perhaps?

For any further analysis you'd really have to provide a self-contained
scene, something I can just throw at POV-Ray and recreate exactly what
you see, both on the input and output side. As long as you post only
snippets, we can't rule out any number of stuff you did /not/ post: Does
the scene have an active radiosity block you didn't post? Do the
textures that you didn't post possibly have a finish with non-zero
"ambient" or "emission", either explicitly or by inheriting from some
default block you didn't post? Could one of all the light sources you
didn't post account for the brightening?

Also, judging from the cut-off planet you posted recently, I'd guess
that the background stars are not part of the original rendered image,
and were added in a post-processing step; could the brightening have
been introduced in that context?


Post a reply to this message

From: clipka
Subject: Re: Blobs: Error 1: Negative Values: Holes! / Error 2: AlphaValueOverwriting?
Date: 22 Dec 2015 20:25:52
Message: <5679f820$1@news.povray.org>
Am 22.12.2015 um 18:20 schrieb Sven Littkowski:
> DEFINITE 3RD ERROR
> It seems also,

Uh - let me stop you right there again: Is this a /definite/ error, or
does it /seem/ that something isn't working?


that the BLOB object does not accept EMISSION (windows on
> hull).

Knowing the internal architecture of POV-Ray, I find it highly
improbable that "emission" (presuming you're talking about the finish
property) fails to work on just one particular geometric primitive.

Again, without a complete scene to go by, there's no way I can provide
any deeper analysis than that, so for now I tend to presume that either
your observation is inaccurate or you're doing something wrong.


Post a reply to this message

From: clipka
Subject: Re: Blobs: Error 1: Negative Values: Holes! / Error 2: AlphaValueOverwriting?
Date: 22 Dec 2015 20:36:35
Message: <5679faa3$1@news.povray.org>
Am 22.12.2015 um 19:00 schrieb Sven Littkowski:
> POSSIBLE 4TH ERROR
> Something in the rendering of the spheres on top and below of the blob
> (not a part of the blob object) seems to be wrong - please look at their
> edges. Something looks boxish or squarish, if you understand what I mean.

No, I haven't the slightest clue.

There are various effects that might cause spheres to look non-spherical
though, and you might be falling victim to one of them.


As a side note, I only have the posted image to go by; the link you
posted doesn't seem to lead me anywhere except to a 404 error message.
Might be related to the use of blank characters in the filename.


Post a reply to this message

From: Sven Littkowski
Subject: Re: Blobs: Error 1: Negative Values: Holes! / Error 2:AlphaValueOverwriting?
Date: 23 Dec 2015 02:00:33
Message: <567a4691@news.povray.org>
Before I am making changes and additions to the scene files, I use
always a test file where I am developing each feature. I am giving you
now the code of that test file, it reproduces these non-textured or
black edges though I am using a plain red pigment instead of the real
textures (with large texture image files).

If you afterwards want, I will also give you my texture file and the
texture images (though they are very large). But try first with this
test file as it reproduces the error.

Meanwhile, I will try the STURM feature...

PS: not the shape of the round cupolas become boxish, but their textures
on the edges. Even in this relatively plain test file code, if you look
into their shadow areas, you will see this again. I used a resolution of
8,000x4,500, AA 0.3. I was wrong with typing ALPHA, I meant to type
AMBIENT and EMISSION.

This test code still shows the following errors (I just tested):
- non-textured or hollow ring-shape border errors (negative values)
- boxish texture problems in cupola shadow areas on cupolas
- no dark shadow on lower blob areas (the gray hull has them)

For showing of the hull windows problem, I will develop a second file.

-------------------------------------

#version 3.7;

#declare MyRadiosity = on;

global_settings
{
 #if(MyRadiosity)
  radiosity
  {
   media on
   pretrace_start 0.08
   pretrace_end   0.015
   count 400
   error_bound 0.75
   recursion_limit 1
  }
 #end
 subsurface        {}
 adc_bailout       0.0039
 ambient_light     rgb < 1.000, 1.000, 1.000 >
 assumed_gamma     1.000
 irid_wavelength   rgb < 0.250, 0.180, 0.140 >
 max_trace_level   5
 number_of_waves   10
 noise_generator   3
 charset           ascii
}

#declare LightDiameter =     10000.0;
#declare LightDistanceX =  -500000.0; // X = Left - Right
#declare LightDistanceY =  1000000.0; // Y = Up - Down
#declare LightDistanceZ =  -100000.0; // Z = Front - Back
#declare LightRotate =          36.0;
#declare MyLight =             0.125;

camera
{
 location < -200.0, 200.0, -200.0 >
 location < 0.0, 0.0, 50.0 >
 location < -5.0, 5.0, -5.0 >
 location < -850.0, 850.0, -850.0 >
 look_at < 0.0, 0.0, -50.0 >
 look_at < 0.0, 0.0, 0.0 >
 right 1.77*x
}

#declare MyLight = light_source { < LightDiameter, 0.0, 0.0 >  rgb <
0.98039, 0.94902, 0.89804 > * MyLight }

#declare MySun = union
{
#declare Count=0;
#while (Count < 360)
 object { MyLight  rotate < 0.0, Count, 0.0 > }
 #declare Count=Count+LightRotate;
#end
}

object { MySun translate < LightDistanceX, LightDistanceY,
LightDistanceZ > }

// --- TEXTURES
------------------------------------------------------------------------------------------------------








































 #declare HullFinish = finish

{
 brilliance   0.25
 phong albedo 0.05
 metallic     1.00
 ambient      0.00
 emission     0.00
}

#declare AntennaRed = texture
{
 pigment   //  Brick Red
 {
  rgb < 0.74902, 0.34118, 0.22353 > /4
 }
 finish { HullFinish }
 translate -0.5*(x+y)
 rotate < 0.0, 90.0, 0.0 >
 rotate < 90.0, 0.0, 0.0 >
 scale 2500.0
 translate < 0.0, 0.0, 100.0 >
}

#declare HullGentleRed = texture
{
 pigment   //  Rose Red
 {
  rgb < 0.57, 0.31, 0.30 >
 }
 finish { HullFinish }
 translate -0.5*(x+y)
 rotate < 0.0, 90.0, 0.0 >
 rotate < 90.0, 0.0, 0.0 >
 scale 2500.0
 translate < 0.0, 0.0, 100.0 >
}

#declare HullGray25 = texture
{
 pigment   //  Gray 50%
 {
  rgb < 0.25, 0.25, 0.25 >
 }
 finish { HullFinish }
 translate -0.5*(x+y)
 rotate < 0.0, 90.0, 0.0 >
 rotate < 90.0, 0.0, 0.0 >
 scale 2500.0
 translate < 0.0, 0.0, 100.0 >
}

#declare HullGray50 = texture
{
 pigment   //  Gray 50%
 {
  rgb < 0.50, 0.50, 0.50 >
 }
 finish { HullFinish }
 translate -0.5*(x+y)
 rotate < 0.0, 90.0, 0.0 >
 rotate < 90.0, 0.0, 0.0 >
 scale 2500.0
 translate < 0.0, 0.0, 100.0 >
}

#declare HullGray75 = texture
{
 pigment   //  Gray 50%
 {
  rgb < 0.75, 0.75, 0.75 >
 }
 finish { HullFinish }
 translate -0.5*(x+y)
 rotate < 0.0, 90.0, 0.0 >
 rotate < 90.0, 0.0, 0.0 >
 scale 2500.0
 translate < 0.0, 0.0, 100.0 >
}

#declare HullGray95 = texture
{
 pigment   //  Gray 50%
 {
  rgb < 0.95, 0.95, 0.95 >
 }
 finish { HullFinish }
 translate -0.5*(x+y)
 rotate < 0.0, 90.0, 0.0 >
 rotate < 90.0, 0.0, 0.0 >
 scale 2500.0
 translate < 0.0, 0.0, 100.0 >
}

#declare LightsRed1 = texture // Unten
{
 pigment { rgb < 0.74902, 0.34118, 0.22353 > /4 }
 finish
 {
  ambient        4.0
  brilliance     0.25
  phong albedo   1.15
  phong_size     1.0
  metallic       1.00
  diffuse albedo 0.5
  emission rgb < 0.74902, 0.34118, 0.22353 > *3.0
 }
}

#declare LightsRed2 = texture // Oben
{
 pigment { rgb < 0.74902, 0.34118, 0.22353 >  }
 finish
 {
//  ambient        4.0
  brilliance     0.25
  phong albedo   1.15
  phong_size     1.0
  metallic       1.00
  diffuse albedo 0.5
  emission rgb < 0.74902, 0.2600, 0.22353 > *4.0
 }
}

#declare LightsRed = texture
{
 pigment { rgb < 0.74902, 0.34118, 0.22353 > /4 }
 finish
 {
  brilliance     0.25
  phong albedo   1.15
  phong_size     1.0
  metallic       1.00
  diffuse albedo 0.5
  emission rgb < 0.74902, 0.2600, 0.22353 > *4.0
 }
}

#declare MyAntennaLights = texture { LightsRed }

// --- ITEMS
------------------------------------------------------------------------------------------------------

#declare TextureHullWindowsSide        = texture { AntennaRed }
#declare TextureHullRing               = texture { AntennaRed }
#declare TextureInteriorSide           = texture { AntennaRed }
#declare TextureDeepSide               = texture { AntennaRed }
#declare TextureHullCupolaPaintingSide = texture { AntennaRed }
#declare TextureDeepWindowsSide        = texture { AntennaRed }
#declare TextureHullSide               = texture { AntennaRed }
#declare TextureHullSphere             = texture { AntennaRed }
#declare TextureHullTop                = texture { AntennaRed }
#declare TextureInteriorWindowsSide    = texture { AntennaRed }
#declare TextureHullFront              = texture { AntennaRed }
#declare TextureInteriorSphere         = texture { AntennaRed }

#macro
HullCommandFrontCutout(MyAmount,MySize,MyWidth,MyBegin,MyHeightRange,MySeed,MyTexture)
union
{
 #declare MyY=seed(1*MySeed);
 #declare MyZ=seed(2*MySeed);
 #declare MyHeight=seed(3*MySeed);
 #declare MyCount=1;
 #while (MyCount<=MyAmount)
  #declare MyBoxY=rand(MyY);
  #declare MyBoxZ=rand(MyZ);
  #declare MyBoxHeight=rand(MyHeight);
  box
  {
   < -MyWidth, (-MySize*MyBoxY), -1000.0 > < MyWidth, (MySize*MyBoxY),
((-MyBegin)-(50.0*MyBoxZ)) >
   translate < 0.0, -(MyHeightRange*MyBoxHeight), 0.0 >
  }
  box
  {
   < -MyWidth, (-MySize*MyBoxY), -1000.0 > < MyWidth, (MySize*MyBoxY),
((-MyBegin)-(50.0*MyBoxZ)) >
   translate < 0.0, (MyHeightRange*MyBoxHeight), 0.0 >
  }
  #declare MyCount=MyCount+1;
 #end
 texture { MyTexture }
}
#end

#declare HullCommandWhole = union
{
 cylinder // schmaler Außenring
 {
  < -12.5, 0.0, 0.0 > < 12.5, 0.20, 0.0 > 500.0
  texture { TextureHullRing }
 }
 cylinder // dicker Innenzylinder
 {
  < -62.5, 0.0, 0.0 > < 62.5, 0.0, 0.0 > 450.0
  texture { TextureHullWindowsSide }
 }
 difference
 {
  sphere // Verdickung
  {
   < 0.0, 0.0, 0.0 > 475.0
   scale < 0.215, 1.0, 1.0 >
   texture { TextureHullWindowsSide }
  }
  difference
  {
   sphere // Verdickung-Aushöhlung
   {
    < 0.0, 0.0, 0.0 > 475.0
    scale < 0.215, 1.0, 1.0 >
    scale 0.975
   }
   cylinder // nicht aushöhlen um WH-Generator herum
   {
    < -100.0, 0.0, -250.0 > < 100.0, 0.0, -250.0 > 115.0
   }
   texture { TextureInteriorSide }
  }
  HullCommandFrontCutout(55,25.0,99.999,265.0,300.0,15,TextureDeepSide)
// Einschnitte vorne
  cylinder
  {
   < -100.0, 0.0, -250.0 > < 100.0, 0.0, -250.0 > 90.0
   texture { TextureDeepSide }
  }
  cylinder
  {
   < -62.5, 0.0, 0.0 > < 62.5, 0.0, 0.0 > 475.0
   texture { TextureInteriorSide }
  }
 }
 torus // von Vorne: links
 {
  450.0, 50.0
  rotate < 0.0, 0.0, 90.0 >
  texture { TextureHullRing }
  translate < -12.5, 0.0, 0.0 >
 }
 torus // von Vorne: rechts
 {
  450.0, 50.0
  rotate < 0.0, 0.0, 90.0 >
  texture { TextureHullRing }
  translate < 12.5, 0.0, 0.0 >
 }
 sphere // ganz vorne
 {
  < 0.0, 0.0, 0.0 > 60.0
  scale < 0.3, 1.0, 1.0 >
  translate < -60.0, 250.0, -230.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // ganz vorne
 {
  < 0.0, 0.0, 0.0 > 60.0
  scale < 0.3, 1.0, 1.0 >
  translate < 60.0, 250.0, -230.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // ganz vorne
 {
  < 0.0, 0.0, 0.0 > 60.0
  scale < 0.3, 1.0, 1.0 >
  translate < -60.0, -250.0, -230.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // ganz vorne
 {
  < 0.0, 0.0, 0.0 > 60.0
  scale < 0.3, 1.0, 1.0 >
  translate < 60.0, -250.0, -230.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #2
 {
  < 0.0, 0.0, 0.0 > 40.0
  scale < 0.25, 1.0, 1.0 >
  translate < -60.0, 310.0, -160.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #2
 {
  < 0.0, 0.0, 0.0 > 40.0
  scale < 0.25, 1.0, 1.0 >
  translate < 60.0, 310.0, -160.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #2
 {
  < 0.0, 0.0, 0.0 > 40.0
  scale < 0.25, 1.0, 1.0 >
  translate < -60.0, -310.0, -160.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #2
 {
  < 0.0, 0.0, 0.0 > 40.0
  scale < 0.25, 1.0, 1.0 >
  translate < 60.0, -310.0, -160.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #3 Rounder
 {
  < 0.0, 0.0, 0.0 > 50.0
  scale < 0.6, 1.0, 1.0 >
  translate < -50.0, 380.0, -70.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #3 Rounder
 {
  < 0.0, 0.0, 0.0 > 50.0
  scale < 0.6, 1.0, 1.0 >
  translate < 50.0, 380.0, -70.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #3 Rounder
 {
  < 0.0, 0.0, 0.0 > 50.0
  scale < 0.6, 1.0, 1.0 >
  translate < -50.0, -380.0, -70.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #3 Rounder
 {
  < 0.0, 0.0, 0.0 > 50.0
  scale < 0.6, 1.0, 1.0 >
  translate < 50.0, -380.0, -70.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #4 Deeper Rounder
 {
  < 0.0, 0.0, 0.0 > 70.0
  scale < 0.4, 1.0, 1.0 >
  translate < -70.0, 280.0, 120.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #4 Deeper Rounder
 {
  < 0.0, 0.0, 0.0 > 70.0
  scale < 0.4, 1.0, 1.0 >
  translate < 70.0, 280.0, 120.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #4 Deeper Rounder
 {
  < 0.0, 0.0, 0.0 > 70.0
  scale < 0.4, 1.0, 1.0 >
  translate < -70.0, -280.0, 120.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #4 Deeper Rounder
 {
  < 0.0, 0.0, 0.0 > 70.0
  scale < 0.4, 1.0, 1.0 >
  translate < 70.0, -280.0, 120.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #5 Inner Rounder
 {
  < 0.0, 0.0, 0.0 > 80.0
  scale < 0.3, 1.0, 1.0 >
  translate < -90.0, 180.0, 30.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #5 Inner Rounder
 {
  < 0.0, 0.0, 0.0 > 80.0
  scale < 0.3, 1.0, 1.0 >
  translate < 90.0, 180.0, 30.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #5 Inner Rounder
 {
  < 0.0, 0.0, 0.0 > 80.0
  scale < 0.3, 1.0, 1.0 >
  translate < -90.0, -180.0, 30.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #5 Inner Rounder
 {
  < 0.0, 0.0, 0.0 > 80.0
  scale < 0.3, 1.0, 1.0 >
  translate < 90.0, -180.0, 30.0 >
  texture { TextureHullCupolaPaintingSide translate < 0.0, 0.0, -100.0 > }
 }
 sphere // #6 Side Top
 {
  < 0.0, 0.0, 0.0 > 90.0
  scale < 1.0, 1.0, 1.0 >
  translate < -160.0, 110.0, 350.0 >
  texture { TextureHullSide }
 }
 sphere // #6 Side Top
 {
  < 0.0, 0.0, 0.0 > 90.0
  scale < 1.0, 1.0, 1.0 >
  translate < 160.0, 110.0, 350.0 >
  texture { TextureHullSide }
 }
 sphere // #6 Side Top
 {
  < 0.0, 0.0, 0.0 > 90.0
  scale < 1.0, 1.0, 1.0 >
  translate < -160.0, -110.0, 350.0 >
  texture { TextureHullSide }
 }
 sphere // #6 Side Top
 {
  < 0.0, 0.0, 0.0 > 90.0
  scale < 1.0, 1.0, 1.0 >
  translate < 160.0, -110.0, 350.0 >
  texture { TextureHullSide }
 }
 sphere // #7 Side Hangar Medium Top
 {
  < 0.0, 0.0, 0.0 > 70.0
  scale < 1.0, 1.0, 1.0 >
  translate < -390.0, 120.0, 360.0 >
  texture { TextureHullSide }
 }
 sphere // #7 Side Hangar Medium Top
 {
  < 0.0, 0.0, 0.0 > 70.0
  scale < 1.0, 1.0, 1.0 >
  translate < 390.0, 120.0, 360.0 >
  texture { TextureHullSide }
 }
 sphere // #7 Side Hangar Medium Top
 {
  < 0.0, 0.0, 0.0 > 70.0
  scale < 1.0, 1.0, 1.0 >
  translate < -390.0, -120.0, 360.0 >
  texture { TextureHullSide }
 }
 sphere // #7 Side Hangar Medium Top
 {
  < 0.0, 0.0, 0.0 > 70.0
  scale < 1.0, 1.0, 1.0 >
  translate < 390.0, -120.0, 360.0 >
  texture { TextureHullSide }
 }
 sphere // #7 Side Hangar Small Top
 {
  < 0.0, 0.0, 0.0 > 40.0
  scale < 1.0, 1.0, 1.0 >
  translate < -500.0, 130.0, 310.0 >
  texture { TextureHullSide }
 }
 sphere // #7 Side Hangar Small Top
 {
  < 0.0, 0.0, 0.0 > 40.0
  scale < 1.0, 1.0, 1.0 >
  translate < 500.0, 130.0, 310.0 >
  texture { TextureHullSide }
 }
 sphere // #7 Side Hangar Small Top
 {
  < 0.0, 0.0, 0.0 > 40.0
  scale < 1.0, 1.0, 1.0 >
  translate < -500.0, -130.0, 310.0 >
  texture { TextureHullSide }
 }
 sphere // #7 Side Hangar Small Top
 {
  < 0.0, 0.0, 0.0 > 40.0
  scale < 1.0, 1.0, 1.0 >
  translate < 500.0, -130.0, 310.0 >
  texture { TextureHullSide }
 }
 box // dunklere Front
 {
  < -62.501, -200.0, -300.0 > < -62.5, 200.0, -100.0 >
  texture { TextureDeepWindowsSide }
 }
 box // dunklere Front
 {
  < 62.5, -200.0, -300.0 > < 62.015, 200.0, -100.0 >
  texture { TextureDeepWindowsSide }
 }
 cylinder // Wormhole Generator Rounding
 {
  < 0.0, -110.0, 0.0 > < 0.0, 110.0, 0.0 > 62.5
  scale < 1.0, 1.0, 2.0 >
  translate < 0.0, 0.0, -140.0 >
  texture { TextureHullWindowsSide }
 }
}

#declare HullCommandShape = union
{
 cylinder // schmaler Außenring
 {
  < -12.5, 0.0, 0.0 > < 12.5, 0.20, 0.0 > 500.0
 }
 cylinder // dicker Innenzylinder
 {
  < -62.5, 0.0, 0.0 > < 62.5, 0.0, 0.0 > 450.0
 }
 torus // von Vorne: links
 {
  450.0, 50.0
  rotate < 0.0, 0.0, 90.0 >
  translate < -12.5, 0.0, 0.0 >
 }
 torus // von Vorne: rechts
 {
  450.0, 50.0
  rotate < 0.0, 0.0, 90.0 >
  translate < 12.5, 0.0, 0.0 >
 }
}

#declare HullCommandOuterShell = difference
{
 object { HullCommandWhole texture { TextureHullSide } }
 object { HullCommandShape scale < 0.975, 0.9975, 0.99 > texture {
TextureInteriorSide } } // den Rumpf hohl machen ...
TextureInteriorWindowsSide
 box { < -100.0, -300.0, -600.0> < 100.0, 300.0, -300.0 > texture {
TextureHullFront } } // frontale hohe Öffnung für Antennen
 box { < -37.5, -600.0, -600.0> < 37.5, 600.0, -275.0 > texture {
TextureHullFront } }   // schmalere frontale hohe Öffnung für Antennen
 cylinder
 {
  < -100.0, 300.0, -500.0 > < 100.0, 300.0, -500.0 > 200.0  // obere und
untere Abrundungen für frontale hohe Öffnung für Antennen
  texture { TextureHullFront }
 }
 cylinder
 {
  < -100.0, -300.0, -500.0 > < 100.0, -300.0, -500.0 > 200.0  // obere
und untere Abrundungen für frontale hohe Öffnung für Antennen
  texture { TextureHullFront }
 }
 box // keine Rumpfschnitte vorne wo Verdickung
 {
  < -100.0, -200.0, -500.0 > < 100.0, 200.0, -300.0 >  // Wormhole
Generator Gegend
  texture { TextureHullFront }
 }
}

#declare HullCommandInnerShell = difference // innere Doppelwand
{
 object { HullCommandShape scale 0.90 texture { TextureInteriorSide } }
 object { HullCommandShape scale < 0.880, 0.898, 0.898 > texture {
TextureInteriorSide } }
 box { < -100.0, -600.0, -600.0> < 100.0, 600.0, -280.0 > texture {
TextureHullFront } } // Front-Einschnitt
 scale < 1.0, 1.075, 1.05 >
}


#declare MyCommandBlob = difference  // Querrumpf
{
 blob
 {
  threshold 0.75
  cylinder { <  -125.0,    0.0,   50.0 > <  125.0,    0.0,   50.0 >
2500.0, 0.7 texture { TextureHullWindowsSide } }
  cylinder { <  -125.0,    0.0,  100.0 > <  125.0,    0.0,  100.0 >
600.0, 0.2 texture { TextureHullTop } } // Querrumpf
  scale < 0.25, 1.0, 1.0 >
 }
 difference
 {
  cylinder { < -150.0, 0.0,  200.0 > <  150.0, 0.0,  200.0 > 370.0
texture { TextureHullWindowsSide } }
  cylinder { < -150.1, 0.0, -250.0 > <  150.1, 0.0, -250.0 > 110.0
texture { TextureHullWindowsSide } }
 }
}

#declare MyMidshipBlob = blob
{
 #declare MyWidth     = 1.75;
 #declare MyThickness = 0.01;
 #declare MyZ         = 0.20;
 threshold 0.5
 cylinder { < -0.2, 0.0, 0.0 > < 0.2, 0.0, 0.0 > 2.0, 1 scale < 0.12,
1.00, 1.0 > translate < 0.0, 0.0, -0.50 > }
 cylinder { < -0.2, 0.0, 0.5 > < 0.2, 0.0, 0.5 > 0.75, 1 scale < 0.5,
1.00, 1.0 > translate < 0.0, 0.0, -0.50 > }

 cylinder { < -0.2, 0.0, 0.0 > < 0.2, 0.0, 0.0 > 2.0, 1 scale < 0.10,
0.50, 0.5 > translate < 0.0, 0.0, -0.25 > }

 cylinder { < -MyWidth,  MyThickness+0.150,   MyZ+0.00 > < MyWidth,
MyThickness+0.150,   MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.00 > < MyWidth,
MyThickness/2+0.120, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.00 > < MyWidth,
MyThickness/2+0.090, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.00 > < MyWidth,
MyThickness/2+0.060, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.00 > < MyWidth,
MyThickness/2+0.030, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.00 > < MyWidth,
0.00,                MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.00 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.00 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.00 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.00 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness-0.150,   MyZ+0.00 > < MyWidth,
-MyThickness-0.150,   MyZ+0.00 > 0.25, 1 }

 cylinder { < -MyWidth,  MyThickness+0.150,   MyZ+0.825 > < MyWidth,
MyThickness+0.150,   MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness-0.150,   MyZ+0.825 > < MyWidth,
-MyThickness-0.150,   MyZ+0.075 > 0.25, 1 }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.15 > < MyWidth,
MyThickness  , MyZ+0.15 > 0.5, 1 }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.15 > < MyWidth,
-MyThickness  , MyZ+0.15 > 0.5, 1 }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.30 > < MyWidth,
MyThickness  , MyZ+0.30 > 0.5, 1 }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.30 > < MyWidth,
-MyThickness  , MyZ+0.30 > 0.5, 1 }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.45 > < MyWidth,
MyThickness  , MyZ+0.45 > 0.5, 1 }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.45 > < MyWidth,
-MyThickness  , MyZ+0.45 > 0.5, 1 }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.60 > < MyWidth,
MyThickness  , MyZ+0.60 > 0.5, 1 }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.60 > < MyWidth,
-MyThickness  , MyZ+0.60 > 0.5, 1 }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.75 > < MyWidth,
MyThickness  , MyZ+0.75 > 0.5, 1 }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.75 > < MyWidth,
-MyThickness  , MyZ+0.75 > 0.5, 1 }

 cylinder { < -MyWidth,  MyThickness+0.150,   MyZ+0.825 > < MyWidth,
MyThickness+0.150,   MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness-0.150,   MyZ+0.825 > < MyWidth,
-MyThickness-0.150,   MyZ+0.825 > 0.25, 1 }

 cylinder { < -MyWidth,  MyThickness+0.150,   MyZ+0.90 > < MyWidth,
MyThickness+0.150,   MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.90 > < MyWidth,
MyThickness/2+0.120, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.90 > < MyWidth,
MyThickness/2+0.090, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.90 > < MyWidth,
MyThickness/2+0.060, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.90 > < MyWidth,
MyThickness/2+0.030, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.90 > < MyWidth,
0.00,                MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.90 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.90 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.90 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.90 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness-0.150,   MyZ+0.90 > < MyWidth,
-MyThickness-0.150,   MyZ+0.90 > 0.25, 1 }

 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.00, 1.00, 0.5 > translate <
 MyWidth-0.2, 0.0, MyZ-0.25 > }
 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.00, 1.00, 0.5 > translate <
-MyWidth+0.2, 0.0, MyZ-0.25 > }
 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.25, 1.75, 2.5 > translate <
 MyWidth-0.3, 0.0, MyZ+0.9 > }
 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.25, 1.75, 2.5 > translate <
-MyWidth+0.3, 0.0, MyZ+0.9 > }

 sphere { < 0.0, 0.0, 1.5 > 0.5, -4 } // Heckeinschnitt
 sphere { <  0.35,  0.25, MyZ+0.08 > 0.275, -1.5 }
 sphere { <  0.35, -0.25, MyZ+0.08 > 0.275, -1.5 }
 sphere { < -0.35,  0.25, MyZ+0.08 > 0.275, -1.5 }
 sphere { < -0.35, -0.25, MyZ+0.08 > 0.275, -1.5 }
 sphere { <  0.85,  0.25, MyZ+0.06 > 0.225, -1.75 }
 sphere { <  0.85, -0.25, MyZ+0.06 > 0.225, -1.75 }
 sphere { < -0.85,  0.25, MyZ+0.06 > 0.225, -1.75 }
 sphere { < -0.85, -0.25, MyZ+0.06 > 0.225, -1.75 }
 sphere { <  1.10,  0.23, MyZ-0.04 > 0.175, -1.50 }
 sphere { <  1.10, -0.23, MyZ-0.04 > 0.175, -1.50 }
 sphere { < -1.10,  0.23, MyZ-0.04 > 0.175, -1.50 }
 sphere { < -1.10, -0.23, MyZ-0.04 > 0.175, -1.50 }

 texture { AntennaRed }
 scale 450.0
 translate < 0.0, 0.0, 250.0 >
}

//cylinder { < -62.5, 0.0, 0.0 > < 62.5, 0.0, 0.0 > 500.0 pigment { rgbf
< 1.0, 0.0, 0.0, 0.5 > } }



#declare MidshipHull = difference
{
 union
 {
  sphere { < 0.0, 0.0,  0.0 > 250.0 texture { TextureHullSphere }
translate < -500, 0.0, 550.0 > }
  sphere { < 0.0, 0.0,  0.0 > 250.0 texture { TextureHullSphere }
translate <  500, 0.0, 550.0 > }
//  sphere { <  000.0, 0.0,  900.0 > 400.0 scale < 1.0, 0.60, 1.0 >
texture { TextureHullTop } } // Mining Port
  object { MyCommandBlob } // Kommandorumpf
  object { MyMidshipBlob } // Mittschiffsrumpf
 }
 object { HullCommandShape scale 0.99 texture {
TextureInteriorWindowsSide } }
 box { < -100.0, -600.0, -600.0> < 100.0, 600.0, -300.0 > texture {
TextureHullFront } }
 box { < -37.5, -600.0, -600.0> < 37.5, 600.0, -275.0 > texture {
TextureHullFront } }
 cylinder { < -1050.0, 0.0, 3000.0 > < -1050.0, 0.0, -1000.0 >  500.0
texture { TextureHullSide } } // Hangar
 cylinder { <  1050.0, 0.0, 3000.0 > <  1050.0, 0.0, -1000.0 >  500.0
texture { TextureHullSide } } // Hangar
 sphere { < 0.0, 0.0,  0.0 > 240.0 texture { TextureInteriorSphere }
translate < -500, 0.0, 550.0 > } // Side Cupola
 sphere { < 0.0, 0.0,  0.0 > 240.0 texture { TextureInteriorSphere }
translate <  500, 0.0, 550.0 > } // Side Cupola
}







object { HullCommandOuterShell }
object { HullCommandInnerShell }
object { MidshipHull }


Post a reply to this message

From: Sven Littkowski
Subject: Re: Blobs: Error 1: Negative Values: Holes! / Error2:AlphaValueOverwriting?
Date: 23 Dec 2015 02:32:35
Message: <567a4e13$1@news.povray.org>
STURM does not solve the problem. Trying now to find some other
solutions, but it appears to me really as programming error, at this moment.


Post a reply to this message

From: Sven Littkowski
Subject: Re: Blobs: Error 1: Negative Values: Holes! / Error2:AlphaValueOverwriting?
Date: 23 Dec 2015 03:03:58
Message: <567a556e$1@news.povray.org>
I tried to fill the blob with many additional cylinders, but that didn't
help, either. The blob had an original design of many cylinders arranged
on four sides, like a square, and no cylinder was inside. Now it is.
Still, those black edges remain.

------------------------------

#declare MyMidshipBlob = blob
{
 #declare MyWidth     = 1.75;
 #declare MyThickness = 0.01;
 #declare MyZ         = 0.20;
 threshold 0.5
 cylinder { < -0.2, 0.0, 0.0 > < 0.2, 0.0, 0.0 > 2.0, 1 scale < 0.12,
1.00, 1.0 > translate < 0.0, 0.0, -0.50 > }
 cylinder { < -0.2, 0.0, 0.5 > < 0.2, 0.0, 0.5 > 0.75, 1 scale < 0.5,
1.00, 1.0 > translate < 0.0, 0.0, -0.50 > }

 cylinder { < -0.2, 0.0, 0.0 > < 0.2, 0.0, 0.0 > 2.0, 1 scale < 0.10,
0.50, 0.5 > translate < 0.0, 0.0, -0.25 > }

 cylinder { < -MyWidth,  MyThickness+0.150,   MyZ+0.00 > < MyWidth,
MyThickness+0.150,   MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.00 > < MyWidth,
MyThickness/2+0.120, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.00 > < MyWidth,
MyThickness/2+0.090, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.00 > < MyWidth,
MyThickness/2+0.060, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.00 > < MyWidth,
MyThickness/2+0.030, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.00 > < MyWidth,
0.00,                MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.00 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.00 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.00 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.00 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.00 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness-0.150,   MyZ+0.00 > < MyWidth,
-MyThickness-0.150,   MyZ+0.00 > 0.25, 1 }

 cylinder { < -MyWidth,  MyThickness+0.150,   MyZ+0.075 > < MyWidth,
MyThickness+0.150,   MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.075 > < MyWidth,
MyThickness/2+0.120, MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.075 > < MyWidth,
MyThickness/2+0.090, MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.075 > < MyWidth,
MyThickness/2+0.060, MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.075 > < MyWidth,
MyThickness/2+0.030, MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.075 > < MyWidth,
0.00,                MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.075 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.075 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.075 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.075 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.075 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness-0.150,   MyZ+0.075 > < MyWidth,
-MyThickness-0.150,   MyZ+0.075 > 0.25, 1 }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.15 > < MyWidth,
MyThickness  , MyZ+0.15 > 0.5, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.15 > < MyWidth,
MyThickness/2+0.120, MyZ+0.15 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.15 > < MyWidth,
MyThickness/2+0.090, MyZ+0.15 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.15 > < MyWidth,
MyThickness/2+0.060, MyZ+0.15 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.15 > < MyWidth,
MyThickness/2+0.030, MyZ+0.15 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.15 > < MyWidth,
0.00,                MyZ+0.15 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.15 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.15 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.15 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.15 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.15 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.15 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.15 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.15 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.15 > < MyWidth,
-MyThickness  , MyZ+0.15 > 0.5, 1 }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.30 > < MyWidth,
MyThickness  , MyZ+0.30 > 0.5, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.30 > < MyWidth,
MyThickness/2+0.120, MyZ+0.30 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.30 > < MyWidth,
MyThickness/2+0.090, MyZ+0.30 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.30 > < MyWidth,
MyThickness/2+0.060, MyZ+0.30 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.30 > < MyWidth,
MyThickness/2+0.030, MyZ+0.30 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.30 > < MyWidth,
0.00,                MyZ+0.30 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.30 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.30 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.30 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.30 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.30 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.30 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.30 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.30 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.30 > < MyWidth,
-MyThickness  , MyZ+0.30 > 0.5, 1 }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.45 > < MyWidth,
MyThickness  , MyZ+0.45 > 0.5, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.45 > < MyWidth,
MyThickness/2+0.120, MyZ+0.45 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.45 > < MyWidth,
MyThickness/2+0.090, MyZ+0.45 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.45 > < MyWidth,
MyThickness/2+0.060, MyZ+0.45 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.45 > < MyWidth,
MyThickness/2+0.030, MyZ+0.45 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.45 > < MyWidth,
0.00,                MyZ+0.45 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.45 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.45 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.45 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.45 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.45 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.45 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.45 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.45 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.45 > < MyWidth,
-MyThickness  , MyZ+0.45 > 0.5, 1 }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.60 > < MyWidth,
MyThickness  , MyZ+0.60 > 0.5, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.60 > < MyWidth,
MyThickness/2+0.120, MyZ+0.60 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.60 > < MyWidth,
MyThickness/2+0.090, MyZ+0.60 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.60 > < MyWidth,
MyThickness/2+0.060, MyZ+0.60 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.60 > < MyWidth,
MyThickness/2+0.030, MyZ+0.60 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.60 > < MyWidth,
0.00,                MyZ+0.60 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.60 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.60 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.60 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.60 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.60 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.60 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.60 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.60 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.60 > < MyWidth,
-MyThickness  , MyZ+0.60 > 0.5, 1 }

 cylinder { < -MyWidth,  MyThickness  , MyZ+0.75 > < MyWidth,
MyThickness  , MyZ+0.75 > 0.5, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.75 > < MyWidth,
MyThickness/2+0.120, MyZ+0.75 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.75 > < MyWidth,
MyThickness/2+0.090, MyZ+0.75 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.75 > < MyWidth,
MyThickness/2+0.060, MyZ+0.75 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.75 > < MyWidth,
MyThickness/2+0.030, MyZ+0.75 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.75 > < MyWidth,
0.00,                MyZ+0.75 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.75 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.75 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.75 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.75 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.75 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.75 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.75 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.75 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness  , MyZ+0.75 > < MyWidth,
-MyThickness  , MyZ+0.75 > 0.5, 1 }

 cylinder { < -MyWidth,  MyThickness+0.150,   MyZ+0.825 > < MyWidth,
MyThickness+0.150,   MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.825 > < MyWidth,
MyThickness/2+0.120, MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.825 > < MyWidth,
MyThickness/2+0.090, MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.825 > < MyWidth,
MyThickness/2+0.060, MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.825 > < MyWidth,
MyThickness/2+0.030, MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.825 > < MyWidth,
0.00,                MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.825 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.825 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.825 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.825 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.825 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness-0.150,   MyZ+0.825 > < MyWidth,
-MyThickness-0.150,   MyZ+0.825 > 0.25, 1 }

 cylinder { < -MyWidth,  MyThickness+0.150,   MyZ+0.90 > < MyWidth,
MyThickness+0.150,   MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.120, MyZ+0.90 > < MyWidth,
MyThickness/2+0.120, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.090, MyZ+0.90 > < MyWidth,
MyThickness/2+0.090, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.060, MyZ+0.90 > < MyWidth,
MyThickness/2+0.060, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth,  MyThickness/2+0.030, MyZ+0.90 > < MyWidth,
MyThickness/2+0.030, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth,  0.00,                MyZ+0.90 > < MyWidth,
0.00,                MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.030, MyZ+0.90 > < MyWidth,
-MyThickness/2-0.030, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.060, MyZ+0.90 > < MyWidth,
-MyThickness/2-0.060, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.090, MyZ+0.90 > < MyWidth,
-MyThickness/2-0.090, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness/2-0.120, MyZ+0.90 > < MyWidth,
-MyThickness/2-0.120, MyZ+0.90 > 0.25, 1 }
 cylinder { < -MyWidth, -MyThickness-0.150,   MyZ+0.90 > < MyWidth,
-MyThickness-0.150,   MyZ+0.90 > 0.25, 1 }

 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.00, 1.00, 0.5 > translate <
 MyWidth-0.2, 0.0, MyZ-0.25 > }
 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.00, 1.00, 0.5 > translate <
-MyWidth+0.2, 0.0, MyZ-0.25 > }
 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.25, 1.75, 2.5 > translate <
 MyWidth-0.3, 0.0, MyZ+0.9 > }
 sphere { < 0.0, 0.0, 0.0 > 0.5, 1 scale < 1.25, 1.75, 2.5 > translate <
-MyWidth+0.3, 0.0, MyZ+0.9 > }

 sphere { < 0.0, 0.0, 1.5 > 0.5, -4 } // Heckeinschnitt
 sphere { <  0.35,  0.25, MyZ+0.08 > 0.275, -1.5 }
 sphere { <  0.35, -0.25, MyZ+0.08 > 0.275, -1.5 }
 sphere { < -0.35,  0.25, MyZ+0.08 > 0.275, -1.5 }
 sphere { < -0.35, -0.25, MyZ+0.08 > 0.275, -1.5 }
 sphere { <  0.85,  0.25, MyZ+0.06 > 0.225, -1.75 }
 sphere { <  0.85, -0.25, MyZ+0.06 > 0.225, -1.75 }
 sphere { < -0.85,  0.25, MyZ+0.06 > 0.225, -1.75 }
 sphere { < -0.85, -0.25, MyZ+0.06 > 0.225, -1.75 }
 sphere { <  1.10,  0.23, MyZ-0.04 > 0.175, -1.50 }
 sphere { <  1.10, -0.23, MyZ-0.04 > 0.175, -1.50 }
 sphere { < -1.10,  0.23, MyZ-0.04 > 0.175, -1.50 }
 sphere { < -1.10, -0.23, MyZ-0.04 > 0.175, -1.50 }

 sturm 1.0
 texture { AntennaRed }
 scale 450.0
 translate < 0.0, 0.0, 250.0 >
}


Post a reply to this message

From: clipka
Subject: Re: Blobs: Error 1: Negative Values: Holes! / Error2:AlphaValueOverwriting?
Date: 23 Dec 2015 08:46:49
Message: <567aa5c9$1@news.povray.org>
Am 23.12.2015 um 08:00 schrieb Sven Littkowski:

> PS: not the shape of the round cupolas become boxish, but their textures
> on the edges. Even in this relatively plain test file code, if you look
> into their shadow areas, you will see this again.

Ah - now I guess I get your point. I've cropped a portion of the image
and increased the contrast to highlight what I /think/ you mean.

Those look like typical radiosity artifacts. What happens is this:

- What POV-Ray's radiosity algorithm tries to answer is the question how
much light any given point on given surface receives from other objects
(as opposed to dedicated light sources).

- Doing this for every point over and over again would require lots of
calculations; therefore, POV-Ray's radiosity algorithm takes advantage
of the fact that this indirect illumination typically changes only
gradually. Before the actual render, the algorithm therefore computes
the indirect illumination for "a few" chosen sample points on the
surface; that's the so-called "radiosity pretrace". In the actual
render, for each surface point the algorithm then just interpolates the
indirect illumination from any samples taken nearby.

- During the main render however, the algorithm will occasionally hit a
surface point for which it nas no nearby samples that would satisfy the
quality criteria defined in the scene's radiosity block. In that case,
the algorithm will take an additional sample during the main render.

- For pixels rendered earlier, this additional sample wasn't yet
available, so their radiosity interpolations were done without it.
Pixels rendered later, however, /will/ use the new sample in their
interpolation -- and may get a different result than if they didn't.

- If the new sample made a big difference, then where the regions of
"earlier" and "later" pixels meet there will be a noticeable border
between those two regions.

- Due to POV-Ray 3.7.0 using multiple threads, and each thread working
on different square regions of the image, such borders will be block-ish
in appearance, with the vertical borders always coinciding with the
32x32 pixel render job grid. In POV-Ray 3.6, which progressed line by
line through the image, the borders would instead always be horizontal.


There are three ways to get around the problem:

(A) Make POV-Ray compute more samples during the pretrace. Reduce
"pretrace_end" for this purpose.

(B) Make POV-Ray be more relaxed about the quality of samples during the
main render. Use "low_error_factor" for this purpose; a good traditional
value is 0.5. According to the docs this should be the default, but I'm
not sure right now whether it really is.

Both of the above reduce the ratio of samples gathered during the main
render vs. the samples gathered in total. In my experience, a ratio of
50% has always been enough to prevent artifacts. See the message pane
for post-render diagnostics of how well you did.

(C) Make sure any samples computed are as accurate as possible, in order
to reduce the chance that additional samples computed during the main
render will make too much of a difference. Increase "count" for this
purpose. Note however that there are situations where an increased count
doesn't help.


Post a reply to this message


Attachments:
Download 'untitled-3.png' (43 KB)

Preview of image 'untitled-3.png'
untitled-3.png


 

Goto Latest 10 Messages Next 10 Messages >>>

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