Quantcast
Channel: Questions in topic: "hlsl"
Viewing all articles
Browse latest Browse all 206

Opaque ("overwrite") Projector Shader for Decal Projection

$
0
0
I have been attempting to make a simple "overwrite" version of Unity's projector shader. I can either respect the color, or respect the transparency, but not both. I have simplified the frag method to simply take cookie (the texture of the projection) and color tint, skipping all the fall off and fog stuff for now. I hope to eventually add those back in once I figure out what's going wrong. Shader "Projector/Overwrite" { Properties { _Color ("Main Color", Color) = (1,1,1,1) _ShadowTex ("Cookie", 2D) = "" {} _FalloffTex ("FallOff", 2D) = "" {} } Subshader { Tags {"Queue"="Transparent"} Pass { ZWrite Off ColorMask RGB Blend DstColor DstAlpha //Blend DstColor Zero Offset -1, -1 CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma multi_compile_fog #include "UnityCG.cginc" struct v2f { float4 uvShadow : TEXCOORD0; float4 uvFalloff : TEXCOORD1; UNITY_FOG_COORDS(2) float4 pos : SV_POSITION; }; float4x4 unity_Projector; float4x4 unity_ProjectorClip; v2f vert (float4 vertex : POSITION) { v2f o; o.pos = UnityObjectToClipPos(vertex); o.uvShadow = mul (unity_Projector, vertex); o.uvFalloff = mul (unity_ProjectorClip, vertex); UNITY_TRANSFER_FOG(o,o.pos); return o; } fixed4 _Color; sampler2D _ShadowTex; sampler2D _FalloffTex; fixed4 frag (v2f i) : SV_Target { fixed4 texS = tex2Dproj (_ShadowTex, UNITY_PROJ_COORD(i.uvShadow)); texS.rgb *= _Color.rgb; //texS.a = 1.0 - texS.a; return texS; /*texS.rgb *= _Color.rgb; texS.a = 1.0-texS.a; fixed4 texF = tex2Dproj (_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff)); fixed4 res = texS * texF.a; UNITY_APPLY_FOG_COLOR(i.fogCoord, res, fixed4(0,0,0,0)); return res;*/ } ENDCG } } } I am fairly certain the issue lies in the BLEND options. I can either respect the texture * color, or respect the alpha of the texture, but not both together. [Alpha is respected, but the color is no longer accurate][1] [Alpha is ignored, but the color is accurate.][2] Thanks for your guidance. [1]: https://i.stack.imgur.com/yfxhE.png [2]: https://i.stack.imgur.com/gWWyc.png

Viewing all articles
Browse latest Browse all 206

Trending Articles



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