畫面中呈現逼真的淺色虛擬物體

Lighting Estimation API 提供詳細的資料,可讓您在轉譯虛擬物件時模擬各種光線提示。ARCore 支援三種光源估計模式:

  1. 已停用
  2. 環境強度模式
  3. 環境 HDR 模式

必要條件

請務必瞭解基本 AR 概念 以及如何在繼續操作前設定 ARCore 工作階段

啟用燈光估計

請按照下列步驟在應用程式中啟用亮度預估功能。

  1. 設定 AR Foundation 專案ARCore Extensions 專案
  2. Hierarchy 分頁中,前往 XR Session Origin > AR Camera

  1. AR Camera Manager 元件下方,選取 Light Estimation
  2. Light Estimation 下拉式選單中選取要使用的模式。

啟用環境 HDR 模式

環境 HDR 模式可啟用下列光源預估設定:

系統會在符合下列條件時自動啟用這個模式:

啟用微光強度模式

當您在 ARCameraManager 元件中選取「微光強度模式」時,系統會自動啟用基本光源預估功能。

環境強度模式會啟用下列光線預估設定:

  • 外圍色彩
  • 環境強度

在場景中使用燈光資訊

取得正確的光線設定後,就可以為場景中的虛擬物體打光,就像它們是真實世界的一部分。

在啟用光源估計功能時,ARCameraManager 元件可引發 frameReceived 事件,以估算影格的亮度。frameReceived 事件的資訊會以 ARLightEstimationData 的形式儲存在 ARCameraFrameEventArgs 結構中。

如要在執行階段變更燈具的參數,請按照下列步驟操作。

  1. 建立或修改場景中現有的定向光源。
  2. 將新的腳本附加至定向光源。

    // 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. ARSessionOrigin 中新增 AREnvironmentProbeManager 元件。