POV-Ray : Newsgroups : povray.advanced-users : Menger Sponge as Isosurface! : Re: Menger Sponge as Isosurface! Server Time
8 Jul 2024 19:15:27 EDT (-0400)
  Re: Menger Sponge as Isosurface!  
From: honnza
Date: 6 Oct 2007 06:40:00
Message: <web.470765c39b9aa03ba9ce4df50@news.povray.org>
Hi,
try this:

#declare mid=function(x,y,z){min(max(x,y),max(x,z),max(y,z))}
#declare maxlevel=5;//set to what you like
#declare level=0;
#while(level<maxlevel)
  Parse_String(concat("#declare sponge",str(level,0,0)))=function(x,y,z){
    select(
      (l&mid(abs(x),abs(y),abs(z))>1/3)-0.5
    ,
      mid(abs(x),abs(y),abs(z))-1/3
    ,

Parse_String(concat("sponge",str(level,0,0)))(abs(3*x)-2,abs(3*y)-2,abs(3*z)-2)
    )
  }
  #set l=l+1;
#end
isosurface{
  function{concat("sponge",str(maxlevel,0,0))(x,y,z)}
  material{m_concrete}
  scale 5
}


Post a reply to this message

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