POV-Ray : Newsgroups : povray.binaries.images : isoteapot : Re: isoteapot Server Time
13 Aug 2024 23:16:02 EDT (-0400)
  Re: isoteapot  
From: Rafal 'Raf256' Maj
Date: 13 Jan 2003 19:43:49
Message: <Xns93031177E7E74raf256com@204.213.191.226>
"Rafal 'Raf256' Maj" <raf### [at] raf256com> wrote in 
news:Xns### [at] 204213191226

>   function {  x*x+y*y+z*z - 1 + f_noise3d(x,y,z)*e }
>   contained_by { sphere { 0 1+e } } 
>   inner_bound { sphere { 0 1-e } } 


function {  x*x+y*y+z*z - 1 + f_noise3d(x,y,z)*e }
contained_by { sphere { 0 1 } } 
 inner_bound { sphere { 0 1-e } } 

-or-

function {  x*x+y*y+z*z - 1 - f_noise3d(x,y,z)*e }
contained_by { sphere { 0 1+e } } 
 inner_bound { sphere { 0 1 } } 

oh and I forgot, Imho for shapes where calculations are *very* expensive 
(like isosurfaces) we whould use comples shapes to bound them, or even 
hierarchies, like :

isosurface is bounded with:
  ..a very complex mesh (10,000 faces[1])
    ..and this compelx mesh is bounded with simple mesh (100 faces)
     ..and simple mesh is finaly bounded by box

[1] - this complex mesh can be builded automaticly i.e. by trace funcion, 
and results may be saved to some file and re-calculated only when 
isosurface will change.

-- 
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M


Post a reply to this message

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