unity/쉐이더(13)
-
0506 쉐이더 라이트닝 연산
물리 벡터 : 방향+크키 수 벡터 : 위치 각각의 버텍스에도 벡터를 가지고 있다. 노멀벡터 - 조명벡터 = 밝기가 계산된다. (-1이면 가장 어두움) docs.unity3d.com/Manual/SL-SurfaceShaders.html Unity - Manual: Writing Surface Shaders Vertex and fragment shader examples for the Built-in Render Pipeline Surface Shaders and rendering paths Writing Surface Shaders In the Built-in Render Pipelne, Surface Shaders are a streamlined way of writing shadersA program ..
2021.05.06 -
0504 쉐이더 커스텀 라이트 Lambert, BlinnPhong, Standard
램버트 : 스페큘러 공식이 없고, 밝고 어두움만 표현된다. 가볍고 저사양 기계에서도 잘 돌아간다. 더보기 Shader "Custom/lambert" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Lambert sampler2D _MainTex; struct Input { float2 uv_MainTex; }; void surf (Input IN, inout SurfaceOutput o) { fixed4 c = tex2D (_MainTex, IN.uv_MainTex) ; o.Albedo = c.rgb;..
2021.05.04 -
0504 쉐이더 특정 부분만 반짝거리게 하기
방법 #1. Shader "Custom/rock" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _MainTex2("Albedo (RGB)", 2D) = "white" {} _BumpMap("Normal Map",2D) = "bump"{} _Glossiness ("Smoothness", Range(0,1)) = 0.5 } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf Standard sampler2D _MainTex; sampler2D _MainTex2; sampler2D _BumpMap; struct Input { float2 uv_MainTex; float2 ..
2021.05.04 -
0504 버텍스에 컬러 입히고 다중 텍스쳐 반영하기
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; str..
2021.05.04 -
0503 쉐이더를 이용해서 불 이펙트 만들기
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; o.Alpha = c.a; ..
2021.05.03 -
0503 쉐이더 UV
가로는 U, 세로는 V 둘을 시각적으로 나타내기 void surf (Input IN, inout SurfaceOutputStandard o) { fixed4 c = tex2D(_MainTex, IN.uv_MainTex); o.Albedo = IN.uv_MainTex.x; } ENDCG void surf (Input IN, inout SurfaceOutputStandard o) { fixed4 c = tex2D(_MainTex, IN.uv_MainTex); o.Albedo = IN.uv_MainTex.y; } ENDCG Shader "Custom/Test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _V("v value",Range(-1,1)) ..
2021.05.03