POV-Ray : Newsgroups : povray.general : Transparent PNGs : Re: Transparent PNGs Server Time
21 May 2024 08:03:15 EDT (-0400)
  Re: Transparent PNGs  
From: Sven Littkowski
Date: 11 Oct 2017 08:41:33
Message: <59de117d$1@news.povray.org>
Okay, here is the latest problem and also the scene code.

The value "AmountLines" allows me to set the amount of oar lines above
each other, but strangely, I always get just one line. I am very sure,
the fault is with me: "I am not seeing the forest because of all the
trees in my eyesight". Means, I am looking at the scene code, and just
can't discover the error in thinking/writing. Can you help?

---SCENE-------------------------------------------------------



#local Temp_version = version;
#version 3.7;

#declare MyRadiosity = off;   // on

global_settings
{
 #if(MyRadiosity)
  radiosity
  {
   media on
   pretrace_start 0.08
   pretrace_end   0.001
   count 400
   error_bound 0.75
   recursion_limit 1
   normal on
  }
 #end
 subsurface        {}
 adc_bailout       0.0039
 ambient_light     rgb < 0.000, 0.000, 0.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
}

camera
{
 location < 7.0,  0.0, -50.0 >
 look_at  < 7.0,  0.0,   0.0 >
 right x*image_width/image_height
}

light_source
{
 < -50000.0, 50000.0, -50000.0 > //light position
 color rgb < 1.0, 1.0, 1.0 > * 1.0
 parallel
 point_at < 0.0, 0.0, 0.0 >
}

//
---------------------------------------------------------------------------
-----------------------

#include "textures.inc"

#declare UpperOar = texture
{
 DMFDarkOak
 pigment { color rgb < 1.0, 1.0, 1.0 > }
 normal { wood 0.5 scale 0.3 turbulence 0.1 }
 finish { phong 1 }
 rotate< 90.0, 0.0, 0.0 >
 scale 0.25
}

#declare LowerOar = texture
{
 DMFDarkOak
 pigment { color rgb < 0.3, 0.01, 0.0 > }
 normal { wood 0.5 scale 0.3 turbulence 0.1 }
 finish { phong 1 }
 rotate< 90.0, 0.0, 0.0 >
 scale 0.25
}

#declare TotalLength      = 10.0;   // length of oars of the lowest line
#declare AmountOarsInLine = 30;
#declare AmountLines      = 3;
#declare LineLeftShift    = 0.5;    // shift towards the left side for
additional lines
#declare LineHeightShift  = 0.5;    // distance to line below
#declare MyVariance       = 4.0;    // human irregularity
#declare MyHeightMore     = 0.50;   // upper lines need longer oars
#declare GeneralAngle     = 40;     // the angle of each oar from hull
towards water
#declare BladeAngle       = 85.0;   // the angle of the blade when
touching water
#declare ForwardAngle     = 05.0;   // to equalize the ends of each line
to the eye

#declare R1 = seed(1);
#declare R2 = seed(2);
#declare R3 = seed(3);





//
---------------------------------------------------------------------------
-----------------------

#macro MyOar(MyHeightMoreThis)
 union
 {
  union
  {
   cone
   {
    < 0.0, -10.0, 0.0 > 0.000 < 0.0, -9.9, 0.0 > 0.250
   }
   cone
   {
    < 0.0, -9.9, 0.0 > 0.250 < 0.0, -5.5, 0.0 > 0.000
   }
   texture { LowerOar }
   scale < 1.0, 1.0, 0.1 >
  }
  union
  {
   cone
   {
    < 0.0, -9.5, 0.0 > 0.020 < 0.0, -5.5, 0.0 > 0.075
   }
   cylinder
   {
    < 0.0, -5.5, 0.0 > < 0.0, 0.0, 0.0 > 0.075
   }
   #if(MyHeightMoreThis>0)
    cylinder
    {
     < 0.0, MyHeightMoreThis, 0.0 > < 0.0, 0.0, 0.0 > 0.075
    }
    translate < 0.0, -MyHeightMoreThis, 0.0 >
   #end
   texture { UpperOar }
  }  no_shadow
 }
#end




#declare MyNumber = 0;


#macro MyOarLine(AmountOarsInLine,MyHeightMoreThis)
 union
 {
  #while(MyNumber<AmountOarsInLine)

   #declare MyAngleWater     = (rand(R1)*MyVariance)+GeneralAngle;
   #declare MyAngleHands     = (rand(R2)*MyVariance)+BladeAngle;
   #declare MyAngleDirection = (rand(R3)*MyVariance)+ForwardAngle;
   object
   {
    MyOar(MyHeightMoreThis)
    rotate < 0.0, MyAngleHands, 0.0 >
    rotate < MyAngleWater, 0.0, 0.0 >
    rotate < 0.0, 0.0, MyAngleDirection >
    translate < (MyNumber*0.925), 0.0, 0.0 >
   }
   #declare MyNumber = MyNumber+1;
  #end
 }
#end



union
{
 #declare ThisLine = 0;
 #while(ThisLine<AmountLines)
  object { MyOarLine(AmountOarsInLine,MyHeightMore*ThisLine) translate <
-((AmountOarsInLine*0.925)/2)+0.925-(LineLeftShift*ThisLine),
LineHeightShift*ThisLine, 0.0 > }
  #declare ThisLine=ThisLine+1;
 #end

 box
 {
  < -20.0, -15.0, 0.0 > < 20.0, 15.0, 0.1 >
  pigment { color rgb < 1.0, 1.0, 1.0 > }
 }
 box
 {
  < -1.0, -25.0, 2.0 > < 1.0, 25.0, 2.1 >
  pigment { color rgb < 0.5, 0.5, 0.5 > }
 }
 translate < 0.0, 0.0, 0.0 >
}


---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message

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