Unity 메타 패스 및 라이트맵 셰이더 개요

이 문서는 Unity의 라이트 매핑 시스템과 그에 대한 셰이더 작성 방법에 대해 설명합니다. 메타 패스를 사용하여 실시간 렌더링에 영향을 주지 않으면서도 게임 오브젝트의 조명 효과를 조절할 수 있습니다.

메타 패스란 무엇인가?

메타 패스는 전역 조명 시스템에서 알베도 및 이미션 값을 제공하는 셰이더 패스입니다. 즉, 이 기능을 통해 라이트베이킹 과정에서 게임 오브젝트의 조명 효과를 조절할 수 있으며, 런타임 시의 형상에는 영향을 주지 않습니다.

예시

예를 들어, 절벽의 녹색 이끼가 라이트매핑에서 더 과장된 효과를 원하면서도 실제 렌더링에서는 색상을 변경하지 않기를 원할 수 있습니다.

Unity의 빌트인 머티리얼

Unity의 모든 빌트인 머티리얼은 메타 패스를 포함하고 있으며, 일반적으로 추가 작업 없이도 사용할 수 있습니다. 커스텀 셰이더에서는 필요에 따라 메타 패스를 추가할 수 있습니다.

메타 패스가 포함된 셰이더 예시

다음은 메타 패스가 포함된 셰이더의 예시입니다. 이 셰이더는 런타임 시 형상에 영향을 주지 않으며, 조명 베이킹 시스템에서 사용되는 알베도 색상 및 텍스처를 설정합니다.

Shader "Custom/metaPassShader" {
    Properties {
        _Color ("Color", Color)=(1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D)="white" {}
        ...
    }

    SubShader {
        Pass {
            Name "META"
            Tags {"LightMode"="Meta"}
            Cull Off
            CGPROGRAM
            ...
            ENDCG
        }
        ...
    }
}

메타 패스 기술 정보

Unity의 메타 패스는 표면에서 알베도 값을 추출하고 전역 조명과 라이트 매핑을 처리하는 데 사용됩니다. 메타 패스는 물리적으로 정확한 알베도를 대신하여 메탈릭 색상으로 조정할 수 있습니다. 이러한 기능을 이용하여 커스텀 메타 패스를 작성할 수도 있습니다.

커스텀 RGB 투명도

Unity는 기본적으로 단색 투명도를 사용합니다. 하지만 라이트매핑 중에 커스텀 RGB 투명도를 설정할 수 있습니다. 이를 통해 머티리얼의 알베도와 독립적으로 투명도를 제어할 수 있습니다.

커스텀 RGB 투명도 설정 예

다음의 라인 코드를 ShaderLab에 추가하면 머티리얼 인스펙터에서 커스텀 투명도 텍스처를 사용할 수 있습니다.

_TransparencyLM ("Transmissive Texture", 2D) = "white" {}

이 코드 줄을 추가하면, "Transmissive Texture"라는 이름의 프로퍼티가 생성되어 원하는 텍스처를 할당할 수 있습니다.

요약

이 문서는 메타 패스와 관련된 여러 기능, 라이트매핑을 효과적으로 활용하기 위한 셰이더 작성 방법, 그리고 커스텀 RGB 투명도에 대해 설명하였습니다. 이를 통해 사용자들은 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