Wwise 中針對 Spatial Audio 所作的改進(jìn) – 第 2 部分:衍射


聲音以波的形式傳播,并遵循波的行為特性,例如衍射便是其一。也就是說,“聲波在障礙物墻角附近或穿過開口之后會發(fā)生彎曲”[14]?!把苌涞拇笮∪Q于聲音的波長及障礙物的尺寸。若障礙物的尺寸遠(yuǎn)小于波長,聲音傳播基本不受障礙物影響。相反,如果障礙物很大,在其后面可能會無法聽到聲音。這還導(dǎo)致低頻聲波在墻角附近的散布角度要大于高頻聲波。正因如此,從隔壁房間聽到的說話聲才總會有些悶”[15]。

圖?1 -?聲波在障礙物邊緣附近因衍射作用而發(fā)生彎曲。
在探究聲音設(shè)計師為何以及如何從實(shí)踐角度運(yùn)用衍射之前,我們有必要進(jìn)一步闡釋到底什么是衍射。
聲音傳播模擬中基于波的方法與基于射線的方法
在我們前同事伯諾瓦·阿拉里?(Benoit Alary)?的博文中,他對衍射做了闡釋并介紹了如何采用基于射線方法法?(ray-based)?和基于波的方法法?(wave-based)?模擬聲音傳播以及兩者之間的區(qū)別?[16]。簡單來說,基于波的方法通常更為精確,其可自然地模擬聲波的所有復(fù)雜行為。不過,在采用基于波的方法模擬聲音傳播時,往往需要知道給定位置和時間的聲壓,這樣做對應(yīng)著大量的?CPU?與內(nèi)存消耗。與之不同,在采用基于射線方法模擬聲音傳播時,會使用射線來表示最終抵達(dá)聽者的波前上的單個點(diǎn),因而計算起來要輕松很多。雖然經(jīng)典的射線模型通過投射射線并讓其在表面上反射來對反射現(xiàn)象進(jìn)行建模,但其往往會忽略諸如衍射這樣的聲波特性?[17]。
我們可以檢驗基于波的方法的模型對聲音傳播的模擬,并通過對比來了解傳統(tǒng)的基于射線方法的模型的不足。伯諾瓦在他的博文中采用基于波的方法對聲音傳播進(jìn)行建模時引用了布萊恩·漢密爾頓?(Brian Hamilton)?生成的模擬動畫?[18]。下面是據(jù)此截取的一幀靜圖。在該圖中,橙色?X?標(biāo)記位置發(fā)生了擾動,由此產(chǎn)生的波前開始向外傳播,直至左側(cè)遇到墻壁發(fā)生反射并傳播到墻角另一端。這時,我們會看到墻角處出現(xiàn)了一個模糊的圓形波前。這就是衍射的結(jié)果。

圖?2 -?依據(jù)?[18]?中引用的聲波模擬動畫截取的靜圖。橙色?X?標(biāo)記代表發(fā)聲體所在位置,波形外緣對應(yīng)直達(dá)聲的波前,內(nèi)側(cè)半緣對應(yīng)來自于墻壁的反射,紅色圓圈對應(yīng)墻角位置的衍射。
基于射線的衍射
雖然上面的例子中并沒有專門進(jìn)行模擬,但其實(shí)可基于傳統(tǒng)的射線法構(gòu)建顯式衍射模型。這些模型有許多類。(對于感興趣的讀者,上面提到的Savioja等人的概述對它們進(jìn)行了廣泛的調(diào)查。)針對電子游戲,青格斯?(Tsingos)?在?2001?年結(jié)合均勻衍射幾何理論?(UTD)?提出了用于模擬聲音傳播的射線模型?[19]。UTD對光和電磁波的衍射進(jìn)行建模,并預(yù)測光線在撞擊邊緣后的振幅和相位。它考慮到了楔形、入射光線角度和頻率等因素。當(dāng)然,跟所有模型一樣,它依賴于若干假設(shè)。例如邊緣應(yīng)當(dāng)無限長。但這在現(xiàn)實(shí)中是不可能的,在邊緣較短時,模型的精度就不再那么精確了。

圖3 - UTD的參數(shù),由[19]Tsingos提出:聲源?E?在楔形頂端發(fā)生衍射,UTD?預(yù)測其在聽者位置?L?的振幅和相位。最終結(jié)果取決于入射距離?ρ、入射角度?αi、衍射距離?r、衍射角度?αd?和楔形外角?nπ。
UTD?根據(jù)給定的楔形和發(fā)聲體位置定義了三個區(qū)域:陰影區(qū)、可視區(qū)和反射區(qū)。下圖在以上所用動畫靜圖的基礎(chǔ)上進(jìn)行了標(biāo)示。其中,橙色?X?標(biāo)記代表聲源所在位置。

