POV-Ray : Newsgroups : povray.binaries.images : A couple of isosurfaces Server Time
18 May 2024 00:22:01 EDT (-0400)
  A couple of isosurfaces (Message 13 to 22 of 22)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Tek
Subject: Re: A couple of isosurfaces
Date: 9 Jul 2010 08:50:01
Message: <web.4c371a4fe5fe6399caa39c860@news.povray.org>
"Thomas de Groot" <tDOTdegroot@interDOTnlANOTHERDOTnet> wrote:
> "Paolo Gibellini" <p.g### [at] gmailcom> schreef in bericht
> news:4c37042e$1@news.povray.org...
> > Both the images are very interesting, I like especially the greebelium, is
> > a mixture of tech and decay...
>
> you mean: tek and decay ;-)
>
> Thomas

I was thinking of calling it Tekkenium, but then people would think it was the
pure essence from which endless fighting game sequels are made :)


Post a reply to this message

From: Edouard
Subject: Re: A couple of isosurfaces
Date: 10 Jul 2010 01:30:01
Message: <web.4c380527e5fe6399165c3ed60@news.povray.org>
"Tek" <tek### [at] evilsuperbraincom> wrote:
> I keep e-mailing myself things I made in my lunch break to post here when I get
> home, and then I get home and don't switch the PC on... :-/ So I'm posting via
> the web interface in my lunch break instead*.
>
> Anyway, here's a couple of isosurfaces I came up with recently. Both are very
> slow, but quite pretty (IMO).
>
> The reinforced concrete is an inverse isosurface, differerenced with a block. I
> wanted to see if I could carve a realistic decay into an object without needing
> the shape of the object itself to be an isosurface.
>
> The other picture is a substance I've christened Greebelium :) It's a
> multi-fractal based on crackle metric 1 (3 octaves, scale and amplitude reduced
> by 1/4 with each octave).
>
> What do you think?
> Anyone want source with that?

Fantastic! I love the amazing things you do with isosurfaces...

Cheers,
Edouard.


Post a reply to this message

From: Dan Byers
Subject: Re: A couple of isosurfaces
Date: 10 Jul 2010 11:20:01
Message: <web.4c388f74e5fe6399544530170@news.povray.org>
Like them both.  The second one looks like war rubble from an alien
civilization...

--
Dan
GoofyGraffix.com


Post a reply to this message

From: Thomas de Groot
Subject: Re: A couple of isosurfaces
Date: 11 Jul 2010 03:51:05
Message: <4c3977e9$1@news.povray.org>
Flip() and SphereRand() are not defined. Are they macros of yours? I cannot 
find them in any includes, although I can imagine what they should look 
like...

Thomas

"Tek" <tek### [at] evilsuperbraincom> schreef in bericht 
news:web.4c36e0afe5fe6399caa39c860@news.povray.org...
> Ok the source for both objects is pretty small, so I'll just drop it in
> here:
> //------Concrete with Rebar------
>
> #macro DecayBlob(Pos)
> isosurface {
>  #local Off = VRand(rs)*100;
>  #local f_Hole =
>   function { pigment {
>    average
>    pigment_map {
>     [1 spherical scale 2 cubic_wave translate Off warp { turbulence .5 
> octaves
> 3 } translate -Off]
>     [1 pigment_pattern { granite translate Off scale 5 Flip() } poly_wave 
> 2]
>     [.4
>      pigment_pattern {
>       #local f = function { 
> 1-sqrt(min(min(x*x+y*y,x*x+z*z),y*y+z*z))/sqrt(2) }
>       function { min(1,max(0,f(sin(x)*4,sin(y)*4,sin(z*4))*5-3)) }
>       cubic_wave
>       scale 1/pi
>       translate .5
>       scale .8
>       warp { turbulence .2 octaves 3 }
>      }
>      Flip()
>      translate -Pos // so they line up in different holes
>     ]
>    }
>   } }
>  function {
>   1-2*f_Hole(x,y,z).x
>  }
>  max_gradient 8
>  all_intersections
>  contained_by { sphere { 0, 2 } }
>  scale .5
>  translate Pos
> }
> #end
>
> difference {
> superellipsoid { <.1,.1> normal { granite .2 accuracy 1/1000 } }
> #local rs = seed(7);
> #local i=0; #while ( i < 5 )
>  #local Norm = <0,0,0>;
>  #local Pos = SphereRand(rs);
>  #local Pos = trace( Thobject, Pos*2,-Pos, Norm );
>  #if ( vlength(Norm) > 0 )
>   DecayBlob(Pos)
>   #local i=i+1;
>  #end
> #end
> }
>
>
>
>
>
>
>


Post a reply to this message

