프로퍼티를 만들고, 색을 받아 적용하는 것을 실습한다.
코드
Shader "Custom/chap05"
{
Properties
{
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
_TestColor ("testcolor", Color) = (1,1,1,1) // 1. 프로퍼티 추가
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard fullforwardshadows
// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0
sampler2D _MainTex;
struct Input
{
float2 uv_MainTex;
};
half _Glossiness;
half _Metallic;
fixed4 _Color;
float4 _TestColor; // 2. 동일한 이름의 변수를 선언
UNITY_INSTANCING_BUFFER_START(Props)
// put more per-instance properties here
UNITY_INSTANCING_BUFFER_END(Props)
void surf (Input IN, inout SurfaceOutputStandard o)
{
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = _TestColor.rgb; // 3. 사용
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
위 코드에서 주석 1, 2, 3 순서대로 따라하면 된다.
'셰이더 (Shader) > 유니티 쉐이더 스타트업 - 정종필' 카테고리의 다른 글
[Unity/Shader] 파트5-1 : 코드 정리 기본 (불필요 코드 삭제2) (0) | 2023.08.06 |
---|---|
[Unity/Shader] 파트4-7 : 불필요 코드 삭제 (0) | 2023.08.06 |
[Unity/Shader] 파트4-5 : 변수 이용 (0) | 2023.08.06 |
[Unity/Shader] 파트4-4 : 색상 출력 (0) | 2023.08.06 |
[Unity/Shader] 파트4-3 : 쉐이더 Properties 제작 (0) | 2023.08.03 |
댓글