Version: Unity 6.0 (6000.0)
언어 : 한국어
코드에서 셰이더 작성
셰이더 오브젝트 기초

코드에서 셰이더 작성 소개

Unity에서 커스텀 셰이더를 작성하는 방식은 사용 중인 렌더 파이프라인에 따라 다릅니다.

언어

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

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

각 플랫폼에 각기 다른 언어를 사용할 필요가 없습니다. Unity가 각 그래픽스 API용으로 HLSL 코드와__ ShaderLab__셰이더 오브젝트의 구조를 정의하기 위한 Unity 언어입니다. 자세한 정보
See in Glossary
코드를 여러 언어로 컴파일합니다. 자세한 내용은 셰이더 컴파일을 참조하십시오.

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

ShaderLab

ShaderLab은 셰이더 소스 파일에서 사용하는 선언 언어입니다. 중첩 중괄호 구문을 사용하여 셰이더 오브젝트를 설명합니다.

ShaderLab에서 여러 가지를 정의할 수 있지만, 가장 자주 정의되는 사항은 다음과 같습니다.

여러 가지 셰이더 작성 방법

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

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

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

타게팅하는 그래픽스 API에 따라 셰이더 코드를 다르게 작성해야 하는 경우가 있습니다. 이에 대한 자세한 내용은 다양한 그래픽스 API에 따른 셰이더 작성을 참조하십시오.

코드에서 셰이더 작성
셰이더 오브젝트 기초