讓遊戲沉浸感炸裂的實時3D音效技術原理與實踐(上)

2021-10-23 15:22:49 字數 1294 閱讀 8012

3d音效最常見的應用場景是在遊戲中。過去,遊戲中的3d音效(如槍聲、腳步聲)普遍基於傳統遊戲開發引擎(如unreal、unity)實現,但當玩家聯麥時,原本不管遊戲中隊友在哪兒,它的聲音聽上去都差不多。

試想一下,在大家都手忙腳亂地「突突突」時,隊友發來求助語音「我在你東南方向10公尺的茅房裡中彈了快來扶我……」,你還得看一眼地圖再判斷判斷他們在哪兒。要是能直接聽聲辨位,玩起來是不是就方便多了?接著戴上耳機再感受一下:

gme 無3d音效效果

gme 有3d音效效果

要實現聽聲辯位,首先得知道,我們為什麼能感知到聲音的方位?

我們能感知到聲音的方位,主要是由於同個聲源傳到左右雙耳時的音量、延時等資訊是不一樣的。具體點說,我們通過雙耳訊號間的時間差、聲級差、音色差來判斷水平橫向定位;耳廓起到類似梳狀濾波器的左右幫助在復合聲中判斷出縱向定位;根據聲級大小、頻譜狀況和個人經驗等因素來判斷深度定位。

那麼,如何模擬聲音傳播到雙耳間的差異,從而模擬出聲音的位置?

這裡就需要頭部相關資料傳輸函式hrtf(head-related transfer function)來完成這項工作。它可以看成是聲音頻號從聲源處傳播到雙耳的綜合濾波過程,該過程包括空氣濾波、周圍環境的混響和人體(軀幹、頭部、耳廓等)的散射、反射等濾波過程。

真正完成實時語音3d虛擬化功能,不只是簡單地呼叫hrtf函式,還需要將遊戲世界對映為真實環境,並進行高頻運算。它的實現的過程大致如下:假設有n個玩家正在遊戲中連麥,由於遊戲的實時性要求很高,為了保證遊戲的流暢度,每個玩家終端在20ms的單位時間內,至少接受(n-1)個包含語音資訊和相對地理位置的資料報。根據語音資訊、相對地理位置資訊選用適合的hrtf演算法,融合遊戲地圖中聲源傳播路徑上是否有阻擋、玩家在遊戲中所處的環境音(比如流水聲、空曠房間回聲)等資訊,最終在玩家裝置終端渲染出逼真的實時3d音效。

整個過程計算工作非常密集,有些中低端的裝置無法承受。如何讓玩家終端裝置消耗最少的資源,又保證遊戲流暢度一直是業界**的方向。此外,部分hrtf庫對於音源訊號中的某些頻率衰減較為嚴重,尤其是對於包含豐富頻率成分的樂器聲影響更加明顯。這不僅影響音源定位準確性,也會導致最終輸出的環境音中樂器聲較為沉悶。

過去遊戲行業重視搶流量和使用者,品質倒是次要的。但隨著遊戲存量市場的到來,日漸成熟的玩家很難再被質量粗劣的遊戲吸引。在音效等細節中注入匠心,製作精良的遊戲作品才能具備長久的生命力。做好這些,其它的只需要把投票權交給玩家。

3D遊戲的數學基礎

第1章 向量 1.1 向量的性質 1.2 點積 1.3 叉積 1.4 向量空間 1.5 本章小結 習題第2章 矩陣 2.1 矩陣的性質 2.2 線性方程組 2.3 逆矩陣 2.4 行列式 2.5 特徵值與特徵向量 2.6 對角化 2.7 本章小結 習題第3章 變換 3.1 通用變換 3.1.1 正交...

3D遊戲的數學基礎

第1章 向量 1.1 向量的性質 1.2 點積 1.3 叉積 1.4 向量空間 1.5 本章小結 習題第2章 矩陣 2.1 矩陣的性質 2.2 線性方程組 2.3 逆矩陣 2.4 行列式 2.5 特徵值與特徵向量 2.6 對角化 2.7 本章小結 習題第3章 變換 3.1 通用變換 3.1.1 正交...

3D遊戲的數學基礎

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!第1章 向量 1.1 向量的性質 1.2 點積 1.3 叉積 1.4 向量空間 1.5 本章小結 習題 第2章 矩陣 2.1 矩陣的性質 2.2 線性方程組 2.3 逆矩陣 2.4 行列式 2.5 特徵值與特徵向量 2.6 對角化 2.7 本章小結...