From: Dre
Subject: Re: A couple of isosurfaces
Date: 11 Jul 2010 21:15:33
Message: <4c3a6cb5@news.povray.org>
"Tek" <tek### [at] evilsuperbraincom> wrote in message 
news:web.4c36e0afe5fe6399caa39c860@news.povray.org...
> Ok the source for both objects is pretty small, so I'll just drop it in
> here:
>
> //------Greebelium------
>
> isosurface {
> #declare Funches =
>  function { pigment {
>   average
>   pigment_map {
>    #local a = 1;
>    #local i=0; #while ( i < 3 )
>     [a crackle metric 1 pigment_map { [0 rgb .5][.1 crackle metric 1 solid
> colour_map { [.5 rgb 0][.5 rgb 1] }] } scale a]
>    #local a=a/4; #local i=i+1; #end
>   }
>  } }
>
> // trap the pattern between low & high levels...
> function {
>  max( y-.5+.5 - Funches(x,y,z).x, min( y+.5/*+.5 - Funches(x,y,z).x*/,
>   .5 - Funches(x,y,z).x
>  ) )
> }
> max_gradient 20
> contained_by { box { -<5,1,5>, <5,1,5> } }
> }
>
>
> //------Concrete with Rebar------
>
> #macro DecayBlob(Pos)
> isosurface {
>  #local Off = VRand(rs)*100;
>  #local f_Hole =
>   function { pigment {
>    average
>    pigment_map {
>     [1 spherical scale 2 cubic_wave translate Off warp { turbulence .5 
> octaves
> 3 } translate -Off]
>     [1 pigment_pattern { granite translate Off scale 5 Flip() } poly_wave 
> 2]
>     [.4
>      pigment_pattern {
>       #local f = function { 
> 1-sqrt(min(min(x*x+y*y,x*x+z*z),y*y+z*z))/sqrt(2) }
>       function { min(1,max(0,f(sin(x)*4,sin(y)*4,sin(z*4))*5-3)) }
>       cubic_wave
>       scale 1/pi
>       translate .5
>       scale .8
>       warp { turbulence .2 octaves 3 }
>      }
>      Flip()
>      translate -Pos // so they line up in different holes
>     ]
>    }
>   } }
>  function {
>   1-2*f_Hole(x,y,z).x
>  }
>  max_gradient 8
>  all_intersections
>  contained_by { sphere { 0, 2 } }
>  scale .5
>  translate Pos
> }
> #end
>
> difference {
> superellipsoid { <.1,.1> normal { granite .2 accuracy 1/1000 } }
> #local rs = seed(7);
> #local i=0; #while ( i < 5 )
>  #local Norm = <0,0,0>;
>  #local Pos = SphereRand(rs);
>  #local Pos = trace( Thobject, Pos*2,-Pos, Norm );
>  #if ( vlength(Norm) > 0 )
>   DecayBlob(Pos)
>   #local i=i+1;
>  #end
> #end
> }
>
>
Awesome, thanks!

Cheers Dre


Post a reply to this message

From: Paolo Gibellini
Subject: Re: A couple of isosurfaces
Date: 12 Jul 2010 05:26:23
Message: <4c3adfbf$1@news.povray.org>
>Thomas de Groot  on date 09/07/2010 13:34 wrote:
> "Paolo Gibellini"<p.g### [at] gmailcom>  schreef in bericht
> news:4c37042e$1@news.povray.org...
>> Both the images are very interesting, I like especially the greebelium, is
>> a mixture of tech and decay...
>
> you mean: tek and decay ;-)
>
> Thomas
>
>
:D
Paolo


Post a reply to this message

From: Tek
Subject: Re: A couple of isosurfaces
Date: 12 Jul 2010 17:48:59
Message: <4c3b8dcb$1@news.povray.org>
Doh! Sorry yeah they're macros of mine:

#macro Flip() colour_map { [0 rgb 1][1 rgb 0] } #end

#declare SphereAngleDistribute = function(x) { asin(x)/(pi/2) }
#macro SphereRand(Seed) vrotate( z, 
<90*SphereAngleDistribute(rand(Seed)*2-1),360*rand(Seed)> ) #end

-- 
Tek
http://evilsuperbrain.com


