Nebulabrot Fractal (OpenCL)





Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
Published on Mar 10, 2012

This is a (crude) implementation of a Nebulabrot renderer written in OpenCL (using FreePascal as the host language). The GPU was used to render a somewhat realtime Nebulabrot Fractal (there is no real notion of time with such fractals because they are the result of a random process which accept no well-defined concepts of "being currently rendered" and "finished rendering", but they converge relatively quickly).

Consult the internet to learn more about Nebulabrots. Basically they are another way of visualizing the mandelbrot set, and take quite a bit more computing power to render. They are rendered stochastically (probabilistically) which explains the slow convergence and noise visible in this video. The idea (put informally) is that points which are not in the mandelbrot set don't always converge to infinity very quickly, and in fact may spend quite a bit of time orbiting around the set before zooming to infinity. If we plot these orbits in an accumulation buffer, we obtain some sort of probability density graph which tells us how likely a point is to orbit through another given point. Interestingly, the resulting image is a fractal, which looks cloudy and ghostly, thus the name Nebulabrot.

A problem (which isn't really one) I ran into with OpenCL is that you cannot really stress your primary graphics card to the absolute maximum, because you also need to leave it some time for basic operations i.e. display the actual desktop. So if you do too much work at once your desktop will start to stutter, which is a bit annoying since it sort of defeats the "realtime" goal. It is probably best to use OpenCL on a second dedicated GPU which is not attached to a display, so you can keep it running indefinitely with no impact on desktop framerate (of course, as you suspected, I only have one graphics card).

- HD6950 (stock) GPU
- i5 2500k (overclocked to constant 3.7GHz on all four cores) CPU
- standard 7200rpm mechanical hard drive for recording (500GB Seagate, fwiw)

The fractals showed here were rendered at 1920x1080 (the video is recorded in realtime), and the resulting video was downsized to 1280x720 (2/3 downsampling ratio) for upload to Youtube. I cannot upload 1920x1080 videos directly because of the prohibitive file size.

The track is Mechanism Eight by Andrew "Necros" Sega.



When autoplay is enabled, a suggested video will automatically play next.

Up next

to add this to Watch Later

Add to

Loading playlists...