Logo by stereoman - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Support us via Flattr FLATTR Link
 
*
Welcome, Guest. Please login or register. March 28, 2024, 11:06:57 PM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: 1 ... 4 5 [6] 7 8 9   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Fragmentarium - an IDE for exploring 3D fractals and other systems on the GPU.  (Read 51030 times)
0 Members and 1 Guest are viewing this topic.
tit_toinou
Iterator
*
Posts: 192


« Reply #75 on: January 08, 2012, 11:02:32 AM »

Features that could be useful :
  • Betters sliders for float : there's no "fine tune" for example.
  • Click a pixel in the image => we get a vec2 coordinates (for Julia seeds). The same thing for the Show-map.
  • A user control to provide an image from hard drive. Then we coders would be able to use them (getPixel(x,y) etc..).
  • double precision instead of float
  • For 2DJulia.frag : Separate crunching of fractal and coloring pixels.
    To do so : First compute fractal, then store useful values. getColor2D() then gets the information it needs from the stored values. The result is that the user can tweak colors parameters more easily (since the output will be nearly immediate - no fractal is to be crunched when changing colors settings).

I don't understand how we can render animations. I see the "Render mode : Animation" but i don't know where do we choose uniforms values for t=0% and uniforms values for t=100%.
Logged

DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #76 on: January 08, 2012, 11:49:27 AM »

Uploaded at ImageFra.me

A sample render with different rotation stlyes for the dodecahedral fractal. You can see a bunch of different effects... An universe of fractals shocked A Beer Cup

And btw you can clearly see the effect of dropping the last two folds; rotated fractals are aperiodic (not fully symmetrical). This gives more variety to the patterns crazy eyes
« Last Edit: January 08, 2012, 11:52:54 AM by DarkBeam » Logged

No sweat, guardian of wisdom!
knighty
Fractal Iambus
***
Posts: 819


« Reply #77 on: January 08, 2012, 12:43:58 PM »

@knighty: I can see I have some catching up to do! I don't know what RIFS are, nor what the new Mandelbulb3D d.IFS do, or your mdifs.frag. Do you have any pointers? Which one of Hart's paper many papers describe this - is it the 'paradigm' one?
Sorry! My bad.
here are the links to the documents I was reffering to:
J. C. Hart's PhD thesis.
John C. Hart, Thomas A. DeFanti:"Efficient Antialiased Rendering of 3-D Linear Fractals".
D. Hepting's MSc thesis.

About dIFS/KIFS_with_instancing: It's the same idea as with plain IFS and R-IFS.
The general formulation if A KIFS is someting like this:
Code:
loop:{
   z=fold(z);
   z=scale*(z-c)+c;
   dr*=scale;
}
DE=(length(z)-bounding_volume_radius)/dr
KIFS with instancing would be:
Code:
dmin=distanceToAPrimitive(z);//that primitive could be a basic shape, a fractal or a dIFS/KIFS_with_instancing
loop:{
   z=fold(z);
   z=scale*(z-c)+c;
   dr*=scale;
   dmin=min(dmin,distanceToAPrimitive(z)/dr);//we can also take different primitives depending on current iteration
}
DE=dmin;

The blue kleinians were rendered using 60 frames (or rays/pixel). So they'd be 60x slower :-) On the other hand this is still only a few seconds on a good GPU.
Thank you. smiley
Logged
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #78 on: January 08, 2012, 01:40:42 PM »

@tit_toinou: Good and relevant suggestions.

Features that could be useful :
  • Betters sliders for float : there's no "fine tune" for example.

You can finetune float sliders by selecting them in the GUI (their widget will change to dark grey). Now, if you give the 3D canvas keyboard focus (which is also needed for keyboard navigation), you can use the arrow keys to fine tune: left/right changes value, up/down changes scale.

Quote
  • Click a pixel in the image => we get a vec2 coordinates (for Julia seeds). The same thing for the Show-map.

Would be nice, but difficult to implement. The CPU doesn't know how the GPU vertex shader transforms the input coordinates. And returning data from the GPU is not easy - you'd have to create a FBO just to do it.

Quote
A user control to provide an image from hard drive. Then we coders would be able to use them (getPixel(x,y) etc..).

there is a special syntax for that in Fragmentarium:

[/list]
Code:
uniform sampler2D texture; file[texture2.jpg]
...
vec3 col = texture2D(texture,uv).xyz;
    Relative file paths are searching according to the path of the executing script, and the include paths defined in preferences.

Quote
  • double precision instead of float
This is covered in the FAQ: http://blog.hvidtfeldts.net/index.php/2011/12/fragmentarium-faq/

Quote
  • For 2DJulia.frag : Separate crunching of fractal and coloring pixels.
    To do so : First compute fractal, then store useful values. getColor2D() then gets the information it needs from the stored values. The result is that the user can tweak colors parameters more easily (since the output will be nearly immediate - no fractal is to be crunched when changing colors settings).

