POV-Ray : Newsgroups : povray.binaries.images : Blurred apophysis meets traced cylinders : Re: Blurred apophysis meets traced cylinders Server Time
1 Aug 2024 00:22:27 EDT (-0400)
  Re: Blurred apophysis meets traced cylinders  
From: Carlo C 
Date: 2 Mar 2009 11:05:01
Message: <web.49ac02ed202941c2cc3c8ce00@news.povray.org>
"Peter Hertel" <peter@**nospam**hertel.no> wrote:
> Mid-week abstract anyone?
> Just a small test, which uses a few techniques which perhaps might be of
> interest for some?
> First, it's a simple way of randomly placing a lot of objects without them
> intersecting. The code should speak for itself, but I don't know if this method
> is entirely bulletproof?
> Second, I wanted to use an image I did with apophysis (
> http://www.apophysis.org/ ). The resolution was a bit too low though, and I
> lost the settings to remake it. So I blurred it by averaging the image several
> times in a while loop. I've blurred procedural textures this way before, but it
> works quite well with image_maps also.
>
> I'd love to see some "remixes" of this scene! The source is below, and I can
> post the background image if anyone's interested.
> (Pinnedyr means phasmatodea/walking sticks in Norwegian).
>
> -Peter
>
> // +w1920 +h1200 +a0.3
> // +w1920 +h400 +a0.3
>
> camera{
>         ultra_wide_angle
>         location <1,3,-5>*0.3 look_at y*1 angle 130
>         sky vrotate (<0,1,0>,z*40)
>         translate <-1,-0.5,-1>
>
>         right x*image_width/image_height
>         up y
> }
>
> light_source{<5,15,-10>1}
>
> #local TO = plane{y,0} // Trace Object
>
> #local Radius = 0.025; // Radius of cylinders
>
> #local S = seed(1337);
>
> #local X = 0;
> #while (X<1)
>         #local Shoot_Start     =
> vrotate(<1-rand(S)*0.5,3+sin(X*4*pi)*0.1+rand(S)*0.2,0>,y*360*rand(S));
>         #local Shoot_Direction =
>
vrotate(<-Shoot_Start.x+rand(S)*0.1,-1.3-rand(S)*0.5,-Shoot_Start.z+rand(S)*0.1>,y*10*rand(S));
>         #local Shoot_End       = trace(TO,Shoot_Start,Shoot_Direction);
>
>         #if(Shoot_End.y=0) // If it hits the plane in TO
>                 #ifndef(OBJ) // Final OBJect
>                         #local OBJ = merge{
>                 #else
>                         #local OBJ = merge{object{OBJ}
>                 #end
>                         cylinder{Shoot_Start,Shoot_End,Radius}
>                         sphere{Shoot_Start,Radius}
>                         sphere{Shoot_End,Radius}
>                 }
>                 #local TO =
>                 union{
>                         object{TO}
>                         cylinder{Shoot_Start,Shoot_End,Radius*2} // Radius
> doubled to avoid collision
>                 }
>         #end
> #local X = X+0.001; // Decrease to shoot more cylinders
> #end
>
> object{OBJ
>         texture{
>                 pigment {rgb 0.9 filter 0.9}
>                 finish{reflection {0.2,0.6} ambient 0.1 specular 0.4 phong 0.3
> irid{0.25 thickness 1}}
>         }
>         interior{ior 1.255 fade_color x*2 fade_power 2}
> }
>
> #local AP = 0.05; // increase/decrease to blur less/more
> // These settings worked well for my 1920x1200 image_map
> sky_sphere{
>         pigment{
>         average
>                 pigment_map{
>                         #local X = 0;
>                         #while (X<1)
>                                 [AP+X*AP, image_map{png
> "Apophysis-081026-214_1000.png" interpolate 2 map_type 1}rotate y*(35+1*X)]
>                         #local X = X+AP;
>                         #end
>                 }
>         }
> }

Thanks for the source!
:-)


Post a reply to this message

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