POV-Ray : Newsgroups : povray.bugreports : Blobs: Error 1: Negative Values: Holes! / Error 2: Alpha Value Overwriting? : Re: Blobs: Error 1: Negative Values: Holes! / Error 2:AlphaValueOverwriting? Server Time
20 Oct 2021 14:46:21 EDT (-0400)
  Re: Blobs: Error 1: Negative Values: Holes! / Error 2:AlphaValueOverwriting?  
From: Sven Littkowski
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

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