글
이펙트를 위한 텍스처 사용하기 001
Unity3D/Shader
2016. 9. 26. 00:11
### 본 내용은 Unity 5.x.x 에서 실습하였으며,
### 도서 <(3D 게임 최적화와 시각적 효과를 위한) 유니티 Shader와 Effect 제작> 를 참고하여 정리한 내용이다.
### 코드 중 일부 미작동하거나 오류가 있는 부분은 임으로 수정하여 사용하였다.
UV 스크롤링
Shader "ExampleShaders/Chapter2/ScrollingUVs"
{
Properties
{
_MainTint ("Diffuse Tint", Color) = (1,1,1,1)
_MainTex ("Base (RGB)", 2D) = "white" {}
_ScrollXSpeed ("X Scroll Speed", Range(0, 10)) = 2
_ScrollYSpeed ("Y Scroll Speed", Range(0, 10)) = 2
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert
fixed4 _MainTint;
fixed _ScrollXSpeed;
fixed _ScrollYSpeed;
sampler2D _MainTex;
struct Input
{
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o)
{
fixed2 scrolledUV = IN.uv_MainTex;
// 시간 경과에 따른 UV에 애니메이션을 적용하기 위해 내장 _Time 변수를 사용
fixed xScrollValue = _ScrollXSpeed * _Time;
fixed yScrollValue = _ScrollYSpeed * _Time;
// 최종 UV 오프셋을 적용
scrolledUV += fixed2(xScrollValue, yScrollValue);
// 텍스처와 색상를 적용
half4 c = tex2D (_MainTex, scrolledUV);
o.Albedo = c.rgb * _MainTint;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
(참고) 유니티 Shader 내장 변수
https://docs.unity3d.com/462/Documentation/Manual/SL-BuiltinValues.html
'Unity3D > Shader' 카테고리의 다른 글
디퓨즈 셰이딩 004 (0) | 2016.09.24 |
---|---|
디퓨즈 셰이딩 003 (0) | 2016.09.24 |
디퓨즈 셰이딩 002 (0) | 2016.09.23 |
디퓨즈 셰이딩 001 (0) | 2016.09.22 |