장면에서 현실적으로 밝은 가상 객체

Lighting Estimation API는 가상 객체를 렌더링할 때 다양한 광원 신호를 모방할 수 있는 자세한 데이터를 제공합니다. ARCore는 세 가지 광 추정 모드를 지원합니다.

  1. 사용 중지됨
  2. 주변 강도 모드
  3. 환경 HDR 모드

기본 요건

계속 진행하기 전에 기본 AR 개념ARCore 세션 구성 방법을 이해해야 합니다.

밝기 추정 사용 설정

앱에서 광원 추정을 사용 설정하려면 다음 단계를 따르세요.

  1. AR Foundation 프로젝트 또는 ARCore 확장 프로그램 프로젝트를 설정합니다.
  2. Hierarchy 탭에서 XR Session Origin > AR Camera로 이동합니다.

  1. AR Camera Manager 구성요소 아래에서 Light Estimation를 선택합니다.
  2. Light Estimation 드롭다운 메뉴에서 사용하려는 모드를 선택합니다.

환경 HDR 모드 사용 설정

환경 HDR 모드를 사용하면 다음과 같은 빛 추정 설정을 사용할 수 있습니다.

이 모드는 다음 기준이 충족되면 자동으로 사용 설정됩니다.

주변 강도 모드 사용 설정

ARCameraManager 구성요소에서 주변 강도 모드를 선택하면 기본 광원 추정이 자동으로 사용 설정됩니다.

주변 강도 모드를 사용하면 다음과 같은 빛 추정 설정을 사용할 수 있습니다.

  • 주변 색상
  • 주변 강도

장면에 조명 정보 사용

적절한 광원 설정을 얻었다면 실제 세상의 일부인 것처럼 장면에 있는 가상 객체에 조명을 비울 수 있습니다.

ARCameraManager 구성요소는 광원 추정이 사용 설정된 경우 프레임의 조명 상태를 추정하는 frameReceived 이벤트를 발생시킬 수 있습니다. frameReceived 이벤트의 정보는 ARCameraFrameEventArgs 구조체에 ARLightEstimationData로 저장됩니다.

런타임에 광원의 매개변수를 변경하려면 다음 단계를 따르세요.

  1. 장면에 기존의 방향 광원을 만들거나 수정합니다.
  2. Directional Light에 새 스크립트를 첨부합니다.

    // Sample Lighting Estimation script
    
    Light light;
    void Awake ()
    {
        light = GetComponent<Light>();
    }
    
    void OnEnable()
    {
        if (cameraManager != null)
            cameraManager.frameReceived += FrameChanged;
    }
    
    void OnDisable()
    {
        if (cameraManager != null)
            cameraManager.frameReceived -= FrameChanged;
    }
    
    void FrameChanged(ARCameraFrameEventArgs args)
    {
       // Modify `light` parameters using ARCameraFrameEventArgs.
    }
    
  3. 이 새 스크립트를 수정하여 빛의 변화를 감지합니다. 그 방법을 보여주는 예는 Unity의 BasicLightEstimation.csHDRLightEstimation.cs 스크립트를 확인하세요.

장면에서 환경 프로브 사용

다음 단계에 따라 장면에서 환경 프로브를 사용 설정합니다.

  1. 장면의 ARSessionOrigin에 자동 배치를 사용 설정합니다.
  2. AREnvironmentProbeManager 구성요소를 ARSessionOrigin에 추가합니다.