"Thomas de Groot" <tDOTdegroot@interDOTnlANOTHERDOTnet> wrote in message 
news:4c3977e9$1@news.povray.org...
> Flip() and SphereRand() are not defined. Are they macros of yours? I 
> cannot find them in any includes, although I can imagine what they should 
> look like...
>
> Thomas
>
> "Tek" <tek### [at] evilsuperbraincom> schreef in bericht 
> news:web.4c36e0afe5fe6399caa39c860@news.povray.org...
>> Ok the source for both objects is pretty small, so I'll just drop it in
>> here:
>> //------Concrete with Rebar------
>>
>> #macro DecayBlob(Pos)
>> isosurface {
>>  #local Off = VRand(rs)*100;
>>  #local f_Hole =
>>   function { pigment {
>>    average
>>    pigment_map {
>>     [1 spherical scale 2 cubic_wave translate Off warp { turbulence .5 
>> octaves
>> 3 } translate -Off]
>>     [1 pigment_pattern { granite translate Off scale 5 Flip() } poly_wave 
>> 2]
>>     [.4
>>      pigment_pattern {
>>       #local f = function { 
>> 1-sqrt(min(min(x*x+y*y,x*x+z*z),y*y+z*z))/sqrt(2) }
>>       function { min(1,max(0,f(sin(x)*4,sin(y)*4,sin(z*4))*5-3)) }
>>       cubic_wave
>>       scale 1/pi
>>       translate .5
>>       scale .8
>>       warp { turbulence .2 octaves 3 }
>>      }
>>      Flip()
>>      translate -Pos // so they line up in different holes
>>     ]
>>    }
>>   } }
>>  function {
>>   1-2*f_Hole(x,y,z).x
>>  }
>>  max_gradient 8
>>  all_intersections
>>  contained_by { sphere { 0, 2 } }
>>  scale .5
>>  translate Pos
>> }
>> #end
>>
>> difference {
>> superellipsoid { <.1,.1> normal { granite .2 accuracy 1/1000 } }
>> #local rs = seed(7);
>> #local i=0; #while ( i < 5 )
>>  #local Norm = <0,0,0>;
>>  #local Pos = SphereRand(rs);
>>  #local Pos = trace( Thobject, Pos*2,-Pos, Norm );
>>  #if ( vlength(Norm) > 0 )
>>   DecayBlob(Pos)
>>   #local i=i+1;
>>  #end
>> #end
>> }
>>
>>
>>
>>
>>
>>
>>
>
>


Post a reply to this message

From: Thomas de Groot
Subject: Re: A couple of isosurfaces
Date: 13 Jul 2010 07:42:00
Message: <4c3c5108$1@news.povray.org>
"Tek" <tek### [at] evilsuperbraincom> schreef in bericht 
news:4c3b8dcb$1@news.povray.org...
> Doh! Sorry yeah they're macros of mine:
>
> #macro Flip() colour_map { [0 rgb 1][1 rgb 0] } #end
>
> #declare SphereAngleDistribute = function(x) { asin(x)/(pi/2) }
> #macro SphereRand(Seed) vrotate( z, 
> <90*SphereAngleDistribute(rand(Seed)*2-1),360*rand(Seed)> ) #end
>

<grin> Thank you indeed!

Thomas


Post a reply to this message

From: Tor Olav Kristensen
Subject: Re: A couple of isosurfaces
Date: 13 Jul 2010 19:35:00
Message: <web.4c3cf7c7e5fe6399e67672890@news.povray.org>
"Tek" <tek### [at] evilsuperbraincom> wrote:
> Ok the source for both objects is pretty small, so I'll just drop it in
> here:

That's two interesting isosurfaces Tek. Thank you for sharing the code.

I had a look at the source code for Greebelium to see if I could modify
it a bit so that I could understand it better. Below is the result.

--
Tor Olav
http://subcube.com

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7 ======= 8
======= 9

#include "colors.inc"

// Greebelium by Tek

#declare Pigment_Gr =
  pigment { color Gray50 }

#declare Pigment_BlWh =
  pigment {
    crackle
    metric 1
    solid
    colour_map {
      [ 0.5 color Black ]
      [ 0.5 color White ]
    }
  }

#declare Pigment_Funches =
  pigment {
    crackle
    metric 1
    pigment_map {
      [ 0.0 Pigment_Gr   ]
      [ 0.1 Pigment_BlWh ]
    }
  }

#declare FunchesFn =
  function {
    pigment {
      average
      pigment_map {
        #local I = 0;
        #while (I < 3)
          #local A = pow(4, -I);
          [ A Pigment_Funches scale A ]
          #local I = I + 1;
        #end // while
      }
    }
  }

#declare IsoFn =
  function {
    max(
      y - FunchesFn(x, y, z).x,
      0.5 + min(y, -FunchesFn(x, y, z).x)
    )
  }

isosurface {
  function { IsoFn(x, y, z) }
  max_gradient 20
  contained_by {
    box {
     -<5, 1, 5>,
      <5, 1, 5>
    }
  }
  pigment { color White }
}

// ===== 1 ======= 2 ======= 3 ======= 4 ======= 5 ======= 6 ======= 7 ======= 8
======= 9


Post a reply to this message

From: Thomas de Groot
Subject: Re: A couple of isosurfaces
Date: 14 Jul 2010 03:17:44
Message: <4c3d6498@news.povray.org>
"Tor Olav Kristensen" <tor### [at] TOBEREMOVEDgmailcom> schreef in bericht 
news:web.4c3cf7c7e5fe6399e67672890@news.povray.org...
> I had a look at the source code for Greebelium to see if I could modify
> it a bit so that I could understand it better. Below is the result.

Nicely done, Tor.

Thomas


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

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