圖?4 -?衍射區(qū)域。橙色?X?標(biāo)記代表聲源所在位置。在陰影區(qū)中,發(fā)聲體在聽者視線以外;在反射區(qū)中,發(fā)聲體在聽者視線以內(nèi),并且存在由楔形附近表面導(dǎo)致的鏡面反射;在可視區(qū)中,發(fā)聲體在聽者視線以內(nèi),但不存在所述鏡面反射。黃色圓圈標(biāo)示了可視區(qū)中的衍射。
衍射應(yīng)用實(shí)例
在障礙物后面聽到聲音?–?直達(dá)路徑的陰影區(qū)衍射
那么,我們?yōu)楹我ㄙM(fèi)寶貴的?CPU?資源來計算衍射射線呢?最主要的目的是要解決直達(dá)路徑的陰影區(qū)衍射問題。在采用傳統(tǒng)的射線法時,陰影區(qū)中無法聽到聲音。青格斯表示“衍射對正確詮釋聲學(xué)環(huán)境來說很重要,尤其是在發(fā)聲體和聽者之間的直達(dá)路徑被遮蔽的情況下”[19]。在現(xiàn)實(shí)生活中,正是因為存在衍射我們才能聽到來自墻角后面的聲音。與沒有聲音相比,這種效果顯然更加合理。游戲可以通過各種方式來解決這一問題。通常,會運(yùn)用基于射線投射的統(tǒng)計方法,同時相應(yīng)地驅(qū)動聲障相關(guān)的系數(shù)。
滾降的早期反射?–?可視區(qū)衍射
可視區(qū)的衍射要比陰影區(qū)微弱很多,因為發(fā)聲體本來就在聽者視線之內(nèi)。發(fā)聲體直接產(chǎn)生的波前要比邊緣衍射形成的波前響亮得多。由于這個原因,一些使用基于射線的方法的聲學(xué)引擎甚至不屑于對可視區(qū)的衍射進(jìn)行建模。
不過,對這種衍射進(jìn)行建模還是有一定實(shí)際用處的。不妨回顧一下圖?4。在可視區(qū)中,如果沒有衍射,聽眾只能聽到直達(dá)聲。然而,正如黃色圓圈所強(qiáng)調(diào)的,你可以清楚地看到,由于衍射,反射波的波前延伸到了可視區(qū)。事實(shí)上,鏡面反射區(qū)和無反射區(qū)之間的過渡還是有間隙的,并且可利用可視區(qū)的衍射來在此處兩區(qū)域之間進(jìn)行平滑滾降。從射線的角度來看,可視區(qū)衍射可以用?"衍射的反射射線?"來表示,如圖5所示。

圖5-基于射線的可視區(qū)衍射表示:W?相鄰表面的反射射線從反射區(qū)-可視區(qū)邊界擴(kuò)散到可視區(qū)中。角度?α?可用于控制反射區(qū)和可視區(qū)之間的平滑過渡。
反射區(qū)衍射
反射區(qū)中也會出現(xiàn)衍射,但其會與直達(dá)聲和鏡面反射發(fā)生競爭,導(dǎo)致它甚至比可視區(qū)衍射還要微弱。它固然會產(chǎn)生一些干涉圖樣?,但未足以對渲染的真實(shí)感有明顯貢獻(xiàn)。
所有這些現(xiàn)象的建模都有代價,而且很明顯其回報會越來越少。另外,在本系列博文第?1?部分中,我們提到了設(shè)計師在應(yīng)用距離衰減時的主觀性。由此引發(fā)出一個重要的、開放的問題——在實(shí)際建模時,我們需要達(dá)到怎樣的精確度呢?
Wwise?中的衍射
我們看到,即便像距離衰減這樣非常明了的聲學(xué)現(xiàn)象,也常常需要由設(shè)計師運(yùn)用映射到音量和濾波器的各種曲線來重新詮釋,方可獲得所需的美學(xué)效果并確保聲音和畫面協(xié)調(diào)一致。我們決定對衍射采取同樣的“創(chuàng)作者授權(quán)邏輯”。我們的目標(biāo)是為聲音設(shè)計者提供工具,使他們能夠處理聲障或有限的幾何體,并讓他們自己來定義聲音會如何在邊緣滾降。最終,我們選擇了讓?Wwise Spatial Audio?驅(qū)動抽象的衍射系數(shù),而不是浪費(fèi)?CPU?處理資源來計算復(fù)雜的?UTD?公式(因為本來就不怎么精確)。
目前,此系數(shù)直接通過射線與陰影區(qū)邊界的夾角計算并用于陰影區(qū)衍射。也就是說,這當(dāng)中忽略了入射角度、楔形外角和邊緣長度等因素。

