Unity URP Shader 코드 샘플
요약
본 자료는 Unity URP(Universal Render Pipeline) 환경에서 다양한 셰이더 코드를 학습 및 참고용으로 제공합니다. 기존의 복잡하게 캡슐화된 URP 내장 셰이더 대신, 이해하기 쉽고 순수한 커스텀 Shader 구현체를 목표로 작성되었습니다. 다양한 기본 기능(Base), 조명 모델(Lighting), 특수 효과(Effect)에 대한 코드 예제를 통해 학습 자료로 활용할 수 있습니다.
핵심 포인트
- Unity URP 환경의 다양한 셰이더 코드를 제공합니다.
- 학습 및 참고 목적으로 작성되어 이해하기 쉽습니다.
- 기본 기능, 조명 모델, 특수 효과 등 광범위한 주제를 다룹니다.
URPShaderCodeSample
<img src="https://raw.githubusercontent.com/AnCG7/URPShaderCodeSample/HEAD/Images/Base.png" alt="Base장면" width="20%" /><img src="https://raw.githubusercontent.com/AnCG7/URPShaderCodeSample/HEAD/Images/Lighting.png" alt="Lighting장면" width="20%" /><img src="https://raw.githubusercontent.com/AnCG7/URPShaderCodeSample/HEAD/Images/Cartoon.png" alt="Cartoon장면" width="20%" /><img src="https://raw.githubusercontent.com/AnCG7/URPShaderCodeSample/HEAD/Images/EdgeDetection.png" alt="EdgeDetection장면" width="20%" /><img src="https://raw.githubusercontent.com/AnCG7/URPShaderCodeSample/HEAD/Images/Effect.png" alt="Effect장면" width="20%" />
Unity URP Shader 코드 예제는 Unity 2022.3.55f1c1, Universal RP 14.0.11, DX, Forward 환경에서 작성 및 테스트되었습니다.
개요
학습 과정에서 방대한 자료를 접했는데, 대부분은 코드 조각이거나 Unity의 build-in shader 구현체였습니다. 반면 URP에 내장된 shader는 너무 깊게 캡슐화되어 있고 키워드(keywords)가 너무 많아 학습하기 불편했습니다. 그래서 저는 간단하고 순수한 URP 커스텀 Shader 구현체를 원했고, 이를 통해 학습을 용이하게 하고 다른 URP Shader 작성의 참고 자료로 삼기 위해 여러 가지 일반적인 shader 코드를 작성하게 되었습니다.
직접 자신만의 shader 라이브러리를 만들거나 바로 사용하기 위한 목적이 아니었기 때문에 코드 최적화는 고려하지 않았고, 오직 읽기와 학습에 용이한 방식으로 작성되었습니다.
보충: 원래 Shader Graph로 모든 것을 구현하려고 했으나, 복잡도가 높아지면서 Shader Graph의 제약이 점점 많다는 것을 깨닫게 되어 결국 URP 내에서 Shader를 직접 작성하는 방법을 배우게 되었습니다.
주의: 여러 가지 복잡한 shader 파일에는 참고 자료 주소와 학습에 도움이 되는 주석을 상단과 사용 부분에 추가했습니다.
목차
Base
Texture, Color, Transparent, AlphaTest, Fog, Fresnel, Noise, UVCheck, NormalCheck, TangentCheck, BitangentCheck, VertexColor, VertexAnimation, TextureScrollUV, TextureScreenSpace
Lighting
Ambient, Anisotropic (Hair), BackLight, Blinn-Phong Lighting, Blinn-Phong Specular, Phong Ligting, Phong Specular, Gouraud Lighting, BumpMap (Normal Map), Lambert, Half-Lambert, Wrap, Lightmap, LightProbe, ReflectionProbe, Refraction, Minnaert, Oren-Nayer, Multi-Lighting, Shadow, ReceiveShadow, PBR Common, PBR In Unity URP, MatCap, ParallaxMapping, ParallaxMapping (Self-Shadowing)
Effect
Fractal (Mandelbrot), InteriorMapping (Cubemap), InteriorMapping (Pre-Projected), SimpleDecal(ScreenSpace), Fur Shell
NPR
Cartoon
셀 셰이딩 (Ramp), 셀 셰이딩 (Ramp Specular), 셀 셰이딩 (Ramp Fresnel), 셀 셰이딩 (Procedural), Tone Based Shading, 아웃라인 (Rim), 아웃라인 (Z-Bias), 아웃라인 (Shell Method), 내부 라인 (BenCunXian), 내부 라인 (Distance Field), 스타일라이즈드 하이라이트 (Clear Coat), 스타일라이즈드 하이라이트 (Transform), 스타일라이즈드 하이라이트 (Texture), 스타일라이즈드 하이라이트 (Spread), 림 라이트 (Depth Offset), 페이스 섀도우 SDF
엣지 감지 (Edge Detection)
엣지 감지 색상 (Edge Detection Color), 엣지 감지 깊이 (Edge Detection Depth), 엣지 감지 깊이 법선 (Edge Detection DepthNormal)
도구 (Tools)
스크린샷 캡처 (Capture Screenshot), 아웃라인 스무스 노멀 도구 (Outline Smooth Normals Tool), SDF 생성기 2D(工具示例)
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub GameDev의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기