- Home /
Question by
mirkojpn · Mar 04, 2019 at 05:20 AM ·
shadershadersshader programming
Shader issue with a 170 upper angle
Hello!
I have a mask by angle shader that work’s fine, but i ‘ getting a disappearing object on angle upper than 179 or -179,
Someone know a way to fix it?
For example when my _Angle value is 1 or -1 object insted to continue rotating it just disappear.
Shader "Unlit/MaskedBasedOnAngle"
{
Properties
{
_MainTex("Base (A=Opacity)", 2D) = "" {}
_Transparency("Transparency", Range(0.0,0.5)) = 0.25
_Portion("Angle",Range(-1,1)) = 0
_Size("Size",float) = 5
}
SubShader
{
Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "true" }
Zwrite Off
Cull Off
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
float3 worldSpacePos : TEXCOORD1;
float3 objectCenter : TEXCOORD2;
};
sampler2D _MainTex;
float4 _MainTex_ST;
float _Transparency;
float _Portion;
float _Size;
float4 setAxisAngle(float3 axis, float rad) {
rad = rad * 0.5;
float s = sin(rad);
return float4(s * axis[0], s * axis[1], s * axis[2], cos(rad));
}
v2f vert(appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
o.worldSpacePos = mul(unity_ObjectToWorld, float4(v.vertex.xyz, 1)).xyz;
o.objectCenter = mul(unity_ObjectToWorld, float4(0.0,0.0,0.0,1.0));
return o;
}
#define TWO_PI 6.28318530718
fixed4 frag(v2f i) : SV_Target
{
float3 v = normalize(i.worldSpacePos - i.objectCenter);
half4 c = tex2D(_MainTex,i.uv);
float angle =( atan2(v.y, v.z)/ TWO_PI*4.)+0.5 ;
float t = (angle.xxx / _Size );
c.a = 1.- smoothstep(0.079,0.08, abs(t - _Portion));
return c;
}
ENDCG
}
}
}
Comment
Your answer
Follow this Question
Related Questions
Shader Problem 0 Answers
Need help with outline shader 0 Answers
How do I make an Unlit Shader with two textures? 0 Answers
Creating a line between different colors? 0 Answers
Stretching when using world coordinates 2 Answers