Logo by Pauldelbrot - 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: Follow us on Twitter
 
*
Welcome, Guest. Please login or register. April 20, 2024, 07:08:35 AM


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 [2] 3   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: Procedural aperiodic fractals  (Read 4198 times)
0 Members and 1 Guest are viewing this topic.
tomkh
Alien
***
Posts: 24


« Reply #15 on: September 10, 2010, 03:38:16 AM »

New .kc works nice smiley

In fact I'm working on new fractal caves recently... where instead of symmetries and regularities, I try to make them as irregular as possible - a kind of opposite approach to what most people are doing in a fractal art (of course symmetries and patterns are still cool to look at).

I am still working out the theory and want to publish it later, and still lacks certain tools (aka good renderer).
I was thinking recently about distance field rendering but it's hard to say if this is the best approach for my new caves though.
My first results are a bit periodic (and here's why I did research in aperiodic tilings : P),
but I will share some early screenshot and movie (I did it just out of polys for now, VRay).
Here is the movie (not yet released anywhere, keep in mind it should zoom in much nicer and show up more detail : P I'm working on it):
http://moonedit.com/tom/fractalrock.mov


* fractalrock.jpg (66.37 KB, 626x426 - viewed 93 times.)
« Last Edit: September 10, 2010, 03:51:54 AM by tomkh » Logged
Tglad
Fractal Molossus
**
Posts: 703


WWW
« Reply #16 on: September 10, 2010, 04:11:56 AM »

Beautiful, is it an irregular tetrahedron with the same shape (scaled down) attached to the 4 faces and so on?

I tried something a little similar http://www.fractalforums.com/3d-fractal-generation/kaleidoscopic-(escape-time-ifs)/msg17229/#msg17229 which was just a KIFS with a random folding plane each iteration. Your rock beats my ones though  cheesy
Logged
tomkh
Alien
***
Posts: 24


« Reply #17 on: September 10, 2010, 05:23:57 PM »

My fractals are a bit different. They are actually plain IFS, just a very special class with automatically generated functions (many of them).
I think we are at a point in "3d fractal art" that it's not so much about method, but about picking the right paramaters.
My research is solely based on this observation and I am mostly working on algorithms that will generate desired/nice looking parameters/functions for me.

Anyway, I have read your post. And random foldings is great idea !!!
I've tried to use your idea to extend knighty evaldraw script smiley

Knighty is using abs() function to mirroring the space by fundamental axes.
What I did is a obvious generalization of abs() function.
We can call it "mirror" here, but I hard coded in in a script:
   mirror(x,y,z, dx,dy,dz)
And you can provide any plane normal (dx,dy,dz) as a mirror.
Now, we can still use it instead of abs:
   abs(x) = mirror(x,y,z, -1,0,0)
   abs(y) = mirror(x,y,z, 0,-1,0)
   abs(z) = mirror(x,y,z, 0,0,-1)
But we can try different variations of course.
I have actually tried to not go too far beyond fundamental axes, in order to keep the good density of zeros in a limit set.

If you are interested, here is the modifed script:
http://moonedit.com/tom/Random-folding.kc

I attach screenshots of randomizing simple octahedral KIFS, with increasing randomization factor (RANDFACT is increasing here: 0, .1, .2, .3, .4).
Of course all pictures rendered by modified Knighty script smiley


* random_kifs_03.jpg (33.37 KB, 348x337 - viewed 361 times.)

* random_kifs_04.jpg (32.23 KB, 340x340 - viewed 346 times.)

* random_kifs_05.jpg (29.09 KB, 342x340 - viewed 357 times.)

* random_kifs_06.jpg (30.5 KB, 347x342 - viewed 356 times.)
Logged
tomkh
Alien
***
Posts: 24


« Reply #18 on: September 10, 2010, 05:25:45 PM »

And last picture with RANDFACT = .4


* random_kifs_07.jpg (28.66 KB, 327x342 - viewed 352 times.)
Logged
tomkh
Alien
***
Posts: 24


« Reply #19 on: September 10, 2010, 05:26:46 PM »

Oh, and of course the sample "rocks"...


* random_kifs_01.jpg (120.58 KB, 760x642 - viewed 98 times.)

* random_kifs_02.jpg (117.81 KB, 720x659 - viewed 92 times.)
Logged
tomkh
Alien
***
Posts: 24


« Reply #20 on: September 10, 2010, 05:41:12 PM »

It turns out TETRA gives a much more rocky result, here it is:


* random_kifs_08.jpg (105.94 KB, 701x618 - viewed 96 times.)

* random_kifs_09.jpg (87.72 KB, 669x623 - viewed 94 times.)
Logged
tomkh
Alien
***
Posts: 24


« Reply #21 on: September 10, 2010, 06:28:48 PM »

A dog face made of rock ? smiley


* random_kifs_10.jpg (150.64 KB, 1062x714 - viewed 96 times.)
Logged
knighty
Fractal Iambus
***
Posts: 819


« Reply #22 on: September 11, 2010, 12:29:37 AM »

New .kc works nice smiley

In fact I'm working on new fractal caves recently... where instead of symmetries and regularities, I try to make them as irregular as possible - a kind of opposite approach to what most people are doing in a fractal art (of course symmetries and patterns are still cool to look at).

I am still working out the theory and want to publish it later, and still lacks certain tools (aka good renderer).
I was thinking recently about distance field rendering but it's hard to say if this is the best approach for my new caves though.
My first results are a bit periodic (and here's why I did research in aperiodic tilings : P),
but I will share some early screenshot and movie (I did it just out of polys for now, VRay).
Here is the movie (not yet released anywhere, keep in mind it should zoom in much nicer and show up more detail : P I'm working on it):
http://moonedit.com/tom/fractalrock.mov

My fractals are a bit different. They are actually plain IFS, just a very special class with automatically generated functions (many of them).
I think we are at a point in "3d fractal art" that it's not so much about method, but about picking the right paramaters.
My research is solely based on this observation and I am mostly working on algorithms that will generate desired/nice looking parameters/functions for me.
Wow! nice rendering. Are you using Hart's method?
I have derived a similar method for KIFS. Not finished nor optimised but if you are interrested here is the script.

Anyway, I have read your post. And random foldings is great idea !!!
I've tried to use your idea to extend knighty evaldraw script smiley
Indeed! Its a great idea. and nice results.
Just to clarify things: In KIFS the folding planes can be arbitrary. Abs() is just for the implementation of special cases where the planes are centered at (0,0,0) and are axis aligned.
Logged
Tglad
Fractal Molossus
**
Posts: 703


WWW
« Reply #23 on: September 11, 2010, 01:23:18 AM »

Are you randomising the directions at each iteration (but the same for all points)?
Logged
tomkh
Alien
***
Posts: 24


« Reply #24 on: September 11, 2010, 01:46:17 AM »

Quote
Wow! nice rendering. Are you using Hart's method?

I was rendering this grey thing with polygons, really wink and it took a very long time (with geometry instancing though).
I now plan to calculate procedural bounding volumes and use it for a sphere tracing based method (with distance field).
As far as I quickly looked at Hart's old paper (interestingly he wrote a paper on sphere tracing later),
he basically maintains a stack of procedural bounding volumes that interesects the ray.
I guess it is good for general IFS, but a bit unecessary for KIFS, is there any advantage for KIFS rendering ?
Anyway, I would actually need it to for my special class of IFS (it's not KIFS, but it's not a general IFS either),
but I plan to use both stack and sphere tracing somehow.

Previously (i.e. in my caves) I was using weird rasterization (depth-first search on a procedural octree)
It suffered from obvious lighting problems (no fake GI, no true shadows, only with shadow maps etc..).

Quote
Just to clarify things: In KIFS the folding planes can be arbitrary. Abs() is just for the implementation of special cases where the planes are centered at (0,0,0) and are axis aligned.
Sure.
Although I was thinking about even more fancy generalizations.
Not only introducing new set of folding planes at every iteration (like I did with slightly randomized fundamental axes and Tglad with his double-folding planes),
but it could be interesting to also change the number of folding planes for every iteration (maybe somebody already suggested it in KIFS thread?)
This way you could for example generate a fractal tree with 2 branches at the begining and 3 branches at the end etc...

The one problem I noticed with KIFS (for my applications) is that you need to use the same folding planes for "everything" at the same iteration level,
otherwise distance function will get corrupted.
You just cannot use L-system like grammars, i.e. first divide space into rule A and B,
and each rule have different set of folding planes that divides subspaces into BBA and AAB etc..
And that's key to achieve aperiodic fractals. In my 2d renderings I have additional variable besides coordinates = rule number.
But actually maybe with Hart's method it could be possible !
Will think about it more...



Logged
tomkh
Alien
***
Posts: 24


« Reply #25 on: September 11, 2010, 01:53:43 AM »

Quote
Are you randomising the directions at each iteration (but the same for all points)?

Yes. I noticed later that you are folding by two mirrors at once. It could be interesting approach to try,
since it's easier to make a denser limit set this way.
How about you try to modify knighty script ? smiley (of course it's easier for me, since I am familiar with evaldraw)
Logged
knighty
Fractal Iambus
***
Posts: 819


« Reply #26 on: September 11, 2010, 04:01:20 PM »

Quote
Wow! nice rendering. Are you using Hart's method?

I was rendering this grey thing with polygons, really wink and it took a very long time (with geometry instancing though).
I now plan to calculate procedural bounding volumes and use it for a sphere tracing based method (with distance field).
Maybe you know this paper. It describes a distance estimation algorithm for IFS. Unfortunately it's recursive and therefor hard to implement on GPU.
Do you know the work of David Makin on 3D RIFS? I'm pretty sure you will be interrested smiley

As far as I quickly looked at Hart's old paper (interestingly he wrote a paper on sphere tracing later),
he basically maintains a stack of procedural bounding volumes that interesects the ray.
I guess it is good for general IFS, but a bit unecessary for KIFS, is there any advantage for KIFS rendering ?
Anyway, I would actually need it to for my special class of IFS (it's not KIFS, but it's not a general IFS either),
but I plan to use both stack and sphere tracing somehow.
It have some advantages:
- It's a little bit faster but this depends on the quality of the bounding volume(s). even my implementation is sometimes faster smiley.
- It can be used when the distance estimation is discontinuous.
- or while using non uniform scaling.

Although I was thinking about even more fancy generalizations.
Not only introducing new set of folding planes at every iteration (like I did with slightly randomized fundamental axes and Tglad with his double-folding planes),
but it could be interesting to also change the number of folding planes for every iteration (maybe somebody already suggested it in KIFS thread?)
This way you could for example generate a fractal tree with 2 branches at the begining and 3 branches at the end etc...
The idea of combinig different formulas is (to some extents) used in mandelbulb 3D and mandelbulber. I've started, some time ago, a thread about the subject.

The one problem I noticed with KIFS (for my applications) is that you need to use the same folding planes for "everything" at the same iteration level,
otherwise distance function will get corrupted.
That's because the distance function becomes discontinuous.

You just cannot use L-system like grammars, i.e. first divide space into rule A and B,
and each rule have different set of folding planes that divides subspaces into BBA and AAB etc..
And that's key to achieve aperiodic fractals. In my 2d renderings I have additional variable besides coordinates = rule number.
But actually maybe with Hart's method it could be possible !
Will think about it more...
You are right. It's quite difficult (impossible?) to get a continuous DE field in these cases.
There is a structure behind the "good behaving" KIFS. It's simpler to see it in 2D: let us take a sheet of paper, fold it 1 or more times then prick it. Let's now unfold it. the figure we will obtain will be a voronoi like diagram (wink) of the pricked points which is also a BSP. We can iterate the process (difficult to do with paper smiley) but we will still obtain a (hierarchical?) BSP-Voronoi-diagram. That's the Voronoi diagram property that ensures continuity of the distance field. The BSP property in turn is a strong constraint (it's due to the folding process BTW).
Now if one uses at iteration i+1 different formulas based on the partition of space at iteration i (or whatever else), he will brobably obtain a discontinuous distance field. The question is: is it possible, in some of those cases, to obtain a continuous Distance field? (hope I'm clear enought because my english and communication skills sucks some times   undecided)
Logged
tomkh
Alien
***
Posts: 24


« Reply #27 on: September 11, 2010, 06:58:50 PM »

Quote
That's because the distance function becomes discontinuous.
Quote
The question is: is it possible, in some of those cases, to obtain a continuous Distance field?

FYI Your reasoning sounds clear to me. And the question is interesting. I will try to elaborate on that.

Actually, I was looking at KIFS the opposite way.
First you set a zero point (by virtually pricking the space in arbitrary position - could be interesting to select the best "zero point" automatically though),
and you initial DF is just a distance to this point.
Then you apply a sequence of mirror operations.
Since an individual mirror transformation does not break DF continuity,
the sequence of such transformations will result in a continuous DF as well.

Also I think the "folding lines" will not always be a voronoi diagram of zero points, since you can
lose some of them by doing a mirror transformation "outside them" (if you know what I mean)
and in resulting DF there will be just their voronoi cells leftovers (no more points with distance = 0).
Thus DF will be no longer a perfect voronoi diagram of zeros. However it is still fine for sphere tracing.
The iso-surface for any radius > 0 will be obviously continuous and DF(p) will always be
smaller or equal to the closest distance between p and the iso-surface,
which is sufficient (even if sometimes slow downs algorithm a bit).

So you are restricted to use only transformations that does not break DF continuity and maintain "smaller or equal" property.
If you make DF discontinuous just once, you are lost forever smiley
(I guess there is no way to "repair" later)

Unfortunately I have no idea for any other transformation than mirror that preserves that:/
Logged
knighty
Fractal Iambus
***
Posts: 819


« Reply #28 on: September 11, 2010, 09:45:34 PM »

You are right: the obtained diagram is not always voronoi.

Your resoning is much better. it gives better insight smiley. Hmm! it must give a clue to find DE formula for the aperiodic fractals.

Quote
(hope I'm clear enought because my english and communication skills sucks some times)
Tom: That was not intended to you especially but to express apologies to the the reader who would find my explanation confusing embarrass. It seems that i'm better in english than what I was thinking. grin
Logged
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #29 on: September 18, 2010, 01:01:32 PM »

Hi, I ported the EvalDraw script to Pixel Bender, to see how fast it would run on a GPU.

As expected it is very fast - on my low-end laptop GPU (GeForce 310M) it runs at ~40 fps in 800x600 (with 3x3 anti-alias samples per pixel).

The basic Pixel Bender implementation can be found here:
http://snipplr.com/view/40729/penrosetilespbk/

Best regards, Mikael.


* Penrose.png (15.67 KB, 474x293 - viewed 242 times.)
Logged
Pages: 1 [2] 3   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Sunflow Procedural Fractal Images Showcase (Rate My Fractal) doncasteel8587 7 1828 Last post August 13, 2007, 01:42:48 AM
by doncasteel8587
two b&w 3d fractals 3D Fractal Generation lycium 0 6650 Last post August 25, 2007, 12:16:05 AM
by lycium
Mandelbox with procedural glows Images Showcase (Rate My Fractal) eq 4 1053 Last post May 08, 2010, 05:26:35 AM
by Pauldelbrot
No man's Sky - procedural computergame Fractal News across the World Chillheimer 1 999 Last post August 15, 2014, 01:14:59 PM
by kram1032
3D Procedural content generations. Fractals. Commission an Artist verstkabond 0 999 Last post February 07, 2017, 10:17:01 PM
by verstkabond

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.169 seconds with 26 queries. (Pretty URLs adds 0.011s, 2q)