Unity 복습 21.05.10. Shader - AlphaBlending
이해가 안된 내용이기에 하나하나 뜯어보며 천천히 복습하려한다.
하지만 뒤에 콜론(:)을 붙이자 텍스쳐를 인식하지 못하기 시작했다. 저기에 값을 넣는것이리라.
범위값을 주고 조절하니 오른쪽 영상과 같이 풀이 들쭉날쭉해지며, 값이 0일때는 배경도 나타났다.아마 배경은 Alpha값이 0이라 그런게 아닐까 추측한다.
그리고 궁금해서 _Cutoff가 내장함수인지 아닌지를 실험해보기로 했다.
ㄴ_Cutoff자체는 그저 값을 조절하기위한 프로퍼티였다. 이름을 바꿔도 별 문제 없었다.
그리고 범위값은 0이하는 0과 같이 표현되며 1을 넘으면 사진과같이 보이지 않게된다.
alphatest는 콜론뒤의 값으로 alphafade의 효과를 조절할 수 있는 기능으로 보인다.
그리고 FallBack"Diffuse" 이렇게 항상 텍스쳐의 그림자가 전부 생긴다.
이걸 Legacy Shaders/Transparent/Cutout/VertexLit로 바꾼다면 아래사진과 같이
풀일때는 그림자가 없지만 Alpha Cutoff값이 0이라면 Diffuse와 같은모양의 그림자가 생긴다.
풀모양의 그림자를 만들고 싶어서 Color값을 추가하니 풀모양의 그림자가 잘 구현됐다.
Shader "Custom/AlphaBlending"
{
Properties
{
_Color("Main Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Cutoff ("Alpha Cutoff", Range(0,1)) = 0.5
}
SubShader
{
Tags { "RenderType" = "TransparentCutout" "Queue" = "AlphaTest"}
LOD 200
Cull Off
CGPROGRAM
#pragma surface surf Standard alphatest:_Cutoff
sampler2D _MainTex;
struct Input
{
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutputStandard o)
{
fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Legacy Shaders/Transparent/Cutout/VertexLit"
}
FallBack부분과 Color는 아직도 이해가 안된다....
참고자료
FallBack부분
TwoTailsGames/Unity-Built-in-Shaders
Unity Built in Shaders. Contribute to TwoTailsGames/Unity-Built-in-Shaders development by creating an account on GitHub.
github.com
렌더타입부분
유니티 - 매뉴얼: 투명 컷아웃 정점 라이팅 (Transparent Cutout Vertex-Lit)
Transparent Cutout Shader Family 투명 컷아웃 디퓨즈 (Transparent Cutout Diffuse) 투명 컷아웃 정점 라이팅 (Transparent Cutout Vertex-Lit) 주의: Unity 5에서 이 쉐이더는 Standard Shader로 대체되었습니다. Transparent Cutout
docs.unity3d.com
유니티 - 매뉴얼: ShaderLab: SubShader 태그
ShaderLab: SubShader 태그 Subshader는 태그를 사용하여 언제 어떻게 렌더링 엔진에서 렌더링할지 나타냅니다. 구문 Tags { "TagName1" = "Value1" "TagName2" = "Value2" } 태그 TagName1 의 값으로 Value1, 태그 TagName2 의
docs.unity3d.com