POV-Ray : Newsgroups : povray.off-topic : Awesome. 3D Mandelbrots : Re: Rendering technology Server Time
4 Sep 2024 21:22:25 EDT (-0400)
  Re: Rendering technology  
From: PM 2Ring
Date: 18 Nov 2009 10:25:01
Message: <web.4b0410c8dce0a2f3f4c648ed0@news.povray.org>
Greetings, POV-Ray people! I've had a bit of a break from raytracing for a while
& have just started getting into it again a couple of months ago. So some of my
old POV-Ray knowledge is a little rusty. :)


Invisible <voi### [at] devnull> wrote:
> Darren New wrote:
> > http://www.skytopia.com/project/fractal/mandelbulb.html#renders
>
> Any idea how you render something like this?
>
> I mean, I suppose you could use a sphere-tracing algorithm like
> POV-Ray's isosurface{} construct. But is there any better way?

I've been playing with the Mandelbulb for the last few days. I generate the
voxel information in Python, but I plan to change that to C shortly.

My first attempts simply rendered each voxel as a sphere or box, but it took
ages to parse the data. I've also tried to render the Mandelbulb as a blob of
spheres, but it took ages to render. I got some interesting images, but the
shape of the Mandelbulb is dominated by the artifacts from the process of
turning a rectangular 3D array of spheres into a blob.

My more recent versions generate the data as a simple df3 file, with a value of
255 for voxels inside the Mandelbulb & 0 outside. My largest data file so far is
300x300x300. I tried rendering this as an emissive media, but it just looks like
a big cloud. :(

My most successful images render the Mandelbulb as an isosurface. The image
linked below uses a slope based pigment.

#declare f = function{pattern{density_file df3 FName interpolate 1}}

isosurface {
    function{f(x, y, z)}
    contained_by{box{0, 1}}
    threshold 0.5
    max_gradient Max_gradient
    accuracy 0.01
    open

    translate -0.5
}

http://i2.photobucket.com/albums/y43/PM2Ring/MandelbulbD7S90.jpg


Post a reply to this message

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