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

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 元件。