Version: 2020.3
언어: 한국어
셰이더 작성
ShaderLab

셰이더 작성 개요

언어

Unity용 셰이더를 작성할 때는 다음 언어를 사용합니다.

  • HLSL이라는 프로그래밍 언어. 셰이더 프로그램 자체를 작성할 때 사용합니다. HLSL에 대한 자세한 내용은 Unity의 HLSL을 참조하십시오.
  • Unity 전용 언어인 ShaderLab. 셰이더 프로그램의 컨테이너인 셰이더 오브젝트를 정의할 때 사용합니다. ShaderLab에 대한 자세한 내용은 ShaderLab을 참조하십시오.

각 플랫폼용으로 각기 다른 언어를 사용할 필요가 없습니다. Unity가 각 그래픽스 API용으로 HLSL 코드와 ShaderLab 코드를 여러 언어로 컴파일합니다. 자세한 내용은 셰이더 컴파일을 참조하십시오.

참고: 원하는 경우, 셰이더 프로그램을 직접 GLSL 및 Metal로 작성할 수도 있습니다. 이는 권장되지 않으며, 일반 워크플로의 일부로 필요하지도 않습니다. GLSL 사용 방법에 대한 자세한 내용은 Unity의 GLSL을 참조하십시오.

여러 가지 셰이더 작성 방법

여러 가지 방법으로 셰이더를 작성할 수 있습니다.

  • 가장 자주 사용되는 방법은 HLSL로 버텍스 및 프래그먼트 셰이더를 작성하는 것입니다. 자세한 내용은 버텍스 및 프래그먼트 셰이더 작성을 참조하십시오.
  • 빌트인 렌더 파이프라인에서 표면 셰이더를 작성할 수도 있습니다. 이는 조명과 상호작용하는 셰이더를 간단하게 작성하는 방법입니다. 자세한 내용은 표면 셰이더를 참조하십시오.
  • Unity는 이전 버전과의 호환성을 위해 “고정된 함수 스타일의” ShaderLab 커맨드도 지원합니다. 이러한 커맨드를 사용하면 HLSL을 사용하지 않고도 ShaderLab에서 셰이더를 작성할 수 있습니다. 더 이상 권장되지는 않지만, ShaderLab 레거시 기능 페이지에 문서화되어 있습니다.

여러 그래픽스 API를 위한 셰이더 작성

일부 경우에는 타게팅하는 그래픽스 API에 따라 셰이더 코드를 다르게 작성해야 합니다. 이에 대한 자세한 내용은 여러 그래픽스 API를 위한 셰이더 작성을 참조하십시오.

셰이더 작성
ShaderLab