모든 문제가 발생하는 전형적인 알파 블렌딩 쉐이더이다.
단, 명시적으로 선언된 부분만 다르다.
명시적으로 선언된 부분은 다음과 같다.
1. z 버퍼에 쓸 것인지 여부
2. 블렌드 펙터로 블렌딩을 제어
코드
Shader "Custom/part17-1"
{
Properties
{
_MainTex ("Albedo (RGB)", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Transparent" "Queue"="Transparent" } // *
zwrite off // zwrite 끄고 켜기 옵션
blend SrcAlpha OneMinusSrcAlpha // blend 펙터
LOD 200
CGPROGRAM
#pragma surface surf Lambert keepalpha // *
#pragma target 3.0
sampler2D _MainTex;
struct Input
{
float2 uv_MainTex;
};
UNITY_INSTANCING_BUFFER_START(Props)
// put more per-instance properties here
UNITY_INSTANCING_BUFFER_END(Props)
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Legacy Shaders/Transparent/VertexLit" // *
}
'셰이더 (Shader) > 유니티 쉐이더 스타트업 - 정종필' 카테고리의 다른 글
[Unity/Shader] 파트18-1 : 2Pass를 이용한 깨끗한 알파 블렌딩 (뒷면이 안보이게) (0) | 2023.09.04 |
---|---|
[Unity/Shader] 파트17-2 : 블렌드 펙터 연산 (0) | 2023.08.30 |
[Unity/Shader] 파트16-5 : 알파 테스팅 (컷아웃) (0) | 2023.08.30 |
[Unity/Shader] 파트16-4 : 알파 소팅 문제 (0) | 2023.08.28 |
[Unity/Shader] 파트16-3 : 알파 블렌딩 제작 (0) | 2023.08.25 |
댓글