Lighting Estimation API 提供詳細資料,可讓您在算繪虛擬物件時模擬各種燈光提示。ARCore 支援三種光源估計模式:
必要條件
請務必先瞭解基本 AR 概念,並瞭解如何設定 ARCore 工作階段,再繼續操作。
啟用照明估計功能
請按照下列步驟在應用程式中啟用照明估計功能。
- 設定 AR Foundation 專案或 ARCore 擴充功能專案。
- 在 Hierarchy 分頁中,前往 XR Session Origin > AR Camera。
- 在 AR Camera Manager 元件下方,選取 Light Estimation。
- 在 Light Estimation 下拉式選單中,選取要使用的模式。
啟用環境高動態範圍模式
環境 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
。