unity/쉐이더(13)
-
0510 Alpha Blending
Z버퍼 렌더링 : 중첩된 물체까지의 거리를 비교해서 보이는 점에서 가장 거리가 짧은 값이 z버퍼에 저장된다. 카메라의 깊이 버퍼를 만들어낸다. 오버드로우: 뒷쪽에 있는 것을 먼저 그리고 그 위에 있는 것을 나중에 그리는 것. 알파 블렌딩: 오브젝트들을 그리는 순서가 정해져 있지 않다. 오브젝트들이 그려질 때마다 z버퍼를 참고해서 앞뒤를 판정한다. 그리고 그려질 픽셀과 안 그려질 픽셀을 결정한다. 1. 불투명을 먼저 그린다. 2. 반투명을 나중에 그린다. 3. 반투명인 물체들은 멀리있는 것부터 차례로 그려진다. Shader "Custom/Grass" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderTy..
2021.05.10 -
0507 쉐이더 Cube Map+메터리얼에 배경 반사하기
Shader "Custom/CubeMap" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _Cube("Cube Map", Cube) = "" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Lambert #pragma target 3.0 sampler2D _MainTex; samplerCUBE _Cube; struct Input { float2 uv_MainTex; float3 worldRefl; }; void surf (Input IN, inout SurfaceOutput o) { fixed4 c = tex2D(_MainTex, IN.uv_..
2021.05.07 -
0507 쉐이더 Diffuse Wraping
이 쉐이더를 쓰려면 ramp texture가 따로 필요하다. 그냥 구글에서 아무 이미지나 다운 받아서 쓰기. 빛 공식으로 쓰이는 노멀과 라이트 벡터의 내적을 uv로 사용한다. 저 uv색 대신 ndotl을 넣으면 Shader "Custom/DiffuseWarp" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _RampTex("Ramp", 2D) = "white" {} _BumpMap("Normal Map",2D) = "bump"{} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf _Warp noambient #pragma target 3.0 samp..
2021.05.07 -
0507 쉐이더 툰 그래픽 만들기
☆투 패스로 외곽선 만들기 Shader "Custom/toon" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _LineThickness("Line Thickness",Range(0.001,0.01)) = 0.01 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 Cull Front CGPROGRAM #pragma surface surf _NoLight vertex:vert noshadow noambient sampler2D _MainTex; float _LineThickness; void vert(inout appdata_full v) { //노말의 방향으로 늘어났다. v.vertex.xyz = v.v..
2021.05.07 -
0506 쉐이더 블린퐁
하프벡터 : normalize (Light V+View V) N과 1 사이의 각을 구하는 공식 > 블린퐁 공식 Shader "Custom/BlinnPhong" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _Bump("Normal Map", 2D) = "bump" {} } SubShader { Tags { "RenderType" = "Opaque" } LOD 200 CGPROGRAM #pragma surface surf _MyLambert #pragma target 3.0 sampler2D _MainTex; sampler2D _Bump; struct Input { float2 uv_MainTex; float2 uv_Bump; }; void surf..
2021.05.06 -
0506 쉐이더 Rim Light + Hologram
역광 Rim Light 프레넬 공식을 이용해서 빛의 반사율을 계산한다. Shader "Custom/test" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpMap("Normal", 2D) = "bump" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Standard fullforwardshadows #pragma target 3.0 sampler2D _MainTex; sampler2D _BumpMap; struct Input { float2 uv_MainTex; float2 uv_BumpMap; float3 viewDir; }; v..
2021.05.06