Lighting Estimation API 提供詳細的資料,可讓您在轉譯虛擬物件時模擬各種光線提示。ARCore 支援三種光源估計模式:
必要條件
請務必先瞭解基本 AR 概念,以及如何設定 ARCore 工作階段,再繼續操作。
啟用照明估計功能
請按照下列步驟在應用程式中啟用亮度預估功能。
- 設定 AR Foundation 專案或 ARCore 擴充功能專案。
- 在 Hierarchy 分頁中,前往 XR Session Origin > AR Camera。
- 在 AR Camera Manager 元件下方,選取 Light Estimation。
- 在 Light Estimation 下拉式選單中選取要使用的模式。
啟用環境 HDR 模式
環境 HDR 模式可啟用下列光線估計設定:
系統會在符合下列條件時自動啟用這個模式:
- 在 AR 相機管理工具提供的光源估算模式中,選取環境球圈、主光源方向和/或主光強度
- 在
AREnvironmentProbeManager
中啟用環境探針 - 已選取相容的攝影機設定
啟用微光強度模式
當您在 ARCameraManager
元件中選取「微光強度模式」時,系統會自動啟用基本光源預估功能。
微光模式會啟用下列光線估計設定:
- 外圍色彩
- 環境亮度
在場景中使用照明資訊
取得正確的光照設定後,您就可以照亮場景中的虛擬物體,讓這些物體看起來像是真實世界中的一部分。
ARCameraManager
元件可觸發 frameReceived
事件,在啟用照明估計功能時,該事件會估計影格照明條件。frameReceived
事件的資訊會以 ARLightEstimationData
的形式儲存在 ARCameraFrameEventArgs
結構體中。
在執行階段變更光源的參數。
- 建立或修改場景中現有的方向光。
將新指令碼附加至方向光。
// 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. }
修改這個新指令碼,以便偵測燈光變化。如需操作範例,請查看 Unity 的
BasicLightEstimation.cs
和HDRLightEstimation.cs
指令碼。
在場景中使用環境探測
請按照下列步驟在場景中啟用環境探測。
- 在場景的
ARSessionOrigin
中啟用自動配置功能。 - 將
AREnvironmentProbeManager
元件新增至ARSessionOrigin
。