POV-Ray : Newsgroups : povray.binaries.images : Ping Pong Collaboration? : Re: Ping Pong Collaboration? Server Time
3 Aug 2024 02:22:49 EDT (-0400)
  Re: Ping Pong Collaboration?  
From: Lukas Winter
Date: 27 Mar 2007 12:40:02
Message: <pan.2007.03.27.17.40.00.630306@removeit.geloescht.net>
Increased the render times errr... added blurred reflection and a bright
sphere. Unfortunately the mirror is now visible but I think the white glow
is interesting, although I didn't intend to create it. Feel free to
simplify or speed up my code.

//********************************************************************
#include "colors.inc"
#include "stones.inc"

#default {finish {ambient 0}}

// global_settings + photons added by William
global_settings {
   max_trace_level 99
   adc_bailout 1/127

   photons {
     count 20000
     max_trace_level 10
     autostop 0
     jitter 0
   }
 }

// end global_settings

// Begin additions by Yadgar
#declare s1=seed(1979);

#declare Yadgar_Silver = texture { //TA
   pigment { color rgb 0.75 }
   finish {
      brilliance 0.7
      diffuse 1
      reflection 0.5
      specular 0.8
      roughness 0.001
   }
};

#declare Silver_Ball= sphere {
    0, 0.04
    texture {Yadgar_Silver}
}
// End additions by Yadgar

camera {
   location <-5,10,-20>
   look_at 0
}

light_source {
   <1.5,1.3,-1.0>*10 color rgb 1.2 //brightened by Lukas Winter
   spotlight point_at y  radius 15 falloff 25 area_light  x*2,y*2,25,25
   circular    orient    adaptive 0 photons {
     refraction on reflection on
   }
 }


//changes by Lukas Winter
#macro blurred_reflection(pigm, fin, amount, sampl)
  texture
  {
    average
    texture_map
    {
      #while(sampl > 0)
        [1
          pigment { pigm }
          finish { fin }
          normal
          {
            bumps amount
            rotate <rand(s1), rand(s1), rand(s1)>
            translate x*rand(s1)
            scale rand(s1)*.1
          }
        ]
        #declare sampl = sampl -1;
      #end
    }
  }
#end

#declare plane_pigment = pigment { Grey };
#declare plane_finish = finish { reflection .5 specular .2 };
plane
{
   y, 0
   blurred_reflection(plane_pigment,
     plane_finish,
     .4, 15)
   no_reflection
   photons
   {
     reflection off
     collect on
   }
}

plane
{
  y, 0
  pigment { plane_pigment }
  finish { plane_finish }
  no_image
  no_shadow
}


light_source
{
  <-8, .8, 3>
  color <1, 1, .8>
  fade_power 2
  fade_distance .8
}

sphere
{
  <-8, .8, 3>, .8
  pigment
  {
    rgbt <1, 1, 1, 1>
  }
  hollow
  interior
  {
    media
    {
      emission 1.4*<1, 1, .8>
    }
  }
}


//end changes by Lukas Winter

#macro rubber(col)
   texture {
     pigment {color col}
     finish {specular 1/4}
     normal {bumps 1/50 scale 1/100}
   }
#end

sphere {<0,3,0>, 3  rubber(rgb x)}
sphere {<4,2,-3>, 2 rubber(rgb x+y)}
sphere {<-2,1,-4>, 1  rubber(rgb z)}

// Box added by William
box {
   <0, 0, 0>
   <2, 2, 2>
   //Distorted by Alain
   rotate -21
   scale<1.3,1,0.8>
   rotate 21
   //end distortion
   rotate y * 45
   translate z * -5
   texture
   {
      pigment { color rgbt 0.75 }
      normal {bumps 0.5 scale 0.2}
      finish {
       brilliance 0.5
       diffuse 0.1
       reflection 0.5
       specular 0.75
       roughness 0.001
     }
     
   }
   interior
   {
     ior 1.35
   }
   photons {
     target
     refraction on
     reflection on
     collect off
   }
   }
// End of William's box

// Begin additions by Yadgar
#declare n=0;

#while (n<1800)
    #declare r1=rand(s1)*360;
    #declare r2=asin(rand(s1)*2-1);
    object { Silver_Ball translate <0, 3, 0>+3*<sin(r1*(pi/180))*cos(r2),
sin(r2), cos(r1*(pi/180))*cos(r2)> }
    #declare n=n+1;
#end

#declare n=0;

#while (n<800)
    #declare r1=rand(s1)*360;
    #declare r2=asin(rand(s1)*2-1);
    object { Silver_Ball translate <4, 2,
-3>+2*<sin(r1*(pi/180))*cos(r2), sin(r2), cos(r1*(pi/180))*cos(r2)> }
    #declare n=n+1;
#end

#declare n=0;

#while (n<200)
    #declare r1=rand(s1)*360;
    #declare r2=asin(rand(s1)*2-1);
    object { Silver_Ball translate <-2, 1, -4>+<sin(r1*(pi/180))*cos(r2),
sin(r2), cos(r1*(pi/180))*cos(r2)> }
    #declare n=n+1;
#end
// End additions by Yadgar

//Addition by Alain
union{
	plane{-z,-10 rotate -4*y}
	plane{z,-10 no_image no_shadow}
	pigment{rgb 0.9}
	hollow //to prevent the warning
	finish{reflection 0.97 }
	rotate 1*y
}
// End addition by Alain

// Addition by Tim Attwood
#macro RingOf(Obj StartPos IncRot Num)
  #local _COUNT = 0;
  #local _ROT = <0,0,0>;
  #while (_COUNT < Num)
    object {Obj translate StartPos
      rotate <_ROT.x,0,0>
      rotate <0,_ROT.y,0>
      rotate <0,0,_ROT.z>}
    #local _ROT = _ROT + IncRot;
    #local _COUNT = _COUNT + 1;
  #end
#end

#declare pin = union{
   union {
    sphere{0,0.0625}
    difference{ sphere{0,0.0625 scale 2*x}plane{x,0}} texture {
      pigment{Violet}
      finish {reflection 0.1
      specular 0.3
      roughness 0.001}
    }
    }
   cylinder{0,1.4*x,0.015}
   cone{<1.4,0,0>,0.015,<1.825,0,0>,0}
   rotate <0,0,-1.9>
   scale 1
   translate <0,-0.965,0>
   texture{Yadgar_Silver}
}
union { RingOf(pin, <-2,0,0>,<0,7,0>,12) rotate -75*y translate <-3,1,-5>}
// End addition by Tim Attwood


image found at http://www.geloescht.net/allerlei/pingpong2.png


Post a reply to this message

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