Vortex warp Shader Rotation control?

Started by aorikasa, January 06, 2022, 07:52:59 PM

Previous topic - Next topic


Hello, I'm new here.
I'm working on a planet orbit view with a bunch of vortex clouds.
My current approach is to place a bunch of vortex warp shaders around the planet to displace a power fractal that's fed into density of a global cloud layer.
However the vortex warp shader has only XYZ axis control so they tend to stretch as they go away from the center of each axis.
I'm wondering if there is a way to properly rotate each vortex warp shader so they are pointing at the center of the planet to avoid stretching.
Or if you don't mind sharing completely different approaches to make vortex clouds on a planet, I'll appreciate it.
Thank you!


It won't be easy, IMO. It would be a welcome feature if there were a flexible rotation input inside the shader. Problem is you can't add (rotated by transform shader) vortexed cloud through blue shader 'add' or via child input on a surface shader, because the original cloud will stay in as well, you can't mix (blue node; mix scalar) for the same reason, but you could try using a mix controller like a soft simple shape in the same location to cancel out the cloud in that area and mix in only the vortexed cloud. Theoretically, never tried it. Problem is then that the simple shape needs to be rotated as well. For each vortex! So you end up with a lot of nodes. And usually a vortex cloud will be pulled by another vortex if it's close enough, so this method (if it works) won't be natural.
Like I said, not easy.


Thanks for your opinion Dune. 
I thought about what you described as well but it seems to overly complicate things... I agree that it's not easy :-\  
I wish I could simply rotate a coordinate null to define warping direction.
Thank you for confirming I wasn't missing anything fundamental though!


Is the vortex warp in final position? My thinking is you can rotate the shader.

Actually, no, because it requires input and has no effect as a warper itself. That's sad. If this could be improved, and maybe had this as a "displacement" based warper, it could be done.


Exactly as I described, you can rotate a vortex, but you can't add/mix it as a rotated vortex, so it'll have to be serial, and then you rotate all previous as well. So it needs its own (more flexible) rotation parameters.


Not a perfect solution by any means but you could try something like this.

I've made everything big n' ugly so it's obvious what is going on but of course it could all be very much more subtle and nuanced

Each vortex is masked by a simple shape shader. I've used just one for simplicity but you can use as many as you like. Maybe roughen up the edges a little with a Fractal warp shader as well.

One point of note is that since both the Vortex shader and Simple shape shader work in 2D only they effectively project through the planet and create a vortex and mask on the opposite side of the planet.

Hope this is useful.



[attach id=104576]VortexWorldNodes.jpg[/attach]

Ryzen 9 3900X @3.79Ghz, 64Gb (TG4 benchmark 6:20)
Ryzen 9 5950X @3.4Ghz, 16Gb (TG4 benchmark 4:28)


Cool setup, but indeed a lot of nodework. Thanks for sharing.


Thank you for sharing your scene Cyphyr!
I'll try that out!