My Account


RSS
oZone3D.Net RSS Feeds»RSS 2.0 Feeds

Blogs
»Demoniak3D Blog
»JeGX's Infamous Lab

Sponsors


Modul8: real time video mixing and compositing


Link to Us

oZone3D.Net 100% Realtime 3D

»All Links

Web Partners

www.geeks3d.com
www.benchmarkhq.ru
www.tdt3d.com
www.steph3d.net
www.g-truc.net
www.worldpcspecs.com


Banners Exchange

www.jmax-hardware.com
cgindia.blogspot.com
grapejuice.c.la
www.game-lab.com


Links Exchange

»CYGAD's 3DXtra

Search
Google
Web
oZone3D.Net
 
The Mandelbrot Set: Colors of Infinity

By Nathan Reed - www.reedbeta.com
and
Jérôme Guinot - www.oZone3D.Net

Initial draft: January 25, 2006




[ Index ]

Page 1 | Page 2 | Page 3 | Page 4 | Page 5 | Page 6



6 - Further Possibilities


General-purpose GPU processing is a new and exciting field, and in particular there are many more possibilities for fractal rendering on the GPU that have not yet been explored.  The interested reader should feel free to expand on the algorithms above.  Here are a few ideas.

6.1 - The Distance Estimator

It turns out that the iterative formula used in this article is not the only way to get information about points in the Mandelbrot set.  There exists a function called the distance estimator for the Mandelbrot set.  To define it, we first need the derivative of the sequence zn:

z'0 = 1
z'n+1 = 2z'nzn

This is simply a second sequence that can be calculated alongside the sequence zn.  Once we have this, the distance estimator is:

d(zn) = |zn| ln |zn2| / |z'n|

Here the vertical bars mean the distance from the origin of the complex number. The limit, as n goes to infinity, of this function gives the distance from the point c to the nearest point that is in the Mandelbrot set.  This can be used to increase the image quality with fewer iterations, since the sequence can be stopped early if the distance estimator converges (i.e. if the difference between successive values of d(zn) is small).

Another use of the distance estimator is in antialiasing.  Since the function varies continuously over the points in the plane, it is possible to calculate (approximately) its average over the pixel area.

6.2 - Buddhabrots

The so-called Buddhabrot is a variation of the Mandelbrot rendering technique.  To produce a Buddhabrot, we form the sequence zn at each point as before, but instead of coloring that point based on the behavior of the sequence, we increment a counter for each of the points that the sequence lands on.  Over the entire set, some areas are more frequently hit by sequences than others; the image that is produced, when it is turned sideways, looks a little bit like Eastern depictions of the sitting Buddha.

For more information and ideas relating to Buddhabrots, see this page.

6.3 - Julia Sets

Julia sets are a little bit like a generalization of the Mandelbrot set.  To render a Julia set, we form the sequence as usual, but instead of using the starting point as the value of c, we use a single value of c for all the points in the plane.  This means there is a unique Julia set for every possible value of c.

There is an intriguing relationship between the Mandelbrot set and Julia sets.  Those Julia sets produced from a value of c that comes from outside the Mandelbrot set are "dust"—they consist of infinitely many scattered points, without any connection between them.  Value of c from inside the Mandelbrot set produce Julia sets that are connected, like the Mandelbrot set itself.  The most "interesting" Julia sets, those which display the greatest variation of detail and fractal self-similiarity, are those which come from c-values near the boundary of the Mandelbrot set.

6.4 - Higher Dimensions

Complex numbers define operations like multiplication and division in two dimensions.  However, it is also possible to define similiar operations in four dimensions, eight, sixteen, or any power of two.  To figure out what the operations are, one can use the Cayley-Dickson construction.  It is then possible to calculate fractals in four (or even more) dimensions.  To display these on a monitor, however, one must take a three-dimensional "slice" of the fractal.  Some more information about four-dimensional Julia sets can be found here.

Fractals are among the most intriguing mathematical objects, and part of their wonder is that they are very easy to understand and create.  The possibilities are unlimited, and there are many more kinds of fractals and methods of rendering them than could possibly be discussed in these few pages.  Hopefully, this article has piqued your interest, and perhaps you will be the one to discover an entirely new type of fractal!



7 - Further Resources



8 - Downloads



Download the demos source codes
Update: January 25, 2006
GPGPU Mandelbrot Demo





9 - About the Authors


Author:Nathan 'Reedbeta' Reed
Country:California
Contact:reedbeta [at] yahoo [dot] com
Homepage:www.reedbeta.com

Nathan Reed is currently a college student pursuing his bachelor's in Computer Science. In his free time he likes to play around with sweet graphics algorithms, and is currently working on a raytracer.



Author:Jerome 'JeGX' Guinot
Country:Switzerland
Contact:jegx [at] ozone3d [dot] net
Homepage:www.ozone3d.net

Jerome Guinot is currently focusing on Demoniak3D Demo-System development and is the webmaster of oZone3D.Net web site.



[ Index ]

Page 1 | Page 2 | Page 3 | Page 4 | Page 5 | Page 6







Language:


Demoniak3D
Current Version: 1.23.0
»Demoniak3D
»Download
»Libraries and Plugins
»Demos
»Online Help - Reference Guide
»Codes Samples


GPU Caps Viewer
Current Version: 1.5.2
»GPU Caps Viewer
»GPU DB Submissions


FurMark
Current Version: 1.4.0
»FurMark
»Benchmark Submissions


PhysX FluidMark
Current Version: 1.0.0
»PhysX FluidMark
»Benchmark Submissions


Geeks3D News


Sponsors



Visitors Map

Page generated in 0.12092995643616 seconds.