This requires multiple shaders and passes. It also requires that the user GUI system is made more intelligent, so that changing a slider for a shader doesn't trigger an update for earlier shaders.

I working on multiple buffers in Fragmentarium with progressive rendering right now, and it would be nice to able to change the HDR renderinging (e.g. tonemapping and gamma correction) without a complete recalculation. It would also be nice to adjust the coloring, but at least for the 3D fractals, you need to store a lot of information: normals, base color, AO contributions and so on. And it does not play nicely together with progressive rendering, since you cannot accumulate these attributes - only the final color values can be properly accumulated I think.

Quote
I don't understand how we can render animations. I see the "Render mode : Animation" but i don't know where do we choose uniforms values for t=0% and uniforms values for t=100%.

Animations are terrible primitive at the moment. The only thing you can do is to use the:
'uniform float time;'
which is updated for the frames in the animation. So all animation must be programmed based on this.

Of course, the original plan was to make it possible to change the uniforms and automatically interpolate between keyframes. Hopefully, when I get some time :-)
Logged
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #79 on: January 08, 2012, 01:52:52 PM »

@darkbeam:

Nice images. There are many interesting ways to modify the K-IFS, one thing you should consider in a the M3D formula, is to make it possible to move the offset. Another variation, which I like in particular, is to move some of the folds outside the iteration loop - this creates a hollower fractal, see e.g. http://www.fractalforums.com/3d-fractal-generation/kaleidoscopic-%28escape-time-ifs%29/msg17328/#msg17328

@knighty:

Thanks a lot for the links - I haven't seen Hart's PhD thesis before - it looks interesting and well organised.
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #80 on: January 08, 2012, 03:55:25 PM »

That is equivalent to a pretransform (or a hybridized fmla), so it can be easily achieved wink

I am examining btw your NewMenger, I like it a freaking lot cocaine
Logged

No sweat, guardian of wisdom!
tit_toinou
Iterator
*
Posts: 192


« Reply #81 on: January 08, 2012, 06:23:08 PM »

@Syntopia: Thanks for the information.
For animation it would be pretty simple to code it..
And the user would just have to select two "Presets" !
One other thing missing : to add a "Preset" whenever we want from choosen parameters.

However i've manage to do that little animation (Kaliset formulae z->abs(scale/z)+c & my own coloring technique with cosine) :
<a href="http://www.youtube.com/v/I7G23m3N9no&rel=1&fs=1&hd=1" target="_blank">http://www.youtube.com/v/I7G23m3N9no&rel=1&fs=1&hd=1</a>

Fragmentarium is really awesome smiley .
Logged

subblue
Conqueror
*******
Posts: 116



WWW
« Reply #82 on: January 08, 2012, 11:47:54 PM »

A sample render with different rotation stlyes for the dodecahedral fractal. You can see a bunch of different effects... An universe of fractals shocked A Beer Cup
You can see these styles in motion here wink
<a href="http://vimeo.com/moogaloop.swf?clip_id=18842873&amp;server=vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=01AAEA" target="_blank">http://vimeo.com/moogaloop.swf?clip_id=18842873&amp;server=vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=01AAEA</a>
Logged

www.subblue.com - a blog exploring mathematical and generative graphics
blob
Strange Attractor
***
Posts: 272



« Reply #83 on: January 09, 2012, 01:05:42 AM »

Hello, the latest fragmentarium does not render anymore here and I am seeing this in the log:

Quote
Could not link shaders: Fragment info
-------------
(400) : warning C7506: OpenGL does not define the global function exp
(204) : error C5051: profile does not support conditional returns
(204) : error C5051: profile does not support conditional returns

This video card supports: OpenGL1.1, OpenGL1.2, OpenGL1.3, OpenGL1.4, OpenGL1.5, OpenGL2.0

Have the opengl or video card requirements increased. I am using a relatively old nVidia 7950 GT.
Logged
ker2x
Fractal Molossus
**
Posts: 795


WWW
« Reply #84 on: January 09, 2012, 03:59:35 PM »

Hello, the latest fragmentarium does not render anymore here and I am seeing this in the log:

Quote
Could not link shaders: Fragment info
-------------
(400) : warning C7506: OpenGL does not define the global function exp
(204) : error C5051: profile does not support conditional returns
(204) : error C5051: profile does not support conditional returns

This video card supports: OpenGL1.1, OpenGL1.2, OpenGL1.3, OpenGL1.4, OpenGL1.5, OpenGL2.0

Have the opengl or video card requirements increased. I am using a relatively old nVidia 7950 GT.


i didn't knew GLSL supported conditional return (on any version).
Ewwwww  vomit; feeling sick
Logged

