유니티의 모든 렌더링은 Shaders로 이루어집니다. 쉐이더는 그래픽 하드웨어가 렌더링을 위해 어떻게 셋업되는지 설정하게 해주는 스크립트 입니다. 유니티는 60개가 넘는 내장된 쉐이더를 가지고 있는데 사용자가 그들을 확장할 수도 있습니다. 그 내장된 쉐이더는 내장 셰이더(Built-in Shader) 가이드에 문서화 되어있습니다.
유니티에서 쉐이더는 세가지 방법으로 만들어 질수 있습니다:
어떤 타입을 선택하던 쉐이더 코드의 상당 부분은 쉐이더 구조를 정리하는ShaderLab으로 변환됩니다. 이것은 아래와 같습니다:
Shader "MyShader" { Properties { _MyTexture ("My Texture", 2D) = "white" { } // other properties like colors or vectors go here as well } SubShader { // here goes the 'meat' of your // - surface shader or // - vertex and fragment shader or // - fixed function shader } SubShader { // here goes a simpler version of the SubShader above that can run on older graphics cards } }
ShaderLab reference에서 ShaderLab문법의 기본적인 개념을 읽고 아래에 있는 튜토리얼을 해보기를 권합니다.
튜토리얼에는 다른 종류의 쉐이더를 위한 많은 예제가 있습니다. 특히 표면 쉐이더의 더 많은 예제를 위해서는 Resources section에서 유니티 내장 쉐이더의 소스코드를 볼 수 있습니다. 유니티의 Image Effects 패키지는 많은 흥미있는 꼭지점과 조각 쉐이더를 포함하고 있습니다.
쉐이더의 개요를 읽고 shader reference도 확인하세요!