Unity 표면 셰이더 가이드

이 문서는 Unity의 표면 셰이더와 커스텀 조명 모델에 대한 설명과 다양한 예제를 포함하고 있습니다.

목차

  1. 개요
  2. 표면 셰이더와 조명 모델
  3. 조명 모델 선언
  4. 커스텀 글로벌 일루미네이션(GI)
  5. 예제

1. 개요

Unity의 내장 조명 모델은 디퓨즈 조명(Lambert)과 스페큘러 조명(Blinn-Phong) 두 가지로 구성되어 있습니다. 이 모델들은 Lighting.cginc 파일에 정의됩니다. 사용자가 커스텀 조명 모델을 구현하는 데 있어 표면 셰이더를 사용할 수 있습니다.

2. 표면 셰이더와 조명 모델

표면 셰이더를 사용하여 사용자 정의하는 조명 모델은 기본적으로 몇 가지 규칙을 준수하는 Cg/HLSL 함수들로 구성됩니다.

기능 이름 내장 렌더 파이프라인 유니버설 렌더 파이프라인(URP) 고해상도 렌더 파이프라인(HDRP) 커스텀 SRP
표면 셰이더 지원 지원 지원 안 함 지원 안 함 지원 안 함

지원되지 않는 경우

URP 및 HDRP에서 셰이더 오브젝트를 보다 간단하게 만드는 방법으로는 셰이더 그래프를 이용할 수 있습니다.

3. 조명 모델 선언

조명 모델은 "Lighting"으로 시작하는 일반 함수로 구성됩니다. 셰이더 파일의 어디에서든 모델을 선언할 수 있으며 포함된 파일에서도 선언할 수 있습니다. 주요 함수는 다음과 같습니다:

  • half4 Lighting<Name>(SurfaceOutput s, UnityGI gi); - 뷰 방향을 사용하지 않는 모델.
  • half4 Lighting<Name>(SurfaceOutput s, half3 viewDir, UnityGI gi); - 뷰 방향을 사용하는 모델.
  • half4 Lighting<Name>_Deferred(SurfaceOutput s, UnityGI gi, out half4 outDiffuseOcclusion, out half4 outSpecSmoothness, out half4 outNormal); - 디퍼드 셰이팅 경로에 사용되는 모델.

뷰 방향을 사용하거나 사용하지 않도록 조명 모델을 선택하면 됩니다.

4. 커스텀 글로벌 일루미네이션(GI)

디코딩된 라이트맵 데이터와 프로브를 커스터마이징하는 방법은 다음 함수를 선언하여 가능하다:

  • half4 Lighting<Name>_GI(SurfaceOutput s, UnityGIInput data, inout UnityGI gi);

다양한 내장 함수를 사용할 수 있으며 그 예시는 Unity의 UnityGlobalIllumination.cginc 파일에서 확인할 수 있습니다.

5. 예제

표면 셰이더와 관련된 다양한 예제는 다음 문서들을 참조하십시오:

  • 표면 셰이더 예제
  • 표면 셰이더 조명 예제

이 문서는 Unity Technologies의 저작권을 반영합니다. 2022.3 버전이 출판되었습니다.

추가적인 질문이나 커뮤니티의 답변에 대한 정보는 Unity 포럼이나 기술 자료에서 확인할 수 있습니다.

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