I can’t think of any other approaches than mesh or polar coords…
But I’ve started seeing the power of Polar coordinates on a flat quad/billboard rather than revolving a mesh
it helped me fix seams quickly from pinched triangles without having to throw a ton of uv/vertex info into engine
basics
polar UV
two panning textures multiplied with offsets to give hypnotic interference
input Max Remap to overexpose texture; it thicken the lines at the center so you can fake some uniformity
though a Mesh can save overdraw you can save batches and vertex while gaining higher level animation…
with the above 1 particle with size and color changes can do this
now I’m curious what other cool ideas are out there because other than this and a revolved mesh I’m out of ideas.
Wow, this looks so organic and 3 dimensional! Definitely gonna try this out!
Can you explain more about the remapping part? what exactly is the math doing there
It feels like levels/curves in photoshop +ramp as input to make it variable across UV’s
I think this break down will help more
ramp fed to the input Max
that defines the threshold when non white becomes full brightness
so with 0.5 as inputMax → 50% grey get’s remapped to the output of 1 = 100% white
So now it is like gradient over_exposure
I need to put more time into finding new ways to use it, I’m too into this 1 use and
rotating the previous panning texture 90 degree +a purple hue shift gradient
EDIT
just to confirm it is multiply but since the output defines the boundaries it comes with offsetting to prevent 0’s
see with a simple multiply you’d have to compensate for the ramp down to black, remap handles it for you so it’s cleaner node use : at least cleaner to look at.
I am a bit suprised that you don’t see any mip mapping seams / blurring without using tex2dgrad (because that happened to me for sure more than once when using polar coordinates) .
I am a bit suprised that you don’t see any mip mapping seams / blurring without using tex2dgrad (because that happened to me for sure more than once when using polar coordinates) .
it is a problem; you have to disable mips
we’ve a huge polar-thread here
Bgolus noted that here disable mips or you get a horrible seam, as for point filtering I was able to leave it bilinear in most views.
you guys just gave me the silliest idea… how can I keep mips?
Im using 2 textures anyway, what If I rotate 1 and LERP them with
(If only I could figure out how to make that in shader maths… for time I just made it in photoshop)
This way, it’ll use the original UVs to calculate the mips, instead of the polar ones. I highly recommend keeping mipmaps - bunch of issues might arise from disabling them
Somewhere in the unity forum is a post by bgolus (and only a few posts back in the thread bruno posted) in which he explains exactly what bruno is proposing. You calculate ddx and ddy of the regular uvs and use a different sampling function tex2dgrad() instead of tex2d() (which isn’t a node in shadergraph for some reason, but you can simply use it in a custom function node).
Nevertheless hiding it the way you did obviously works as well if your texture allows it
You calculate ddx and ddy of the regular uvs and use a different sampling function tex2dgrad() instead of tex2d() (which isn’t a node in shadergraph for some reason, but you can simply use it in a custom function node).
using tex2dLod to set a specific mip level does indeed get rid of the seam too. I would not really worry about optimization, yes you keep using the highest mip level but I would argue that you would not spawn such an effect incredibly far away or heavily rotated away from the camera. But you might get some artifacts because you dont sample the downscaled mip versions (again there is an excellent medium article by bgolus about this xD)
sorry calculating ddx and ddy sounds needlessly complicated. It is very much just recreating the setup from bruno UE screenshot in shadergraph and the nodes are nearly the same. I didn’t want to blow this more than necessary but I am very happy that you were inspired and figured out some more approaches. The morph in the last gif looks great.
If you’re doing twirly flames polar coord are probably best. If you’re going for a different look there are a couple other ways to push pixels from the center of a plane.
You could zoom in on a texture and swap it in and out like a flowmap.
flow maps for clouds, especially to zoom/truck-in/out seems to be the best radial motion approach. I have seen that before and the results are fantastic.
kaleidoscope (pseudo mirrored) gives that uniformity benefit perfect for facet polygonal shape that are not intended to be circular e.g. architectural or technology/ huds/ laser shields etc
Hi! First post here. Sorry for resurrecting old thread.
This radial outwards motion is exactly what I’m trying to achieve in Unity. But I can’t figure out how to pan a “polarised” texture and perhaps that part of nodes setup is cut from the screenshot. I can rotate it but it’s not the same as the zooming effect of panning. Can somebody help me out in figuring this out?
Me again, sorry. I’ve figured it out! It’s simple and everybody knows this but a newbie like me couldn’t figure it out.
Just in case somebody like me is also confused, node order in Unity is: Polar Coordinates > Tiling and Offset > Texture 2D
Plug Time node into Offset for movement, and edit Tiling for outward stretching.