그리고 모니터는 RGB로 구성된 3개의 서브픽셀이 하나의 full pixel을 이루는 구조이다
이 서브픽셀들은 매우 작아서 육안으로는 잘 보이지 않는다
그리고 멀리서 보면 하나의 색으로 보인다
Shader "Custom/NewSurfaceShader"
{
Properties
{
_Brightness ("Brightness", Range(0, 1)) = 0.5
_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
}
}
위에서 내가 추가해준 건 Brightness 이고, 나머지는 기본적으로 작성되어 있다
Properties에 추가된 것들이 아래 사진과 같이 Material의 인스펙터창에 나타나서 값을 조정할 수 있게 된다
Shader "Custom/NewSurfaceShader"
{
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
sampler2D _MainTex;
struct Input
{
float2 uv_MainTex;
};
half _Glossiness;
half _Metallic;
fixed4 _Color;
void surf (Input IN, inout SurfaceOutputStandard o)
{
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
struct SurfaceOutputStandard
{
fixed3 Albedo; // 물체가 빛을 받았을때 반사하는 정도
fixed3 Normal;
fixed3 Emission; // Self-illumination, 자기 발광 기능
half Metallic;
half Smoothness;
half Occlusion;
half Alpha;
}