Julia-Set

Started by Volker Harun, September 08, 2009, 06:19:49 pm

Previous topic - Next topic

j meyer


dandelO

:)

I think, Mogn, if you go even further back than me, you'll find that it is, in fact, "Volkers" own device. :)
This is a trick I learned from reading his posts here on powerfractals a couple of years ago now, I think.

I believe Planetside invented it, though. New planets and object nodes etc. all do this by default. ;)

mogn

Quote from: mogn on September 09, 2009, 12:49:33 am
Thanks, So just duplicate this to get 100 iterations.

My idea for this: pack 1 iterations inside a 'Buildvector' node using "dandelO's device"
pack 10 nodes of this inside another 'Buildvector node' still using "dandelO's" device
Finally pack 10 of these in a final 'Buildvector node'
Of cource you have to use the beta version.
dandelO's device: connecting assigning an input tab of a node to the output of an internal node.




This isnt working. Tg2 is grinding to a halt when I get above 10 ┬┤julian nodes'. (in my version about 200 nodes)
I think that time for testing for circular connections grows exponentally.

Volker Harun

@mogn: It is a bit faster, when assigning the nodes within the shader ... drawing the lines kills mine, too (my machine is killing me with 130 nodes) ;)

mogn

Quote from: Volker Harun on September 08, 2009, 06:19:49 pm
;D

Hi,

I was asked to share some nodes for a Julia-Set ...

I simplified it for 2 iterations ... once you get the point, feel free to add more ... to your needs and the power of your machine ,-)


Have fun,

Volker Harun


I think that you should clamp the input x,z too the range -1..1
If you use many iterations you risk overflow, this might slow down the cpu,fpu

It might be faster to use "Get position in geometry" since y is not used in your network.

Volker Harun

Hello mogn,

the clamping makes sense, preferable is the smooth step scalar, as it does the same without any sudden breakup. :)

About the 'Get position in geometry' ... it has one main disadvantage, you will no longer be able to scale and translate the position using the transform shader. Of course it can be done by a multiplyingthe position with a aconstant vector for scaling and adding a vector for translation. I am too lazy for this ;)

Have you done speed-tests about that position-thingy?

Volker

mogn

No test on position yet. But as far as I can see 'Get position in geometry' is a global variable, i.e. you can implement
several copies without cost. This can clean up networks. I hope that TG2 is so clever that if 'Get position' does not
use the y coordinate, it is not calculated.
If the scaling is the same in all 3 coordinates you can make a vector division with a constant scalar.
I think that since 'build vector' and 'get x to scalar' are only addressing operations they are free.
In general I would like Matt to make a list of relative cost of the different nodes.
E.g a 'clamp 01' is much faster than a generel clamp.