Quantcast
Channel: Questions in topic: "shader programming"
Viewing all articles
Browse latest Browse all 169

Adapt alpha mask shader to gradual alpha increase with distance to object center

$
0
0
Hi! I'm very new to Shaders in Unity but have been able to develop something that resembles what I'm looking for. What I have done is create a shader that when applied to a texture and then to any object, when it intersects with any other object, an alpha mask is created in place of said intersection. Example with shader texture applied to a sphere. Scene Shaded: ![alt text][1] Scene Alpha Channel: ![alt text][2] Shader Code: Shader "Mask" { Properties { _Color("Color", Color) = (1,1,1,1) } Category { Tags {"RenderType" = "Opaque" "Queue"="Transparent"} Color [_Color] // change alpha in material to tweak mask strength SubShader { //Rendertype: Opaque, Transparent or Overlay all give same result... //Queue is important here! Must be over 2500 to get front to back rendering, Overlay = 4000 (Transparent also works..) Tags { "RenderType"="Opaque" "Queue" = "Overlay" } LOD 100 ZWrite Off //first pass sets the mask for the "front geometry" Pass { ColorMask 0 Cull Back ZTest Greater Stencil { Ref 1 Comp Always Pass Replace } } //second pass turn off culling, could be Cull Off or Cull Front (both acheive the same thing) //use the mask from the first pass Pass { Cull Off ZTest Greater ColorMask A Stencil { Ref 1 Comp NotEqual } } // reset the stencil buffer so other objects dont mask out this one Pass { //Cull Back ZTest Greater ColorMask 0 Stencil { Ref 0 Comp Always Pass Zero } } } } } Unfortunatly I would like to have the alpha value increase with the distance to the center of the object the texture is applied to (knowing that I want to have this texture applied to multiple different objects at the same time) in order to create a more subtle transition between the masked and non-masked surfaces, but I'm struggling a lot to achieve it, any idea on how I could solve my problem? Thank you in advance :) [1]: /storage/temp/186043-a.png [2]: /storage/temp/186044-b.png

Viewing all articles
Browse latest Browse all 169

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>