POV-Ray : Newsgroups : povray.general : Isosurfaces functions by Tsutomu Higo : Re: Isosurfaces functions by Tsutomu Higo Server Time
4 Aug 2024 04:12:47 EDT (-0400)
  Re: Isosurfaces functions by Tsutomu Higo  
From: David Wallace
Date: 4 Aug 2003 14:28:13
Message: <3f2ea5bd$1@news.povray.org>
"Gilles Tran" <tra### [at] inapginrafr> wrote in message
news:3f2aa6af$1@news.povray.org...
> Tsutomu just sent me this so I thought I'd share.
> All are abstract images with code.
> http://members.jcom.home.ne.jp/tom3d/pov45/ilpov45e.htm
> http://members.jcom.home.ne.jp/tom3d/pov46/ilpov46e.htm
>
> G.
>
> --
>
> **********************
> http://www.oyonale.com
> **********************
> - Graphic experiments
> - POV-Ray and Poser computer images
> - Posters
>
>
How would I contact him?  I also like his work but I need to simplify the
function declarations to make them more accessible.  Here is an example of
what I would do with his golden egg rotation sample:

+ start code +
// INT '03.07 / Yellow
// By Tsutomu HIGO  URL: http://www.asahi-net.or.jp/~nj2t-hg/
// Modified by David Wallace 8/4/2003

#version 3.5;
global_settings {
  max_trace_level 4
  assumed_gamma 2.2
}

camera {
  location <0.5, 2.2, -0.3>
  look_at <-0.3, 0, 0.1>
  angle 120
  }

light_source {<600, 550, 50> color rgb <0.8, 0.8, 0.8>}

#declare Rl=1.5;
#declare Rs=0.1;
#declare Diva=32;
#declare Py=0.3;
#declare Pa=2*pi/Diva;
#declare eps = 1e-6;

#declare vsq = function { x*x+y*y+z*z }
#declare ycir = function { Pa*int(acos(x/sqrt(x*x+z*z+eps))/Pa+1/2) }

isosurface {
  function {
    (pow(x-Rl*             cos(ycir(x,y,z)),2)
    +pow(z-Rl*z/abs(z+eps)*sin(ycir(x,y,z)),2)
    +pow(y-0.3*(int(y/0.3)+0.5),2)-pow(Rs,2))

*(vsq(x,3*y-1.8,z)-1.38*1.38-0.2*cos(25*pi*pow(vsq(x,y-1.38/3-.6,z),2)+pi))
    -0.0004
    }
  threshold 0
  max_gradient 30
  contained_by {box {<-Rl-Rs-0.1, -Rs, -Rl-Rs-0.1>, <Rl+Rs+0.1, 1.8,
Rl+Rs+0.1>}}
  open
  texture {
    pigment {color rgb <1, 0.8, 0>}
    finish {
      ambient 0.3
      diffuse 0.5
      reflection 0.3
      specular 1
      phong 0.5
      brilliance 1
      }
    }
  rotate z*-25 rotate y*10
  no_shadow
}

background {color rgb <0, 0.3, 0.4>}
+ end code +

I only added the vsqr and ycir functions to shorten and simplify the final
function, whose render is identical to the original (I checked).


Post a reply to this message

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