이펙트를 위한 텍스처 사용하기 001

Unity3D/Shader 2016. 9. 26. 00:11

### 본 내용은 Unity 5.x.x 에서 실습하였으며,

### 도서 <(3D 게임 최적화와 시각적 효과를 위한) 유니티 ShaderEffect 제작> 를 참고하여 정리한 내용이다.

### 코드 중 일부 미작동하거나 오류가 있는 부분은 임으로 수정하여 사용하였다.


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

설정

트랙백

댓글