POV-Ray : Newsgroups : povray.text.scene-files : My favourite isosurface (see p.b.i. for image) : My favourite isosurface (see p.b.i. for image) Server Time
21 Jun 2024 01:11:43 EDT (-0400)
  My favourite isosurface (see p.b.i. for image)  
From: Alex Kluchikov
Date: 19 Nov 2003 16:55:01
Message: <web.3fbbe555cd7b5c811235fd70@news.povray.org>
Here is the source.

//=== Begin

// Alex Kluchikov, 2003
// mailto: klk### [at] ukrnet, akl### [at] mailru
// Feel free to modify/use in any form

sky_sphere{pigment{gradient y color_map{[0,color rgb <0.8,0.83,1>][1,color
rgb <0.4,0.7,1>]}scale 2 translate -y}}
sphere{0,1000 texture{
 pigment{average pigment_map{
 #declare gr=.8;
 #declare ge=3/(1+gr+gr);
 #declare t1=.3;
 #declare t2=.8;
 #declare tr1=.1;
 #declare tr2=.1;
  [1,bozo translate 5*y color_map{
   [t1,color rgbt < 1,gr,gr,tr1>*ge]
   [t2,color rgbt < 0, 0, 0,tr2>*ge]
  }]
  [1,bozo translate 5*z color_map{
   [t1,color rgbt < gr, 1,gr,tr1>*ge]
   [t2,color rgbt <  0, 0, 0,tr2>*ge]
  }]
  [1,bozo translate 5*x color_map{
   [t1,color rgbt < gr,gr, 1,tr1>*ge]
   [t2,color rgbt <  0, 0, 0,tr2>*ge]
  }]

 }}scale 0.25 finish{ambient 1 diffuse 0}scale 3000}no_shadow no_image
 hollow //no_reflection
  double_illuminate scale 100}

#declare st=texture{pigment{color rgb<0.83,0.82,0.84>*1.2}
  finish{diffuse 0.85 ambient 0 specular 0.9 roughness .03 phong 1.0
brilliance 9.3 phong_size 80  metallic .5
   reflection{0.6,1.0 metallic}}
//   normal{bozo .5 scale .002}
  }

#declare area=0;
#declare areacount=2;
#declare areasize=2.5;

light_source{
 -35*z, color rgb <1.0,0.8,0.6>*0.55
#if(area)
 area_light x*areasize,y*areasize,areacount,areacount jitter adaptive 1
circular orient
#else
 parallel
#end
 rotate x*55 rotate -y*45
 }

light_source{
 -35*z, color rgb <0.6,0.8,1>*0.55
#if(area)
 area_light x*areasize,y*areasize,areacount,areacount jitter adaptive 1
circular orient
#else
 parallel
#end
 rotate x*25 rotate y*25
 }

camera{
 location -5*z
 look_at 0
 }

#declare fn_X = function(a,b,c) {
  pow((a*a+(c+0.15)*(c+0.15))*1.5,1/32)
 }

#declare radialf=function{
 pattern{radial}
}

#declare heart=
isosurface{
 function{
 #declare MPI=16*pi/3;
 #macro tx() (sqrt(x*x+z*z)-1.5) #end
 #macro ty() y #end
 #macro ttx() tx()*sin(radialf(x,y,z)*MPI)+ty()*cos(radialf(x,y,z)*MPI) #end
 #macro tty() tx()*cos(radialf(x,y,z)*MPI)-ty()*sin(radialf(x,y,z)*MPI) #end
   pow(pow(ttx()+0.25,2)+pow(tty(),2),1/64)*.33

+pow(pow(ttx()-0.125,2)+pow(tty()+0.21650635094610966169093079268823,2),1/64)*.33

+pow(pow(ttx()-0.125,2)+pow(tty()-0.21650635094610966169093079268823,2),1/64)*.33
   -.945+sin(radialf(x,y,z)*10*pi)*0.01

 }
 threshold 0
 accuracy 0.0002
 max_gradient 0.75
 contained_by{box{-<2.1,0.55,2.1>,<2.1,0.55,2.1>}}
}

object{heart scale 1.2
 rotate -x*60-y*30
 texture{st}
}

//=== End


Post a reply to this message

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