Unity HLSL 셰이더 가이드

개요

HLSL(High-Level Shading Language)은 Unity에서 셰이더를 작성하는 데 사용되는 언어입니다. 이 문서에서는 HLSL의 프리 프로세서 지시문과 GPU 기능 타게팅을 설명합니다.

HLSL의 pragma 지시문

1. 셰이더 요구 사항 지정

셰이더의 요구 사항을 명시할 수 있는 두 가지 주요 지시문은 #pragma require#pragma target입니다.

  • #pragma require를 사용하여 특정 GPU 기능을 요구할 수 있습니다.
  • #pragma target을 사용하여 셰이더 모델을 설정합니다.

이 두 지시문을 활용하여 셰이더의 호환성을 보장하는 것이 중요합니다.

2. 기본 동작

Unity는 기본적으로 #pragma require derivatives로 셰이더를 컴파일합니다. 이는 #pragma target 2.5와 동일합니다.

3. 자동 요구 사항 추가

특정 셰이더 단계(예: 지오메트리, 테셀레이션)를 정의하면 Unity가 자동으로 요구 사항 리스트에 해당 기능을 추가합니다.

4. GPU 기능 지정하기

GPU 기능 및 셰이더 모델을 지정할 때는 다음과 같은 예시를 사용할 수 있습니다.

#pragma require integers mrt8
#pragma require integers mrt8 : EXAMPLE_KEYWORD

셰이더 모델을 지정할 때는 다음과 같이 작성할 수 있습니다.

#pragma target 4.0
#pragma target 4.0 EXAMPLE_KEYWORD OTHER_EXAMPLE_KEYWORD

Unity의 셰이더 모델과 요구 사항

셰이더 모델 설명 지원 동등한 #pragma require 값
2.0 DirectX 셰이더 모델 2.0과 동등. 제한된 연산 및 텍스처 명령어 수 모든 플랫폼 해당 없음
3.0 DirectX 셰이더 모델 3.0과 동등 DirectX 11 기능 레벨 10+ derivatives
4.0 DirectX 셰이더 모델 4.0과 동등 DirectX 11 기능 레벨 10+ geometry
5.0 DirectX 셰이더 모델 5.0과 동등 DirectX 11 기능 레벨 11+ tessellation

요구 사항 리스트

설명
interpolators10 10가지 이상의 인터폴레이터 지원
mrt8 최소 8개의 렌더 타겟 지원
derivatives 픽셀 셰이더 도함수 명령어 지원
geometry 지오메트리 셰이더 단계 지원

예제 코드

아래는 HLSL 프리 프로세서 지시문을 사용하는 샘플 코드입니다.

#pragma require integers mrt8
#pragma target 4.0

이 코드는 8개의 렌더 타겟과 DirectX 셰이더 모델 4.0을 필요로 하는 셰이더를 정의합니다.

요약

HLSL 셰이더를 작성할 때는 각 GPU의 기능에 맞춰 #pragma require#pragma target 지시문을 적절히 사용해야 합니다. 이를 통해 다양한 플랫폼에서의 호환성을 높이고, 컴파일 시 발생할 수 있는 오류를 예방할 수 있습니다.

Read more

Unity 매뉴얼 스크립팅 API 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 간단한 해설과 활용 예제들을 포함하고 있습니다. Unity는 게임 개발 플랫폼으로, 스크립팅 API를 통해 게임의 다양한 기능을 제어하고 수정할 수 있습니다. 버전 Unity 스크립팅 API는 여러 버전으로 제공됩니다. 주의 깊게 선택하여 사용하는 것이 중요합니다. 버전 설명 2023.2 최신 기능 및 버그 수정이 추가됨

By 이재협/실장/시스템개발실/PHYSIA

Unity 매뉴얼 스크립팅 API 설명서 해설

이 문서는 Unity의 매뉴얼 스크립팅 API에 대한 정보를 제공하며, 버전에 따라 다르게 적용되는 내용들을 설명합니다. 본 문서에서는 주요 내용을 간단히 정리하고 활용 가능 예제를 통해 이해를 돕겠습니다. 기본 개념 Unity에서 스크립팅 API는 게임 오브젝트와 그들의 동작을 제어하기 위한 강력한 도구입니다. 이를 통해 게임의 로직, 물리 엔진, 애니메이션 및 사용자 인터페이스를

By 이재협/실장/시스템개발실/PHYSIA

Unity 스크립팅 API 가이드

이 문서는 Unity의 스크립팅 API에 대해 설명합니다. Unity는 게임 개발을 위한 인기 있는 엔진으로, 강력한 스크립팅 기능을 제공합니다. 이 가이드는 Unity에서 스크립트를 작성하고 사용하는 방법을 이해하는 데 도움을 드립니다. 목차 * Unity 스크립팅 소개 * 기본 스크립트 생성 * 스크립트 사용 예제 * 응용 프로그램 * 참고 자료 Unity 스크립팅 소개 Unity는 C# 프로그래밍 언어를

By 이재협/실장/시스템개발실/PHYSIA