🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Attraction-repulsion, with regard to the complex Julia set

Started by
9 comments, last by taby 2 years, 3 months ago

I used the complex Julia set vertices to act as attractors-repulsors, via a Lennard-Jones type of acceleration; attractive at a distance, repulsive close up.

Attached is a high-res illustration of 10,000 test particles moving through the 2D space, under the influence of said Julia set vertices.

The “mass” of each Julia set vertex is determined by the length of the trajectory consisting of Z as it is iterated. Shorter the length, closer the orbit is to Z_0, and the greater the mass.

Reminds me of Metallica - Death Magnetic. LOL

Advertisement

The regularly spaced starting points in the interior, leading to regularly spaced lint, are an eyesore.

Consider excluding them (by checking whether the starting point is inside the Julia set), leaving only the well spaced stream lines in the exterior and the boundary as a continuous line of fuzz. As a test, you could simply render an exterior-only Julia set,

Omae Wa Mou Shindeiru

I’ll work at removing the lint ? here’s a new pic, modelling electromagnetism.

No lint.

That's much better.
Another idea: Streamlines which are closer to the boundary should be drawn with smaller length, to get rid of the ugly chaos left at the boundary.
Though, then you need a distance function. Found such formulas for 3D fractals, because it's essential to render them with sphere tracing. Probably some work to figure this out…

I'm cheating: all I'm drawing are the trajectory vertices. No lines. ?

Point Rendering is the future ; )

But how do you decide from which points to draw a trajectory?

I just stuff it all into a vector of vertices and draw those.

I love your point renderer! ?

taby said:
I just stuff it all into a vector of vertices and draw those.

But i guess you have some regular grid, and start the trajectories from regular spaced grid cells / vertices.
Another option would be to generate poisson disc samples to break the regularity, and start from there.
Or just generate random points.

The reason i asked is i wonder about the ‘eyesore’ grid noise which had emerged before. I wonder why this grid shows a lower frequency of spacing than the original high frequency grid you probably used to start drawing the trajectories.
I mean, it did not look beautiful, but why did such grid emerge at all, not just chaos?

I love your point renderer! ?

You mean my debug visualizations.
But i seriously consider compute point splatting instead rasterizing triangles for the actual renderer since a long time.
Dreams on PS4 does that. Karis mentioned it was one of his failed approaches finally leading to Nanite. Both said holes is their major problem, otherwise it would be super fast.
I use point splatting to render environment maps for my GI stuff, and i found a really simple way to solve this holes problem. Plus, analytical anti aliasing is cheap with points, so this could avoid a need for erroneous TAA.
It's very interesting / attractive. But not for all sorts of geometry. Triangles remain better in many cases, so maybe we want to combine both.

Anyway. Likely i'll die long before i ever get to implementing the final renderer… ;D

Yep, that's what I'm doing now – pseudorandomly-generated points.

This topic is closed to new replies.

Advertisement