圖?6 - Wwise?中所用的衍射系數(shù)。直達(dá)路徑的陰影區(qū)衍射角度從陰影區(qū)邊界取值,可視區(qū)衍射(即反射的衍射)角度從反射區(qū)邊界取值。
示例:利用聲障模擬直達(dá)路徑的陰影區(qū)衍射
您可以用?Wwise Spatial Audio?替代游戲驅(qū)動的聲障系統(tǒng),來讓其計算相應(yīng)幾何構(gòu)造邊緣附近的衍射路徑。為此,可針對所需聲音勾選?Enable Diffraction?復(fù)選框。由此計算得出的衍射系數(shù)可用于驅(qū)動聲障或?Diffraction?內(nèi)置游戲參數(shù),進(jìn)而映射到音量和濾波器曲線。




圖?7 -?在?Wwise?中設(shè)置直達(dá)路徑的陰影區(qū)衍射。(a)?在?Positioning?選項卡內(nèi)選中?Enable Diffraction。(b)?在必要時,利用?Diffraction?來驅(qū)動整個工程的?Obstruction?曲線(默認(rèn)初始化設(shè)置)。(c) Game Object 3D Viewer:兩個衍射邊緣的衍射系數(shù)分別為?~34%?和?17%(未顯示)。總體衍射系數(shù)為級聯(lián)邊緣的衍射系數(shù)之和?(~51.8%)。黃色?Emitter?對應(yīng)游戲設(shè)定的實(shí)際發(fā)聲體位置,因而與聲音穿過障礙物的透射相關(guān)。紫色?Emitter?代表入射衍射射線的原點(diǎn)。(d) Voice Inspector?顯示了由?Obstruction?驅(qū)動的?Bus Volume?和?LPF。Obstruction?本身由?Diffraction?驅(qū)動。
示例:小巷盡頭的可視區(qū)衍射
設(shè)想一下有個被墻壁包圍的小巷。只要聽者走出小巷,便不會再有來自其所發(fā)出聲音的鏡面反射。這可能會導(dǎo)致混響能量急劇下降,若只模擬了一階反射,會表現(xiàn)得比現(xiàn)實(shí)中更加明顯。這是因為在早期反射很少時,我們往往會夸大其音量,就像本系列博文第?1?部分中所做的那樣。如上所述,我們可以利用可視區(qū)衍射來填補(bǔ)這類盲區(qū),并允許在對應(yīng)高與低反射密度的區(qū)域之間進(jìn)行平滑過渡:你需要在?Wwise Reflect?中,編輯由衍射驅(qū)動的音量和濾波器曲線。




圖?8 - (a) Game Object 3D Viewer?中顯示小巷中間發(fā)出聲音的聽者。(b) Wwise Reflect?中實(shí)時顯示對應(yīng)的鏡像聲源。(c)?小巷盡頭發(fā)出聲音的聽者:右側(cè)墻壁上衍射的反射抵達(dá)聽者時帶有?24.5%?的衍射。(d) Wwise Reflect?中的鏡像聲源疊加在由衍射驅(qū)動的曲線之上:對衍射的反射進(jìn)行額外的低通濾波處理。
衍射與其他現(xiàn)象
高階反射
除衍射之外,還可通過啟用高階反射來填補(bǔ)盲區(qū)。一階反射無法抵達(dá)聽者,二階和高階反射或許能。各位不妨試試看哪種方式在聲音品質(zhì)和?CPU?成本方面最為適合。



圖?9 -?除衍射之外,還可利用高階反射來實(shí)現(xiàn)小巷內(nèi)外之間的平滑過渡。仔細(xì)看看在聽者離開小巷時可見射線數(shù)量如何逐漸減少。
散射
在現(xiàn)實(shí)當(dāng)中,上面例子中位于小巷盡頭的聽者還會聽到反射聲。因為墻壁表面不可能無限光滑,所以波的反射并不是完全鏡面的。在采用基于射線的方法時,可通過散射來對此進(jìn)行建模。散射是材料的一種屬性,與其表面的粗糙度有關(guān)。它決定了產(chǎn)生的漫反射和鏡面反射能量之間的比率(見圖?10)。材料表面越粗糙,漫反射能量越多。Wwise Spatial Audio?目前尚未構(gòu)建散射模型,所以設(shè)計師通常會夸大衍射的作用。