often times... there are other approaches which are kinda crappy until you put them in the context of parallel machines
(en) http://www.blog-gpgpu.com/ , (fr) http://www.keru.org/ ,
Sysadmin & DBA @ http://www.over-blog.com/
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #85 on: January 09, 2012, 06:37:08 PM »

A sample render with different rotation stlyes for the dodecahedral fractal. You can see a bunch of different effects... An universe of fractals shocked A Beer Cup
You can see these styles in motion here wink
<a href="http://vimeo.com/moogaloop.swf?clip_id=18842873&amp;server=vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=01AAEA" target="_blank">http://vimeo.com/moogaloop.swf?clip_id=18842873&amp;server=vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=01AAEA</a>

Video is mind blowing, but it refers to one style with changing angles; I used the same exact angles for both renders but changed the position of the rotation inside the formula. More, my formula is a bit less regular than that (should show more interesting patterns) wink
Logged

No sweat, guardian of wisdom!
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #86 on: January 09, 2012, 10:52:40 PM »

Hello, the latest fragmentarium does not render anymore here and I am seeing this in the log:

Quote
Could not link shaders: Fragment info
-------------
(400) : warning C7506: OpenGL does not define the global function exp
(204) : error C5051: profile does not support conditional returns
(204) : error C5051: profile does not support conditional returns

This video card supports: OpenGL1.1, OpenGL1.2, OpenGL1.3, OpenGL1.4, OpenGL1.5, OpenGL2.0

Have the opengl or video card requirements increased. I am using a relatively old nVidia 7950 GT.


i didn't knew GLSL supported conditional return (on any version).
Ewwwww  vomit; feeling sick

Conditional returns are allowed by the GLSL standard, and should also be supported on your card, which should be a fp40 profile (http://http.developer.nvidia.com/Cg/fp40.html)

This profile compiles with no errors on my computer:
Code:
C:\Program Files (x86)\NVIDIA Corporation\Cg\bin>cgc -profile fp40 -oglsl -strict -nocode e:\test2.glsl
e:\test2.glsl
e:\test2.glsl(219) : warning C7011: implicit cast from "int" to "float"
e:\test2.glsl(230) : warning C7011: implicit cast from "int" to "float"
616 lines, 2 warnings, 0 errors.

The warning about the 'exp' function is in particular puzzling. This function was added in version 1.1 of the GLSL spec?

Are you by any chance using old gfx drivers?

It may also be that I've made some kind of code construct which confuses the compiler or catches a bug in it. The current version of Fragmentarium also crashes the ATI compiler on Mac's, which also annoys me. Any help on the Mac issue is appreciated, especially since I can not test this myself.
Logged
blob
Strange Attractor
***
Posts: 272



« Reply #87 on: January 10, 2012, 12:20:15 AM »

The warning about the 'exp' function is in particular puzzling. This function was added in version 1.1 of the GLSL spec?

Are you by any chance using old gfx drivers?

Yeah I am using old drivers as my operating system is Windows ME, they are version 82.something and they seem to be from around 2006. Previous versions of fragmentarium were running fine though, not overly fast but still useable.

Don't worry too much about it.
Logged
blob
Strange Attractor
***
Posts: 272



« Reply #88 on: January 13, 2012, 08:54:14 AM »

After fiddling a bit I found out that I can render many examples by using the DE-Raytracer.frag from version 0.8 and I think I can render all of them by using the Fast-Raytracer.frag so that's pretty cool.  afro

And rendering a 8000x6000 image takes just about 2 minutes on that old GPU, amazing!  shocked
Logged
ker2x
Fractal Molossus
**
Posts: 795


WWW
« Reply #89 on: January 13, 2012, 02:34:03 PM »

After fiddling a bit I found out that I can render many examples by using the DE-Raytracer.frag from version 0.8 and I think I can render all of them by using the Fast-Raytracer.frag so that's pretty cool.  afro

And rendering a 8000x6000 image takes just about 2 minutes on that old GPU, amazing!  shocked

Yup. and on a powerfull gfx card (like GTX470) it's really fun to play with parameters in near-realtime (including DOF, Antialiasing, Reflection, ...) then render a 50MPixel version in 1 or 2mn smiley
I'm learning GLSL now that i discovered the impressive render (and speed!) we can do using only Fragment Shader   grin
Logged

often times... there are other approaches which are kinda crappy until you put them in the context of parallel machines
(en) http://www.blog-gpgpu.com/ , (fr) http://www.keru.org/ ,
Sysadmin & DBA @ http://www.over-blog.com/
Pages: 1 ... 4 5 [6] 7 8 9   Go Down
  Print  
 
Jump to:  


Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.193 seconds with 25 queries. (Pretty URLs adds 0.009s, 2q)