목록Unity/Shader (33)
스토리지

Shader "Custom/Rock" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _Tex1 ("Albedo (RGB)", 2D) = "black" {} // _Tex2 ("Albedo (RGB)", 2D) = "black" {} // _Tex3 ("Albedo (RGB)", 2D) = "black" {} _Bump ("Albedo (RGB)", 2D) = "bump" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Standard fullforwardshado..

밝은 곳은 더 밝게, 어두운 곳은 더 어둡게 보이게 하는 기능. Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpMap ("Albedo (RGB)", 2D) = "bump" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5 _Metallic ("Metallic", Range(0,1)) = 0.0 _Occlusion ("Occlusion", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf Standard sampler2D _MainTex; sampler2..

금속 재질들의 Asset들을 받아보면 이상하게 생긴 텍스쳐들을 볼 수 있다. 그것들의 공통점은 이름에 Normal이 들어간다는 것이다. 이 텍스쳐는 금속의 울퉁불퉁함을 표현하는 텍스쳐이고 데이터로 보면 된다. 이 데이터는 SurfaceOutputStandard 구조체의 멤버인 Normal에 대입함으로서 데이터를 삽입할 수 있다. 라이브러리에 UnpackNormal(fixed4) 함수로 구현이 가능하다. *UnpackNormal 함수 구현 부 더보기 inline fixed3 UnpackNormal(fixed4 packednormal) { #if defined(UNITY_NO_DXT5nm) return packednormal.xyz * 2 - 1; #else return UnpackNormalmapRGorA..

모든 면을 검정으로 칠함 => 변수를 0으로 초기화 하는 것과 비슷한 맥락이다. Color Mask를 지정하지 않고 칠해도 된다. 특정 Texture가 들어갈 위치에 색을 칠한다. 코드로 연결 ( CG : lerp 함수 이용 ) Stone.shader Shader "Custom/Stone" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _SubTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf Standard fullforwardshadows sampler2D _MainTex; sampler2D _..

Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _MainTex2 ("Albedo (RGB)", 2D) = "white" {} _MainTex3 ("Albedo (RGB)", 2D) = "white" {} _MainTex4 ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf Standard fullforwardshadows sampler2D _MainTex; sampler2D _MainTex2; sampler2D _MainTex3; sampler2D _MainTex4; ..

1. 불 만들기 Fire.shader Shader "Custom/Fire" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _SubTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Transparent" "Queue"="Transparent" } CGPROGRAM #pragma surface surf Standard alpha:fade sampler2D _MainTex; sampler2D _SubTex; struct Input { float2 uv_MainTex; float2 uv_SubTex; }; void surf (Input IN, inout SurfaceOutpu..

1. 알파 값 없애기 Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType" = "Transparent" "Queue" = "Transparent" } LOD 200 CGPROGRAM #pragma surface surf Standard alpha:fade sampler2D _MainTex; struct Input { float2 uv_MainTex; }; void surf (Input IN, inout SurfaceOutputStandard o) { fixed4 c = tex2D(_MainTex, IN.uv_MainTex); o.Emission = c.rgb..

Time을 이용하여 애니메이션을 제작할 수 있다. Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _V ("V Value", Range(-1,1)) = 0 _U ("U Value", Range(-1,1)) = 0 _UV ("UV Value", Range(-1,1)) = 0 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM // Physically based Standard lighting model, and enable shadows on all light types #pragma surface surf Standard fullforwardshadow..

색상정보를 저장하고 있는 테이블이다. UV데이터가 없는 텍스쳐는 그냥 메모리에 올라가 있는 색 없는 텍스쳐에 불과하다. 그래서 변수 형식도 sample2D이다. Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _V ("V Value", Range(-1,1)) = 0 _U ("U Value", Range(-1,1)) = 0 _UV ("UV Value", Range(-1,1)) = 0 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM // Physically based Standard lighting model, and enable shadows on a..

Test1.shader Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Standard fullforwardshadows sampler2D _MainTex; struct Input { float2 uv_MainTex; }; void surf (Input IN, inout SurfaceOutputStandard o) { fixed4 c = tex2D (_MainTex, IN.uv_MainTex); o.Albedo = c.rgb; o.Alpha = c.a; } ENDC..