圖?10 -?散射:定義入射射線產(chǎn)生的漫反射(隨機(jī)方向)和鏡面反射之間的比率。
幾何構(gòu)造的影響
我們剛剛了解了如何利用各種聲學(xué)模型來創(chuàng)造平滑過渡或填補(bǔ)盲區(qū),或者對沒有建模的現(xiàn)象加以補(bǔ)償。但是,您通過自由映射聲學(xué)參數(shù)(如衍射到體積和濾波)獲得的所有靈活性都有一個限度。就拿凸曲面來說。在計算機(jī)中,它們總是被近似為眾多片狀的平坦表面。因此,會存在沒有鏡面反射的盲區(qū)。我們可以利用衍射來填補(bǔ)這些盲區(qū)。不過,對于給定曲面,最終結(jié)果會因所含三角形數(shù)量而略有不同。
再來舉個例子。設(shè)想一下自己站在墻壁前面,墻上裝有書柜或掛著書畫和其他裝飾品。所有細(xì)小的邊緣都應(yīng)該會產(chǎn)生衍射射線?,F(xiàn)在想象一下,這些細(xì)節(jié)被縮小到只是看起來像表面的材料不是完全光滑。正如之前所述,我們通常會利用散射來對這種情況進(jìn)行建模:從統(tǒng)計學(xué)上講,由于墻壁微觀部分的相對朝向,最終會生成很多條漫反射射線。直觀地說,散射可能可以被視為發(fā)生在微觀層面的衍射的宏觀表象。
不過,在微觀層面對衍射進(jìn)行建模不大可能獲得令人滿意的散射效果,至少在?Wwise?中是這樣,原因有二:
即使是最高級別的游戲幾何細(xì)節(jié),也不可能做到忠實(shí)反映現(xiàn)實(shí)中的所有細(xì)小瑕疵,然而就是這些東西賦予了聲音真實(shí)感。
衍射模型被大大簡化了,其效果可以自由解釋。
相反,我們建議你在整個游戲中保持聲音傳播的幾何形狀在細(xì)節(jié)上的一致性,并使其合理簡單。倘若發(fā)現(xiàn)鏡面反射聽起來不自然,然后想把它們弄得模糊一點(diǎn),不妨改用?DSP?方式,來以較低的成本獲得更好的效果。例如,嘗試用Wwise Reflect串聯(lián)一個濾波器,然后想出你自己的秘方!?
請繼續(xù)關(guān)注本系列博文第?3?部分,來了解后期混響和?Wwise Spatial Audio?的未來開發(fā)。
參考文獻(xiàn)、注釋和延伸閱讀
[14] Diffraction。2020?年?7?月?27?日訪問。https://en.wikipedia.org/wiki/Diffraction。
[15] Deines E.。Acoustic Simulation and Visualization Algorithms。TU Kaiserslautern?論文第?14?頁。2008?年?4?月。https://www.semanticscholar.org/paper/Acoustic-simulation-and-visualization-algorithms-Deines/b6c19b81f190198ba7bf0f4babae6c3217cb5d71。
[16]? "Auralizing soundscapes through virtual acoustics."?https://blog.audiokinetic.com/zh/auralizing-soundscapes-through-virtual-acoustics/.
[17] Savioja L.?和?Svensson P.。2015?年。Overview of geometrical room acoustic modeling techniques?!禩he Journal of the Acoustical Society of America》第?138(2)?期。第?708-730?頁。https://research.aalto.fi/files/6761044/Overview_of_geometrical.pdf。
[18]?參見?https://blog.audiokinetic.com/fr/auralizing-soundscapes-through-virtual-acoustics/?中的“基于行波的聲音傳播建模”來查看完整的?GIF?動圖。Roomerical?現(xiàn)在云端運(yùn)行這些基于行波的房間聲學(xué)模擬。2020?年?7?月?27?日訪問。https://www.roomerical.com/。
[19] Tsingos N.、Funkhouser T.、Ngan A.?和?Carlbom I.。2001?年?8?月。Modeling acoustics in virtual environments using the uniform theory of diffraction。摘自第?28?屆計算機(jī)圖形與互動技術(shù)年會論文集(第?545-552?頁)。https://www.researchgate.net/publication/2397824_Modeling_Acoustics_in_Virtual_Environments_Using_the_Uniform_Theory_of_Diffraction。
本文作者

路易斯-扎維爾·布法尼 (LOUIS-XAVIER BUFFONI)
研發(fā)總監(jiān)
Audiokinetic
路易斯-扎維爾·布法尼 (Louis-Xavier Buffoni) 現(xiàn)任 Audiokinetic 研發(fā)總監(jiān),主攻空間音頻、聲音合成、音頻編程和機(jī)器學(xué)習(xí)。
