Lighting Estimation API 提供詳細的資料,可讓您在轉譯虛擬物件時模擬各種光線提示。ARCore 支援三種光源估計模式:
必要條件
請務必瞭解基本 AR 概念 以及如何在繼續操作前設定 ARCore 工作階段。
啟用燈光估計
請按照下列步驟在應用程式中啟用亮度預估功能。
- 設定 AR Foundation 專案或 ARCore Extensions 專案。
- 在 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
中啟用自動配置功能。 - 在
ARSessionOrigin
中新增AREnvironmentProbeManager
元件。