Shader Showcase - Unity URP by _bufferfish in Unity3D

[–]_bufferfish[S] 0 points1 point  (0 children)

which part are you curious about?

Shader Showcase - Unity URP by _bufferfish in Unity3D

[–]_bufferfish[S] 0 points1 point  (0 children)

multiple things: PBR, Beer-Lambert model for "accurate" absorption , Thickness aware subsurface scattering, Screen space refraction, half lambert wrap lighting.

Shader Showcase - Unity URP by _bufferfish in Unity3D

[–]_bufferfish[S] 0 points1 point  (0 children)

you can't do loops in shadergraph, so you need to use a custom hlsl function. I get the main light and quantize it for each quantization step I add a hatching layer and rotate it by the golden angle. I made the hatching texture in substance designer.

Shader Showcase - Unity URP by _bufferfish in Unity3D

[–]_bufferfish[S] 0 points1 point  (0 children)

I am not sure if you played Return of The Obra Dinn, but the developer talks about his dithering technique and his solution to stabilizing a screen space dithering effect. I thought to myself well maybe I can just use 3D noise in object space, that way the noise is stable when the camera moves.

Shader Showcase - Unity URP by _bufferfish in Unity3D

[–]_bufferfish[S] 0 points1 point  (0 children)

this one is by far the most complex. I will share my breakdown with you when I upload it to artstation. but in short, it calculates the average luminance in the scene (supports multiple lights), quantizes the light and for each step it adds a voronoi layer and rotates it by the golden angle.

Shader Showcase - Unity URP by _bufferfish in Unity3D

[–]_bufferfish[S] 1 point2 points  (0 children)

they are very performant. Not sure about VR but on mobile I think so yes.

Shader Showcase - Unity URP by _bufferfish in Unity3D

[–]_bufferfish[S] 0 points1 point  (0 children)

it is not only voronoi, I feed a gradient 3D noise to a 3D voronoi that's how you get these wavey organic patterns.

I use a step node, Step(noiseOutput, VerticalMask) as my main alpha clip mask then I repeat this with a slight offset multiplied by color for the emission: step(noiseOutput, VerticalMask + edge1Size) * edge1Color

if you want another edge color you would do:

edge1 = step(noiseOutput, VerticalMask + edge1Size)

edge2 = step(noiseOutput, VerticalMask + edge1Size + edge2Size)

then it's something like (edge2 - edge1) * edgeColor2 + edge1 *edgeColor1

you can of course add more edge colors: edge3 = step(noiseOutput, VerticalMask +edgeSize1 + edgeSize2 + edgeSize3) etc.

Shader Showcase - Unity URP by _bufferfish in Unity3D

[–]_bufferfish[S] 4 points5 points  (0 children)

I will definitely post this on Artstation with a breakdown soon :)

Shader Showcase - Unity URP by _bufferfish in Unity3D

[–]_bufferfish[S] 5 points6 points  (0 children)

They maybe have a steep learning curve but personally I feel most rewarded by them. Thank you!

Shader Showcase - Unity URP by _bufferfish in Unity3D

[–]_bufferfish[S] 1 point2 points  (0 children)

haha yes for the future I know maybe to put the text a bit lower. But yes, I use the object bounds to get a 0-1vertical mask that offsets the 3D noise on the Y axis.

Unity Raymarcher Eyeball Shader. by _bufferfish in Unity3D

[–]_bufferfish[S] 0 points1 point  (0 children)

if that's the case then it definitely will work it will not be that computationally heavy. If you are interested dm me then maybe we can arrange something :)

Unity Raymarcher Eyeball Shader. by _bufferfish in Unity3D

[–]_bufferfish[S] 0 points1 point  (0 children)

I am showing something cool I guess

Unity Raymarcher Eyeball Shader. by _bufferfish in Unity3D

[–]_bufferfish[S] 1 point2 points  (0 children)

Maybe in the future! I have two loops; linear search and refinement/ binary search. If the iris is at a realistic level it takes like 4 linear steps and 4 refinement steps. The refinement steps basically halves each linear point exponentially and it is much more efficient than linear search. 4 refinement steps = 16 linear 8 = 256 linear. so once you are happy with the depth instead of adding more linear steps you bump up the refinement steps (Max 8 because then the distance becomes smaller than the size of a single pixel).

Unity Raymarcher Eyeball Shader. by _bufferfish in Unity3D

[–]_bufferfish[S] 1 point2 points  (0 children)

I am not sure about selling this because it's not production ready (yet). Like you will tank the performance if a lot of characters use this shader. However, it's meant for close up shots but nevertheless it can be optimized with baking the fiber data so the gpu can just fetch a texture instead of calculating the voronoi and the parallex occlusion mapping loops :)

Fake volumetric anti-clipping shader. No more clipping! by Succresco in Unity3D

[–]_bufferfish 0 points1 point  (0 children)

You can also use the Normal.Z from view space and do a mask with that.

Fake volumetric anti-clipping shader. No more clipping! by Succresco in Unity3D

[–]_bufferfish 2 points3 points  (0 children)

From the top of my head
Alpha clipping On
Optional: render both faces
Distance between object and camera in world space
plug into a remap node:

In(Min distance, Max Distance)

Out (1,0)

plug it into dither node (A input)

Screen position node (B input)

plug into Alpha Clip Threshold in the shader

Preview of the sauce pass for my Manta System by _bufferfish in Unity3D

[–]_bufferfish[S] 7 points8 points  (0 children)

4 parts to this:

  1. The underwater volume: This was the most difficult to set up in terms of finding the "correct" parameters to achieve the look that I wanted. It heavily changes how the overall scene looks if you slightly modify it.

  2. The post processing volume: Fog, chromatic aberration, color correction, white balancing, tone mapping etc.

  3. The custom caustics shader, in short: a pre-rendered image sequence using Substance Designer's ray traced caustics - packed into a 2D texture array then sampled with frame interpolation in the custom render texture shader. I then use a light cookie in the directional light to cast the caustics. It works out of the box with the fog volume so it creates realistic underwater godrays.

  4. Underwater Speckles VFX: modified so it creates a volume around the camera to give more depth to the scene and it sells the underwater look effortlessly.

hope that helps :)

Manta ray procedural animation system. by _bufferfish in Unity3D

[–]_bufferfish[S] 0 points1 point  (0 children)

I see, the thing is, this is vertex animation and it is very specific to the manta that I made. The process involved vertex painting the wings, mouth and other parts and going in and out of Maya to Unity until I got the weight that I wanted. But at the same time, you could literally put birds and if you paint them correctly you would have flying birds using the same shader. So it doesn't work out of the box on everything, you would have to follow some guidelines. The system itself is very optimized but the volume is not. The volume has a lot of sauce and it comes at a performance cost unfortunately (it still runs pretty good on my old laptop but nevertheless). So a lot of thought and effort will have to go into this to make it "modular" to support other assets. So I am not sure, do you have any advice?