픽셀화 표현하기
이미지의 Width Height의 대표적인 Color로 해당 픽셀을 덮어서 픽셀화 시키는 쉐이더 코드이다.
도트 이미지나 좀더 직관적인 컬러로 표현할때 유용하다.
반응형
반응형
< Material 속성 >
Pixel 을 처리할 기준이 되는 값들을 입력이 가능하다 .
해당 값을 줄이면 다음과 같이 나온다.
< Shader Code >
Shader"Custom/PixelationSbader"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_PixelWidth ("Pixel Width", Float) = 50
_PixelHeight ("Pixel Height", Float) = 50
}
SubShader
{
Tags { "RenderType"="Transparent" "Queue"="Transparent" }
Blend
SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
sampler2D _MainTex;
float _PixelWidth;
float _PixelHeight;
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
v2f vert(appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
fixed4 frag(v2f i) : SV_Target
{
// 텍스처의 크기 비율에 따른 픽셀 크기 설정
float2 pixelSize = float2(1.0 / _PixelWidth, 1.0 / _PixelHeight);
// 픽셀화된 UV 좌표 계산 (중앙 보정)
float2 uv = floor(i.uv / pixelSize) * pixelSize + (pixelSize * 0.5);
// 픽셀화된 UV 좌표로 텍스처 색상 가져오기
fixed4 color = tex2D(_MainTex, uv);
// 알파값을 유지하여 투명도 처리
return color;
}
ENDCG
}
}
}
★★★☆☆
반응형
'개발 > Unity) Shader' 카테고리의 다른 글
Unity Shader) 컬러 톤 변경해서 표현하기 (0) | 2024.11.21 |
---|---|
Unity Shader) 녹아서 사라지는 효과 (Dissolve) (0) | 2024.11.20 |
Unity Shader) 오래된 효과 / 빈티지 표현하기 (Sepia) (0) | 2024.11.19 |
Unity Shader) 2D이미지를 3D 처럼 표현하기 (0) | 2024.11.14 |
Unity Shader) 금속 재질 처럼 표현하는 효과 (1) | 2024.11.13 |
댓글