{!See https://docs.google.com/document/d/1takg_GmIBBKKTj-GHZCwzxohpQz7Bhekivkk72kYMtE/edit for reference implementation of OneTrust, dataLayer and GTM} {!OneTrust Cookies Consent} {!OneTrust Cookies Consent end} {!dataLayer initialization push} {!dataLayer initialization push end} {!Google Tag Manager} {!Google Tag Manager end} 프레임 설정 스크립팅 API | High Definition RP | 10.5.0
docs.unity3d.com
"{0}"의 검색 결과

    목차 표시/숨기기

    프레임 설정 스크립팅 API

    고해상도 렌더 파이프라인(HDRP)에서 프레임 설정은 Camera, Reflection Probe, Planar Reflection Probe와 같은 렌더링 컴포넌트가 씬을 렌더링하는 방법을 제어합니다. 전체 프로젝트용으로 기본 프레임 설정을 지정한 다음 특정 렌더링 컴포넌트에 대해 오버라이드할 수 있습니다. 즉 각 프레임 설정은 HDRP 에셋에 설정되어 있는 기본 값이 있으며 씬의 각 개별 렌더링 컴포넌트는 이 값에 대해 오버라이드합니다. 이는 특정 효과를 사용할 필요가 없는 낮은 우선순위의 렌더링 컴포넌트가 있는 경우 유용합니다. 렌더링 컴포넌트가 오버라이드하는 기본 프레임 설정을 지정하기 위해 각 렌더링 컴포넌트에 오버라이드 마스크가 포함됩니다. 마스크는 각 비트가 두 개의 상태(0은 비활성화, 1은 활성화) 중 하나를 나타내는 비트의 배열입니다. 오버라이드 마스크의 각 비트는 특정 프레임 설정의 오버라이드 상태를 나타냅니다.

    특정 렌더링 컴포넌트에 대한 프레임 설정의 최종 값을 구하기 위해 HDRP는 아래 단계를 수행합니다.

    1. 프레임 설정에 대한 프로젝트 전체 기본 값을 확인합니다. 이 단계에서 HDRP는 HDRP 에셋의 프레임 설정에 저장되어 있는 현재 값을 확인합니다.
    2. 프레임 설정에 해당하는 비트가 설정되어 있는지 여부를 확인하기 위해 렌더링 컴포넌트의 오버라이드 마스크를 확인합니다. 오버라이드 마스크에 있는 프레임 설정의 비트 상태는 렌더링 컴포넌트의 인스펙터에 있는 Frame Setting 왼쪽의 오버라이드 체크박스 상태에 해당합니다.
    3. 렌더링 컴포넌트의 커스텀 프레임 설정에서 프레임 설정의 오버라이드 값을 구합니다.
    4. 결과를 검사합니다. 프로젝트를 가볍게 하기 위해 HDRP 에셋에서 사용하는 기능을 지정할 수 있습니다. 수정하려는 프레임 설정이 사용할 수 없는 기능에 영향을 주는 경우 Unity는 이 최종 검사 패스에서 이를 폐기합니다. HDRP가 사용할 수 없는 기능을 처리할 수 없도록 하려면 스크립팅 API를 통해 검사 프로세스에 액세스할 수 없습니다.

    기본 프레임 설정 수정

    기본 프레임 설정은 HDRP 에셋 안에 있으므로 런타임 시 수정하는 것은 좋지 않습니다. 대신 Default Settings tab의 Edit 모드에서 수정할 수 있습니다.

    개별 기본 프레임 설정을 다음과 같이 세 가지 타입의 렌더링 컴포넌트로 설정할 수 있습니다.

    • 카메라
    • 실시간 반사 프로브 및 실시간 평면 반사 프로브
    • 베이크된/커스텀 반사 프로브 및 베이크된/커스텀 평면 반사 프로브

    현재는 기본 프레임 설정을 수정하는 스크립팅 API가 없습니다.

    특정 렌더링 컴포넌트에 대한 프레임 설정 수정

    HDRP는 렌더링 컴포넌트에 연결된 추가 데이터 컴포넌트의 렌더링 컴포넌트에 대한 프레임 설정을 저장합니다. 추가 데이터 컴포넌트는 다음과 같습니다.

    렌더링 컴포넌트 추가 데이터 컴포넌트
    Camera HDAdditionalCameraData
    Reflection Probe HDAdditionalReflectionData

    프레임 설정 값을 수정하려면 첫 번째 단계는 추가 데이터 컴포넌트에 대한 레퍼런스를 가져오는 것입니다. 이렇게 하려면 public 변수를 생성하여 인스펙터에 할당하거나 T가 추가 데이터 컴포넌트 타입인 GetComponent()를 사용합니다.

    다음은 프레임 설정 오버라이드 마스크에 액세스합니다. 이는 오버라이드된 값을 사용할 프레임 설정을 제어하며 FrameSettingsOverrideMask 타입입니다. 프레임 설정 오버라이드 마스크 액세스는 카메라나 반사 프로브의 프레임 설정을 수정하고자 하는지 여부에 따라 다릅니다.

    • Camera: HDAdditionalCameraData.renderingPathCustomFrameSettingsOverrideMask
    • Reflection Probe: HDAdditionalReflectionData.frameSettingsOverrideMask

    마스크의 비트를 설정/설정 해제하는 방법을 포함하여 FrameSettingsOverrideMask에 사용할 수 있는 API에 대한 자세한 내용은 FrameSettingsOverrideMask 스크립팅 API를 참조하십시오.

    마지막으로 프레임 설정 구조 자체에 액세스합니다. 여기서 각 프레임 설정에 대한 실제 값을 제어하며 FrameSettings 타입입니다. 프레임 설정 액세스는 또한 카메라나 반사 프로브의 프레임 설정을 수정하고자 하는지 여부에 따라 다릅니다.

    • Camera: HDAdditionalCameraData.renderingPathCustomFrameSettings
    • Reflection Probe: HDAdditionalReflectionData.frameSettings

    프레임 설정 값을 편집하는 방법을 포함하여 FrameSettings에 사용할 수 있는 API에 대한 자세한 내용은 FrameSettings 스크립팅 API를 참조하십시오.

    프레임 설정 열거형

    일부 프레임 설정에서 값을 쉽게 설정하도록 HDRP는 다음의 열거형 타입을 제공합니다.

    LitShaderMode

    디퍼드 렌더링과 포워드 렌더링 사이에서 렌더링 컴포넌트를 전환하는 데 도움이 되는 열거형입니다.

    각 열거형 값이 수행하는 작업에 대한 자세한 내용은 LitShaderMode를 참조하십시오.

    LODBiasMode

    HDRP가 LOD 바이어스를 계산하는 방법을 정의하는 열거형입니다.

    각 열거형 값이 수행하는 작업에 대한 자세한 내용은 LODBiasMode를 참조하십시오.

    MaximumLODLevelMode

    HDRP가 최대 LOD 수준을 계산하는 방법을 정의하는 열거형입니다.

    각 열거형 값이 수행하는 작업에 대한 자세한 내용은 MaximumLODLevelMode를 참조하십시오.

    FrameSettingsField

    각 엔트리가 특정 프레임 설정을 나타내는 열거형입니다. 이 열거형의 엔트리 리스트에 대해서는 FrameSettingsField를 참조하십시오.

    각 프레임 설정에 대한 엔트리와 마찬가지로 이 열거형은 편의와 내부 사용을 위해 -1로 설정되어 있는 FrameSettingsField.None 값도 포함합니다.

    FrameSettingsOverrideMask 스크립팅 API

    이는 오버라이드 마스크를 저장하는 단일 필드가 있는 구조입니다. 이 구조와 포함되어 있는 API에 대한 자세한 내용은 FrameSettingsOverrideMask를 참조하십시오.

    오버라이드 마스크에서 기존의 프레임 설정에 대한 비트에 쉽게 액세스할 수 있도록 HDRP는 FrameSettingsField 열거형을 제공합니다. 예를 들어 이 열거형을 사용하여 Opaque Objects 프레임 설정을 오버라이드하는 역할을 담당하는 비트를 찾을 수 있습니다. 이렇게 하려면 this[(int)FrameSettingsField.OpaqueObjects]을 수행합니다.

    다음의 예시는 렌더링 컴포넌트의 오버라이드 마스크에 있는 humanizedData와 렌더링 컴포넌트의 커스텀 프레임 설정을 비교하는 방법을 보여줍니다. 일부 지정된 커스텀 프레임 설정이 있지만 마스크는 이 렌더링 컴포넌트가 기본 프레임 설정을 사용한다는 의미로 모두 0으로 되어 있습니다.

    FrameSettings 스크립팅 API

    이는 렌더링 컴포넌트가 씬을 렌더링하는 방법에 대한 정보가 포함되어 있는 구조입니다. 이 구조와 포함되어 있는 API에 대한 자세한 내용은 FrameSettings를 참조하십시오.

    예제

    다음의 예시는 카메라의 프레임 설정을 변경하여 카메라가 불투명 게임 오브젝트를 렌더링하지 않는 컴포넌트를 보여줍니다. 여기에는 프레임 설정을 변경할 카메라를 나타내는 공용 필드인 cameraToChange와 카메라의 프레임 설정을 변경하는 로직이 포함되어 있는 공용 함수인 RemoveOpaqueObjectsFromRendering가 있습니다.

    using UnityEngine;
    using UnityEngine.Rendering.HighDefinition;
    
    public class ChangeFrameSettings : MonoBehaviour
    {
    	public Camera cameraToChange;
    
    	public void RemoveOpaqueObjectsFromRendering()
    	{
    		HDAdditionalCameraData hdCameraData = cameraToChange.GetComponent<HDAdditionalCameraData>();
    		
    		hdCameraData.renderingPathCustomFrameSettingsOverrideMask.mask[(int)FrameSettingsField.OpaqueObjects] = true;
    
    		hdCameraData.renderingPathCustomFrameSettings.SetEnabled(FrameSettingsField.OpaqueObjects, false);
    	}
    }
    
    문서 개요
    맨 위로
    Copyright © 2023 Unity Technologies — 상표 및 이용약관
    • 법률정보
    • 개인정보처리방침
    • 쿠키
    • 내 개인정보 판매 금지
    • Your Privacy Choices (Cookie Settings)