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.
It’s like lerp, but instead of mapping 0-1 => Min-Max, it maps InputMin-Max to OutputMin-Max
Oh thanks for the breakdown! I missed the part where you uses polar coordinates to feed in the remap node so I was confused, thanks!
Ahhh that’s such an easy way to explain it. I’ve always just used power and multiply to add contrast to a texture, will try remap next time!
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) .
just a note, we’ve a huge polar-thread here: How do I make a radial UV texture coordinate map?
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)
it works, here I am sliding the LERP On vs OFF
Can you input explicit derivatives on your texture sampler? Here’s an unreal example:
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
I do not know where to learn that in Unity I will xpost to Unity to see if I can get info
https://forum.unity.com/threads/texture-sampler-urp-explicit-derivatives.1252902/
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).
unfortunately this goes outside my skillset.
I found one about accessing mip levels in the frag
https://forum.unity.com/threads/calculate-used-mipmap-level-ddx-ddy.255237/
So maybe if I tell the frag what mip is used that could work too? Shader graph has a LOD sampler and override the mip manually
wait a second would that work? it works?!
but is it okay to do that? i just leave it at 0 and that would mean it is unoptimized from far
OMG box trilinear works so well for morphing!
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.
Or you could pan it out from the center at various angles. Which makes it look like a kaleidoscope.
great points!
-
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
That’s amazing! I can’t remember seeing something like that done before (emphasis on can’t remember)
Thanks so much for sharing
Nice Radial UV Shader: https://twitter.com/Cerva_saiki/status/1584282244943781888
(they seem to get rid of the seam by lerping another texture in. this also makes it nicely tilable)
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.
Basic stuff, yes, but I’m not a smart man.
Good night! Could you show the whole chain of nodes to achieve this effect?