FurMark
Current Version: 1.13.0
»FurMark homepage
»FurMark 1.9.x Submissions

GPU Caps Viewer
Current Version: 1.21.0
»GPU Caps Viewer homepage
»GPU DB Submissions

PhysX FluidMark
Current Version: 1.5.2
»FluidMark homepage
»FluidMark 1.4.x Submissions

GeeXLab
Current Version: 0.4.0
»GeeXLab homepage
»GeeXLab Overview

GPU Shark
Current Version: 0.9.0
»GPU Shark homepage

TessMark
Current Version: 0.3.0
»TessMark homepage

ShaderToyMark
Current Version: 0.3.0
»ShaderToyMark homepage
»ShaderToyMark Scores

Blogs
»JeGX's HackLab

Geeks3D's Articles
»GPU Memory Speed Demystified

»Multi-Threading Programming Resources

»GeForce and Radeon OpenCL Overview

»How to Get your Multi-core CPU Busy at 100%

»How To Make a VGA Dummy Plug

»Night Vision Post Processing Filter


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

Language

Language:

3D Graphics Search Engine:

The Geeks Of 3D

 



Demoniak3D Julia Fractal Rendering On GPU


Demoniak3D Julia Fractal
Demoniak3D Julia Fractal
Demoniak3D Julia Fractal
Demoniak3D Julia Fractal




Download


Demoniak3D Julia Fractal Demo
Win32 Executable + Source code
Zip Archive - (2894k)
Release Date: January 18, 2008
For any bug report or feedback, please send an email to jegx[AT]ozone3d[DOT]net and add "[DEMO FEEDBACK]" to the subject. Vous can also post your feedbacks in the demo's topic: Demoniak3D Demo - Julia Fractal.

Recommended configuration:
  • Operating System: Windows XP SP2
  • Processor: Pentium III or AMD Athlon and up processor - 800 MHz and up.
  • Memory: 1Gb RAM and up
  • Graphics Controller: ATI Radeon 9700 and up (with the latest Catalyst drivers) or GeForce 6600 and up (with the latest Forceware drivers)
  • Resolution: 1024x768 - 32 bits/pixel

Description

This demo of the Julia fractal rendering is based on the next pages:

The color palette is stored in an one dimensional texture (1D) and the c constant in the fractal equation varies with the time to produice the animation. This c constant is the same for all points of the Julia's set and this is the difference with the Mandelbrot rendering.

zn+1 = zn2 + c

Instructions for use:
This demo requires an OpenGL 1.5 compliant graphics card.. Unzip the archive and start START_DEMO_Julia_Fractal_GPU.bat. That's all folk!

The demo's source code is located in the DEMO_Julia_Fractal_GPU.xml file.

And as usual, if you want to experience realtime 3d coding, just go there: Demoniak3D Home Page

Here is Julia'set vertex shader in OpenGL Shading Language:

OpenGL.org

varying vec3 position;
	uniform float max_size;
	
	void main(void)
	{
		gl_Position = ftransform();
		position  = vec3(gl_MultiTexCoord0 - 0.5) * max_size;
	}

and here is the GLSL pixel shader (this is the core of the algorithm):

varying vec3 position;
uniform float center_x;
uniform float center_y;
uniform int max_iterations;
uniform sampler1D color_palette;
uniform vec2 c;

int DoJulia( float a, float b )
{
	vec2 z = vec2(a, b);
	float 	tmp, sq = dot(z, z);
	int 	counter = 0;

	while( counter<max_iterations && sq<4.0 )
	{
		tmp = z.x;
		z.x = ((tmp*tmp) - (z.y*z.y)) + c.x;
		z.y = ((2.0 * tmp) * z.y) + c.y;
		sq = dot(z, z);
		counter++;
	}
	
	return( counter );
}

void main (void)
{
	float c_real = position.x + center_x;
	float c_imag = position.y + center_y;
	int num_iterations = DoJulia( c_real, c_imag );
	if( num_iterations == max_iterations )
	{
		gl_FragColor = texture1D(color_palette, 0.0);			
	}
	else
	{
		gl_FragColor = texture1D(color_palette, 
		                         num_iterations/100.0);			
	}
}


Author Profile


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





GLSL Hacker
»GLSL Hacker Homepage


PhysX 3 cloth demo


Normal visualizer with GS


Compute Shaders test on Radeon


Raymarching in GLSL



Geeks3D latest news


Geeks3D forum news


Misc
»Texture DataPack #1
»Asus Silent Knight CPU Cooler
Page generated in 0.063616991043091 seconds.