理想光源

平台專屬指南

打造逼真的 AR 體驗,關鍵在於正確調整光線。如果虛擬物件沒有陰影,或是有光亮材質但未反射周圍空間,使用者就會覺得物件不太適合,即使他們無法解釋原因。這是因為人類會意識到,物件在環境中的光照方式。Lighting Estimation API 會分析指定圖片中的線索,提供場景中燈光的詳細資訊。接著,當您在算繪虛擬物件時,可以在與所在位置相同的條件下使用這項資訊,讓使用者保持動力並參與互動。

燈光提示

Lighting Estimation API 提供詳細資料,讓您在算繪虛擬物件時模擬各種燈光提示。這些提示包括陰影、環境光線、陰影、鏡面高光和反射。

陰影

陰影通常具有方向性,能讓觀眾知道光源的來源。

環境光

環境光度是指從周圍環境進入的整體漫射光線,可讓你看清周遭環境。

著色

陰影指的是光線的強度。舉例來說,同一個物體的不同部分在同一個場景中可能有不同的陰影層級,這取決於相對於觀看者的位置角度,以及物體與光源的距離。

光譜亮點

鏡面高光是指直接反射光源的表面亮點。醒目顯示與檢視器在場景中的位置相關的物件變更。

回想

光線反射到表面的效果會因表面是否具有鏡面 (高度反光) 或漫射 (非反光) 屬性而有所不同。舉例來說,金屬球會具有高度鏡面反射效果,會反射周遭環境,而另一顆塗上霧面灰色的球則會呈現漫射效果。大多數的實體物件都具有這些屬性組合,例如磨損的保齡球或使用過的信用卡。

此外,反射表面還能從環境內挑選顏色。物體的著色會直接受到環境著色的影響。例如,藍色房間中的白色球會採用藍光的色調。

環境高動態範圍模式

這些模式包含個別的 API,可針對方向性照明、陰影、鏡面高光和反射,提供精細且逼真的照明估算。

環境高動態範圍模式會使用機器學習技術即時分析相機影像,並合成環境光線,以便呈現逼真的虛擬物件。

這種光源估算模式提供以下功能:

  1. 主要方向燈。代表主要光源。可用於投射陰影。

  2. 環境球諧函數。代表場景中剩餘的環境光能量。

  3. HDR 立方體貼圖。可用於算繪閃亮金屬物體中的倒影。

您可以將這些 API 搭配使用,但這些 API 的設計目的是搭配使用,才能產生最逼真的效果。

主方向光

主方向光 API 會計算場景主要光源的方向和強度。有了這項資訊,場景中的虛擬物件就能顯示合理位置的鏡面高光,並在與其他可見實體物件一致的方向投射陰影。

如要瞭解這項功能的運作方式,請參考以下兩張相同虛擬火箭的圖片。左圖的火箭下方有陰影,但方向與場景中的其他陰影不符。右側火箭的陰影指向正確方向。這項差異雖然細微,但很重要,因為陰影的方向和強度與場景中的其他陰影更為一致,因此能讓火箭在場景中落地。

     

當主要光源或亮光物體處於移動狀態時,物體上的鏡面高光會根據光源,即時調整其位置。

方向性陰影也會根據主要光源的位置調整長度和方向,就像在現實世界中一樣。為說明這項效果,請思考以下兩個假人,一個是虛擬的,另一個是真實的。左側的人體模型是虛擬人體模型。

環境球諧函數

除了主要方向光源的光能量之外,ARCore 還提供球面調和函數,代表場景中從各個方向進入的整體環境光。在轉譯期間使用這項資訊,加入微妙的提示,突顯虛擬物件的定義。

請參考以下兩張同樣火箭模型的圖片。左側火箭是使用主要方向性光 API 偵測到的照明估計資訊算繪而成。右側的火箭是使用主要方向光和環境球面調和 API 偵測到的資訊算繪而成。第二枚火箭的視覺效果更清晰,且能更自然地融入場景。

     

HDR 立方體貼圖

使用 HDR 立方體圖,在具有中等至高光澤度的虛擬物件 (例如亮面金屬表面) 上,算繪逼真的反射效果。立方體地圖也會影響物件的著色和外觀。舉例來說,如果鏡面物件周圍是藍色環境,物件的材質就會反射藍色調。計算 HDR 立方體貼圖需要少量額外的 CPU 運算。

是否應使用 HDR 立方體圖,取決於物件如何反射周遭環境。由於虛擬火箭是金屬材質,因此具有強烈的鏡面反射成分,會直接反射周圍環境。因此,它可從立方體貼圖中受益。另一方面,使用無光澤灰色霧面材質的虛擬物件,則完全沒有鏡面反射成分。其顏色主要取決於差異化元件,因此對於立方圖毫無助益。

三個 Environmental HDR API 都用來呈現下方的火箭。HDR 立方體地圖可啟用反射提示,並進一步強調場景中物體的基礎。

以下是同一個火箭模型在不同光源環境下的樣貌。所有這些場景都是使用三個 API 的資訊算繪,並套用方向性陰影。

           

環境強度模式

環境亮度模式會判斷指定圖片的平均像素亮度和色彩校正量值。這是一種粗略設定,適用於光線不嚴重的情況,例如已烘焙的物體。

像素強度

擷取場景中光線的平均像素強度。您可以將這種照明效果套用至整個虛擬物件。

顏色

偵測每個影格/畫格的白平衡。接著,您可以對虛擬物件進行顏色校正,讓物件更順暢地融入場景的整體色彩。

環境探測

環境探針會將 360 度相機檢視畫面整理成立方體地圖等環境紋理。這些紋理可用於逼真照明虛擬物件,例如「反射」所在房間的虛擬金屬球。