POV-Ray : Newsgroups : povray.off-topic : Awesome. 3D Mandelbrots Server Time
5 Sep 2024 01:25:42 EDT (-0400)
  Awesome. 3D Mandelbrots (Message 11 to 17 of 17)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Tom Austin
Subject: Re: Rendering technology
Date: 20 Nov 2009 10:08:44
Message: <4b06b0fc$1@news.povray.org>
Invisible 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?


 From the site itself:

Any decent 3D software to render the beast?
Not from what I've seen. I originally looked for a 3D program, but 
nothing out there seems to render arbitrary functions. Perhaps POVray 
comes closest with its isosurface approach, but even then one can't use 
local variables or constructs such as While loops.

In the end, I had to create my own renderer (as did the other peeps at 
FractalForums.com)


Post a reply to this message

From: Invisible
Subject: Re: Rendering technology
Date: 20 Nov 2009 10:13:35
Message: <4b06b21f$1@news.povray.org>
Tom Austin wrote:

>> Any idea how you render something like this?
> 
> 
>  From the site itself:
> 
> In the end, I had to create my own renderer (as did the other peeps at 
> FractalForums.com)

Indeed, my plan is to write a custom renderer. I was more asking about 
which kinds of algorithms might be appropriate to use.


Post a reply to this message

From: scott
Subject: Re: Rendering technology
Date: 20 Nov 2009 10:51:37
Message: <4b06bb09@news.povray.org>
> Indeed, my plan is to write a custom renderer. I was more asking about 
> which kinds of algorithms might be appropriate to use.

AFAIK they are just using a normal backward raytracer like POV, but with 
some optimisations to find the fractal surface quickly rather than just 
binary search along the ray.  You know how when you render a 2D mandelbrot 
you can use that double-log formula to get a smooth iteration count?  Well I 
think they're using a similar formula to get an indicator of how far away 
they are from the surface.  If you calculate that at 2 or 3 points close 
together on your ray, you should be able to extrapolate to get a pretty good 
estimate of where the surface actually is.  Repeat until you're at 
sufficient accuracy.

To estimate the surface normal I think you could re-calculate the fractal 
(using the smooth iteration count formula) a short distance away on each 
axis.  This can then be used for the lighting algorithm or your choice (it 
seems a lot of them then shoot a few hundred rays out for some AO lighting 
in addition to diffuse and shadows).

It certainly looks exciting, after my df3 isosurface attempts I'm very 
tempted to try this myself too.  I'm going to think about if a GPU version 
is possible.


Post a reply to this message

From: abram
Subject: Re: Rendering technology
Date: 22 Nov 2009 11:00:00
Message: <web.4b095f70dce0a2f34861b0db0@news.povray.org>
If you really want to render the mandelbulb with povray you either have to
unroll the iterations or you have modify povray itself. I chose the latter.

You can see here how Povray rendered an isosurface using a mandelbulb function.
http://softwareprocess.es/x/x/mandelbulb/1povAA.png

I just added a user function in fnintern.cpp. You can do this too or you can use
my patch found at:
http://softwareprocess.us/index.cgi/Mandelbulb

The patch itself: http://softwareprocess.es/x/x/mandelbulb/fnintern.cpp.patch

abram

"scott" <sco### [at] scottcom> wrote:
> > Indeed, my plan is to write a custom renderer. I was more asking about
> > which kinds of algorithms might be appropriate to use.
>
> AFAIK they are just using a normal backward raytracer like POV, but with
> some optimisations to find the fractal surface quickly rather than just
> binary search along the ray.  You know how when you render a 2D mandelbrot
> you can use that double-log formula to get a smooth iteration count?  Well I
> think they're using a similar formula to get an indicator of how far away
> they are from the surface.  If you calculate that at 2 or 3 points close
> together on your ray, you should be able to extrapolate to get a pretty good
> estimate of where the surface actually is.  Repeat until you're at
> sufficient accuracy.
>
> To estimate the surface normal I think you could re-calculate the fractal
> (using the smooth iteration count formula) a short distance away on each
> axis.  This can then be used for the lighting algorithm or your choice (it
> seems a lot of them then shoot a few hundred rays out for some AO lighting
> in addition to diffuse and shadows).
>
> It certainly looks exciting, after my df3 isosurface attempts I'm very
> tempted to try this myself too.  I'm going to think about if a GPU version
> is possible.


Post a reply to this message

From: Nicolas Alvarez
Subject: Re: Rendering technology
Date: 22 Nov 2009 19:37:33
Message: <4b09d94d$1@news.povray.org>
abram wrote:
> If you really want to render the mandelbulb with povray you either have to
> unroll the iterations or you have modify povray itself. I chose the
> latter.
> 
> You can see here how Povray rendered an isosurface using a mandelbulb
> function. http://softwareprocess.es/x/x/mandelbulb/1povAA.png
> 
> I just added a user function in fnintern.cpp. You can do this too or you
> can use my patch found at:
> http://softwareprocess.us/index.cgi/Mandelbulb
> 
> The patch itself:
> http://softwareprocess.es/x/x/mandelbulb/fnintern.cpp.patch

That's awesome!

"Later I considered that if you were only going to do so many iterations 
that povray's own internal language would've sufficed as it'd just be loop 
unrolling."

Heh, I don't think so... It would have been a few orders of magnitude 
slower. How long did your two renders take?


Post a reply to this message

From: abram
Subject: Re: Rendering technology
Date: 22 Nov 2009 21:10:00
Message: <web.4b09ee39dce0a2f34861b0db0@news.povray.org>
Nicolas Alvarez <nic### [at] gmailcom> wrote:
> "Later I considered that if you were only going to do so many iterations
> that povray's own internal language would've sufficed as it'd just be loop
> unrolling."
>
> Heh, I don't think so... It would have been a few orders of magnitude
> slower. How long did your two renders take?

27 minutes for 1920x1200 with nothing on (no AA, etc.).

27 hours for 1920x1200 with everything I could turn on at the command line
(radiosity and antialiasing).

The scenes are garbage, I just had to see the Mandelbulb. I'm hoping that
someone with some taste picks up this patch and produces something nice.

abram


Post a reply to this message

From: clipka
Subject: Re: Rendering technology
Date: 23 Nov 2009 01:20:29
Message: <4b0a29ad@news.povray.org>
Nicolas Alvarez schrieb:

> "Later I considered that if you were only going to do so many iterations 
> that povray's own internal language would've sufficed as it'd just be loop 
> unrolling."
> 
> Heh, I don't think so... It would have been a few orders of magnitude 
> slower.

Not really. more like a factor of 4 or so, from my experience. Enough to 
want the POV-Ray internal function, but not enough to be unable to live 
without.


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

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