728x90
# 순차적 체커보드 패턴
메시의 텍스처 좌표에 기반한 체커보드 패턴을 출력하는 셰이더입니다.
Shader "Unlit/Checkerboard"
{
Properties
{
// 체커보드의 밀도를 결정합니다.
_Density ("Density", Range(2,50)) = 30
}
SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
float _Density;
v2f vert (float4 pos : POSITION, float2 uv : TEXCOORD0)
{
v2f o;
o.vertex = UnityObjectToClipPos(pos);
o.uv = uv * _Density;
return o;
}
fixed4 frag (v2f i) : SV_Target
{
float2 c = i.uv;
// 좌표의 정수만 취하고 2로 나눕니다.
// 좌표들이 0.5, 1, 1,5, 2로 양자화됩니다.
c = floor(c) / 2;
// x,y 좌표를 더하고 소수부분만 취합니다.
// 0.0 혹은 0.5가 됩니다. 여기에 2를 곱하면
// 0 또는 1이 됩니다. (이 결과는 각각 검정,흰색이 됩니다)
float checker = frac(c.x + c.y) * 2;
return checker;
}
ENDCG
}
}
}
* 양자화(quantized)란?
어떤 연속적으로 보이는 양을 자연수로 셀 수 있는 양으로 재해석하는 것입니다.
728x90
'게임 개발 > 유니티' 카테고리의 다른 글
[유니티] 씬 재로딩 후 Action 변수의 target null 문제 (0) | 2023.03.21 |
---|---|
[유니티] Input.GetKey() 한글로 입력해도 동작하게 하고 싶다면 (0) | 2023.01.16 |
[유니티/셰이더] 커스텀 셰이더 기초 (1) | 2022.12.23 |
[유니티] Photon Fusion 103 간단 요약 (0) | 2022.12.22 |
[유니티] Photon Fusion 102 간단 요약 (1) | 2022.12.20 |