Skip to main content
GameDev.net gamedev.net
🔒 Locked

Attraction-repulsion, with regard to the complex Julia set

Started by taby Mar 8, 2022 at 2:29 AM 9 replies 6.4k views
Original Post
taby
taby

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

LorenzoGatti
LorenzoGatti

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
taby
taby

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

taby
taby

No lint.

JoeJ
JoeJ

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…

taby
taby

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

JoeJ
JoeJ

Point Rendering is the future ; )

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

taby
taby

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

I love your point renderer! ?

JoeJ
JoeJ

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

taby
taby

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

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.