平台專屬指南
Android (Kotlin/Java)
Android NDK (C)
Unity (AR 基礎)
Unreal Engine
打造逼真的 AR 體驗的關鍵要素,就是採用適合的燈光。如果虛擬物體缺少陰影,或圖像的材質無法反映周遭空間,使用者就算無法說明原因,也能察覺到物體不適合拍攝成品。這是因為人類會意識到,物件在環境中的光照方式。Lighting Estimation API 會分析指定圖像中的這類提示,提供場景中的光線詳細資訊。接著,當您在算繪虛擬物件時,可以在與所在位置相同的條件下使用這項資訊,讓使用者保持動力並參與互動。
照明提示
Lighting Estimation API 提供詳細的資料,可讓您在算繪虛擬物體時模擬各種光線提示。這些提示包括陰影、環境光、陰影、鏡面亮光和反射。
陰影
陰影通常具有方向性,能讓觀眾知道光源的來源。
環境光
環境光度是指來自環境的整體散光,讓所有物體清楚可見。
著色
陰影指的是光線的強度。舉例來說,同一物體的不同部分可在同一場景中使用不同的陰影等級,具體取決於與檢視器相對的角度,以及與光源的距離。
光譜亮點
鏡子亮點就是能直接反映光源的亮點。醒目顯示與檢視器在場景中的位置相關的物件變更。
回想
視表面是否有鏡面 (高度反射) 或散射 (非反射) 特性,光線從表面的彈跳變化也會有所不同。舉例來說,金屬球具有高度鏡面與反映其環境的風態,另一顆彩繪的霧面灰色球則會擴散。現實生活中大部分的物件都具備這些特性的組合,可以是成堆的保齡球館,或是已使用的信用卡。
此外,反射表面還能從環境內挑選顏色。物件的顏色可以直接受到環境色彩影響。例如,藍色房間中的白色球會採用藍光的色調。
環境 HDR 模式
這些模式包含不同的 API,可針對定向光源、陰影、特定亮點和反射,進行精細和真實的光線預估。
環境 HDR 模式會使用機器學習技術即時分析相機影像,並合成環境照明,以忠實呈現虛擬物件。
這種光源估算模式提供以下功能:
主要方向燈。代表主要光源。可用於投放陰影。
環境音調。代表場景中剩餘的環境光能量。
HDR 立方體圖。可用於算繪閃亮金屬物體中的倒影。
這些 API 可以混用,但必須搭配使用,才能產生最真實的效果。
主要方向燈
主要方向光源 API 會計算場景主要光源的方向和強度。這項資訊可讓場景中的虛擬物件顯示合理定位的鏡片高亮度,並根據其他可見的實際物體,朝相同方向投射陰影。
若要瞭解運作方式,可以參考這兩張同一張虛擬火箭的圖片。左圖的火箭下方有陰影,但方向與場景中的其他陰影不符。右側火箭的陰影指向正確方向。這是細微但重要的差異,它會在場景中鋪起火箭,因為陰影的方向和強度更能與場景中的其他陰影相符。
主要光源或照明物體在移動時,物體上的鏡面標示會即時根據光源調整位置。
此外,定向陰影也會根據主要光源的位置調整長度和方向,就像在現實世界中一樣。為了說明這種效果,請假設這兩個假人:虛擬人偶,另一個是真實存在。左邊的假人是虛擬的,
環境球面和諧
除了主要方向光中的光能,ARCore 還提供球面和諧,代表從場景中所有方向流入的整體環境光。在算繪期間使用這項資訊,以巧妙的方式加入虛擬物件定義的小提示。
這兩個圖像都是同一個火箭模型,左側的火箭是根據主要方向光源 API 偵測到的光源估算資訊進行算繪。右側的火箭是根據主要方向光和環境球面 API 偵測到的資訊算繪而成。第二塊火箭的影像定義顯得更清晰,也更能完美融入場景。
HDR 立方圖
使用 HDR 立方體圖,可在中等至高光度的虛擬物體上呈現逼真的倒影 (例如閃亮的金屬表面)。立方體圖也會影響物件的陰影和外觀。舉例來說,藍色環境周圍的鏡射物體材質會反映藍色色調。計算 HDR 立方圖需要少量的額外 CPU 運算。
您是否應該使用 HDR 立方體圖,取決於物體反映周遭環境的方式。由於虛擬火箭具有金屬,因此具備能直接反映其周圍環境的強大鏡面元件。因此從立方圖中受益。另一方面,如果虛擬物件含有拋光霧面材質,則完全沒有規格化元件。其顏色主要取決於差異化元件,因此對於立方圖毫無助益。
三個 Environmental HDR API 都用來呈現下方的火箭。HDR 立方體地圖會呈現反射線,並進一步突顯出該物體在場景中完整呈現。
下方就是在光線不同的光源環境中,呈現相同的火箭模型。這些場景都是根據三個 API 中的資訊算繪,並套用方向陰影。
環境強度模式
環境強度模式會決定指定圖片的平均像素強度和色彩校正純量。這是一種粗略設定,適用於光線不嚴重的情況,例如已烘焙的物體。
像素強度
捕捉場景中光線的平均像素強度。您可以將這類光源套用至整個虛擬物件。
顏色
偵測每個影格的白平衡。接著,您可以調整虛擬物體的色彩,讓虛擬物件與場景的整體著色更為流暢。
環境探測
環境探測器可將 360 度相機檢視畫面整理成環境紋理,例如立方地圖。這些紋理能用於逼真的虛擬物體,例如能「反映」所在房間的虛擬金屬球。