Properties
{
_DisPower("Distance Power", float) = 0
}
SubShader
{
Tags { "RenderType"="Transparent" "Queue"="Transparent" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert alpha:fade
#pragma target 3.0
float _DisPower;
struct Input
{
float3 worldPos;
};
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 c = fixed4(1, 1, 1, 1);
float d = distance(IN.worldPos, _WorldSpaceCameraPos) / _DisPower;
d = 1 - saturate(d);
o.Albedo = c.rgb;
o.Alpha = d;
}
ENDCG
}
FallBack "Diffuse"
쉐이더에 내장된 변수(_WorldSpaceCameraPos)를 이용해 카메라 위치를 받아올 수 있다.
더 많은 빌트인 셰이더 변수
https://docs.unity3d.com/Manual/SL-UnityShaderVariables.html
'유니티 > 쉐이더' 카테고리의 다른 글
[Unity Shader] Custom PostProcessing(포스트 프로세싱) 직접 만들기 (노이즈 필터) (0) | 2022.06.10 |
---|---|
[Unity Shader] 비눗방울 쉐이더 만들기 (0) | 2022.03.25 |
[Unity Shader] 쉐이더로 애니메이션 재생 (1) | 2022.03.22 |
[Unity Shader] 외곽선 만들기 : Pass 추가, Vertex Shader, zwrite (8) | 2022.02.15 |
[Unity Shader] 커스텀 라이트 : Lambert, Half - Lambert (0) | 2022.02.08 |