青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

游戲引擎基礎(六)(聲音系統,音頻APIs)

6部分: 聲音系統,音頻APIs


聲音系統
  由于人們玩的游戲在種類和技術上的進步,聲音和音樂近幾年來在游戲中正逐漸變得重要起來(聲音是一個實際游戲的可玩特點,比如在Thief和其它同類游戲中的聽覺提示)。現在四聲道環繞系統在游戲玩家的寶庫中是負擔得起的和平常的事。給定空間的聲音,噪音的障礙和閉塞,和動態的音樂,如今許多游戲使用這些提高玩家情緒上的反應,更多的關注投入到這個領域就不足為奇了。

  現在在PC競技場中,游戲玩家實際上只有一種聲音卡可以選擇 -- PC聲卡制造商創新公司(Creative Labs)的Sound Blaster Live 從舊的時間個人計算機聲音卡片制造業者有創造力的中心. 多年來創新公司已經為DirectX提供了他們的EAX聲音擴展,并且他們是發起新的OpenAL(開放音頻庫Open Audio Library)的創立者。就如同OpenGL是一個圖形API一樣,OpenAL,像它起來聽一樣,是一個聲音系統的APIOpenAL 被設計為支持大多數通常聲卡的許多特征,而且在一個特定的硬件特征不可得時提供一個軟件替代。

  為了更好的定義 OpenAL,我向創新公司的Garin Hiebert詢問了其定義:

  "這里借用我們的 " OpenAL 規格和叁考" 的一個定義:

  OpenAL 是對音頻硬件的一個軟件接口,給程序員提供一個產生高質量多通道輸出的能力。OpenAL 是在模擬的三維環境里產生聲音的一種重要方法。它想要跨平臺并容易使用,在風格和規范上與OpenGL相似。任何已經熟悉OpenGL的程序員將發現OpenAL非常熟悉。

  OpenAL API能容易地被擴展適應插件技術.創新公司已經把EAX支持加入到這套API了,程序員可以用來給他們的聲音環境增加復雜的反響,比賽和障礙效果。

  如同Jedi Knight II: Outcast 一樣,連同Eagle 世界/聲音特征編輯器,Soldier of Fortune II 以這個新系統為特征。什么是Eagle 在介紹這個以前,讓我們討論一些其他的系統,并定義一些聲音術語。


  另外的一個系統是Miles聲音系統。Miles是一家公司,它為你的代碼生產插件,在充分利用每塊聲卡時處理所有必須的到特定聲音卡的說話(比如Sound Blaster Live!系列,或者老的A3D聲卡)。它非常像一個API前端,捆綁了一些額外的特征在里面。 在其他事物當中Miles讓你存取一些事物像MP3解壓縮。 它是很好的解決方案,但像任何事一樣,它花費金錢并是你的代碼和硬件之間的額外一層。雖然對於快速的聲音系統制造,它非常有用,而且他們有段時間了,因此他們的確精通自己的業務。


聲音術語
  讓我們開始障礙和閉塞。它們聽起來一樣,但不是這樣。閉塞基本上意謂著一個聲音在播放時聽者在他們之間有一些閉合的障礙物。

  比如說,在NOLF2的一個屏幕鏡頭上你聽到房子里面壞蛋的聲音。你能聽到他們,但是他們的聲音相當低沉而沙啞。障礙是相似的,但是你和聲音之間的障礙物并不是閉合的。一個好的例子就是在你和聲源之間有一根柱子。由于房間中的回聲你仍然聽得到這個聲音,但是它和聲音直接傳遞到你的耳朵里是不同的。當然這確實依賴于知道在你的耳朵和聲源之間的直線上是什么。而且根據房間的大小,聲源到你的距離等等,需要的處理能變得相當耗時。后面我們將會談到跟蹤--足可以說它時常是比較慢的幀速率的原因。Quake III 里面的A3D 代碼做了這些事情,關閉這些選項通常能夠提高幀速率。Tribe 2 是這種弊病的另外一個受害者。關閉3D聲音選項則你的幀速率立即好轉,這在你考慮Tribes世界有多大和你能看見多遠時有意義。

  接著是聲音物質的特征。大部分聲卡可以讓你能夠用可定義的過濾器作用于聲音從而修正播放的聲音。例如,在水下,或者在一個布料遮蓋的房間中,或者在一個長的走廊中,或者在歌劇院,聽到的聲音有著很大的不同。能夠根據你所處的環境改變你聽到聲音的方式是相當不錯的。

  我們回到Eagle… 這是一個編輯器,允許多數第一人稱射擊游戲地圖設計者將他們的地圖導入到這個工具,然后構造簡化的幾何形體來為實際游戲引擎中的EAX代碼產生一個聲音地圖。其思想是你不需要一個真實的圖形地圖的復雜幾何形體來模擬聲音環境。你也能夠給產生的簡化地圖分配聲音物質,這樣聲音環境就能夠動態地改變。我親眼目睹了這在Soldier of FortuneUnreal Tournament上的示范,確實相當引人注目。 我這在財富和 Unreal 巡回賽和它的軍人上真的對示范是證人相當醒目. 當你跳入水中時,聽到所有的聲音改變,這是一個非常令人沉浸的經歷。

  好,讓我們繼續吧。

  對于游戲機,由于靜態的硬件,你的各種可能性會更受限制盡管在PlayStation 2Xbox上,硬件相當不錯。我說的限制,僅僅是指擴展,而不是它所能夠做的。我一點也不會感到驚訝看到這些游戲機上的游戲很快支持杜比數字5.1Dolby Digital 5.1)輸出。Xbox ,由于它的 MCP 音頻處理器,能夠將任何游戲音頻編碼為5.1,并且游戲不需要特別編碼就能利用這個特征。杜比(Dolby)把ProLogic II 帶到了 PS2 上,并與Factor 5合作為GameCube游戲實現了ProLogic II。在 Xbox 之上,Halo, Madden 2002 Project Gotham Racing等游戲都有5.1杜比數字音頻內容。DTS最近也為 PS2 游戲開發者發布了SDK,為這個平臺上的游戲帶來了降低了比特率的DTS音頻版本。


位置的聲音--一個復雜的世界
  現在有一些很少有處理的聲音空間化問題。我說的是把聲音放在一個真實的3D世界中。有四個揚聲器在你周圍是一個很棒的開始,但這仍然只是在二維方向。在你的上方和下方沒有揚聲器,你沒有真正獲得3D聲音。有一些聲音調制過濾器試圖解決這個問題,但實際上沒有真實東西的代替物。當然真實地大多數游戲多半只是在二維方向上,因此這仍然不是太大的問題。

  實際上任何聲音系統最重要的特征之一是把聲音混合在一起。根據你所處的位置,空間中聲音的位置,每個聲音的音量大小,一旦你決定了實際上你能夠聽到的聲音,然后你必須混合這些聲音。通常聲音卡自己處理這些,這首先是聲音卡存在的主要原因。然而,外面有一些引擎決定首先用軟件做一次預混合。直到你著眼于一點點歷史以前,這并沒有真正地帶來多大的意義。

  當聲音卡最初問世的時候,有許多不同的混合方法。一些聲卡可以混合8種聲音,一些單位16種,一些32種,等等。 如果你總想聽到16種可能的聲音,但你不知道聲音卡是否能夠處理,那么你回到了嘗試和試驗的道路上 就是你自己用軟件混合。這實際上是Quake III聲音系統的工作方式,但提一個問題:"Quake III是為A3DSound Blaster Live!聲卡世界發布的,這比以前更加標準化,為什么還這樣做?" 這是個好問題。實際上Quake III的聲音系統幾乎每行代碼都和Quake II中的聲音系統一樣。而且Quake I,甚至Doom也是這樣。你想一想,向上直到 A3D 聲卡和 SB Live! 聲卡,許多年來聲音系統的需求沒有真正地改變過。兩個揚聲器,二維方向,音量簡單地隨著距離減小。從Doom一直到Quake III沒有發生太大變化。而且在游戲行業中,如果不是迫不得已,別理會它。

  通常你會僅僅使用DirectSound為你做聲音混合,因為它會可以使用的聲音硬件,或者轉而依靠軟件,很多地方就像DirectX3D顯示卡所做的一樣。在 90% 的聲音情形中,依靠軟件混合對你的幀速率沒有真正發生太多不同。當DirectSound在一些狂熱的編碼者眼中甚至還不是一絲光線時,Doom引擎就已經產生了。它從來沒有得到更新過,因為它從來就沒有真的需要更新。

  當然,你可以使用 SoundBlaster Live!聲卡的一些聰明特征,例如房間的回聲特性: 一塊石窟,或一個禮堂,一個巨穴, 一個足球體育館等。而且你真的應該使用由硬件提供的混合器,畢竟,那是它存在的目的。這種方法的一個不足之處是程序本身時常無法獲得混合結果,因為混合是在聲卡內部完成而不是在主存。如果由于某種原因你需要看到產生的音量,你是運氣不好。


Music Tracks in Games
(游戲中的音軌)
  我們沒有過多的談到游戲中的音樂生成。傳統的有兩種方法,一種是簡單的音樂 .wav 文件(或同等物)。它被預先制作做好,準備運行,和最小忙亂。然而,這些在內存和回放時間方面很昂貴。第二種方式用預設的樣本編碼MIDI音軌。這時常比較節省內存,但缺點是必須同時把一些聲音混合在一起,因而會把聲音通道用光。

  動態音樂就是根據在游戲中目睹的行動改變你的音樂的能力,比如探險用慢節奏的音樂,戰斗用快節奏的音樂。預先制作的音樂的一個困難之處是要合拍,因此你可以從一段音樂漸弱到另一段音樂,這對于MIDI音軌比較容易。盡管時常你足夠快速地淡出,或者一段音樂在播放另一段音樂之前已經消失了,你能僥幸不被察覺。

  在我們離開這個主題之前,順便說一下,值得一提的是存在一些公司專門為你的游戲創作特定意義的音樂。FatMan(www.fatman.com) 就是一家這樣的公司。音樂可能比其他別的東西更加容易外包,這是他們存在的方式。

  最后,游戲現在的事情自然是MP3格式,允許巨大的11 1的聲音樣本壓縮,然而在送到聲音卡之前只花費CPU很少的時間解壓縮。當我在Rave Software工作時,在Star Trek Voyager: Elite Force 中,我們設法用MP3在一張CD上面完全支持三種語言,仍然為較多的圖形留有空間。主要地,我們 MP3 只用于非玩家角色(NPC)的語音,由于游戲的全部音頻效果MP3流和動態解壓縮超出了硬件的處理能力,雖然在將來這是肯定可能的。比較新的格式,如來自 Dolby AAC 和來自微軟的WMA,以將近兩倍MP3的壓縮率提供了相等或者更高的音頻質量(實際上一半的比特率),可能應用到將來的游戲中。

  以上是這一章節的內容,下面將是網絡和連線游戲環境的開發。

posted on 2007-12-04 13:20 夢在天涯 閱讀(4321) 評論(0)  編輯 收藏 引用 所屬分類: Game/OpenGL

公告

EMail:itech001#126.com

導航

統計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1816190
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              亚洲欧美中文另类| 国产午夜精品在线观看| 久久久精品2019中文字幕神马| 男人插女人欧美| 欧美在线黄色| 国产精品高潮在线| 亚洲日本va午夜在线电影| 激情久久五月| 欧美一区二区免费视频| 亚洲一级影院| 欧美日韩精品欧美日韩精品| 欧美激情精品久久久久久久变态| 国产丝袜一区二区| 亚洲欧美高清| 久久aⅴ国产紧身牛仔裤| 欧美日韩精品免费观看视频完整| 亚洲国产精品一区二区www在线| 韩日精品中文字幕| 欧美一区二区三区视频在线| 欧美一二区视频| 国产精品高潮呻吟久久| 一本色道久久综合亚洲精品高清| 洋洋av久久久久久久一区| 欧美va天堂va视频va在线| 欧美大片网址| 91久久国产综合久久蜜月精品 | 久久免费视频在线观看| 欧美在线视频在线播放完整版免费观看 | 亚洲一区欧美一区| 欧美日韩三区四区| 日韩网站在线观看| 亚洲伊人网站| 国产精品一卡| 欧美一区二区三区四区视频| 久久婷婷国产综合国色天香| 国内精品写真在线观看| 久久久久久亚洲精品中文字幕| 久久影院午夜片一区| 在线观看视频日韩| 久久永久免费| 日韩午夜在线播放| 欧美一区二区三区久久精品茉莉花 | 国产精品成人观看视频国产奇米| 99视频一区二区| 欧美一区二区三区喷汁尤物| 国产亚洲一区二区在线观看 | 麻豆成人在线播放| 亚洲精选成人| 久久精品理论片| 亚洲人成高清| 国产精品理论片| 久久野战av| 99riav1国产精品视频| 欧美影院精品一区| 亚洲第一天堂无码专区| 欧美日本在线播放| 午夜精品婷婷| 亚洲精品中文字幕在线| 欧美在现视频| 日韩一级片网址| 国产日韩一区| 欧美激情视频在线播放 | 一本一本a久久| 国产亚洲激情在线| 欧美国产日韩免费| 欧美亚洲综合在线| 亚洲人成在线免费观看| 久久精品成人欧美大片古装| 亚洲国产精品成人久久综合一区| 欧美日韩国产系列| 久久久久久亚洲精品杨幂换脸 | 国产香蕉97碰碰久久人人| 牛牛国产精品| 欧美中文在线观看国产| 91久久精品国产91久久性色tv| 欧美有码视频| 中文一区二区| 亚洲人成在线观看网站高清| 国产一区二区高清视频| 欧美激情片在线观看| 欧美中日韩免费视频| 中文在线资源观看网站视频免费不卡 | 99亚洲一区二区| 免费一级欧美片在线播放| 午夜精品免费| 亚洲网在线观看| 亚洲国产精品日韩| 国产日韩免费| 国产精品最新自拍| 欧美日韩伊人| 欧美理论片在线观看| 美女视频黄免费的久久| 欧美怡红院视频一区二区三区| 一区二区免费看| 91久久夜色精品国产网站| 嫩草伊人久久精品少妇av杨幂| 久久精品导航| 欧美一区免费| 欧美在线一级va免费观看| 亚洲一区二区三区激情| 在线综合亚洲欧美在线视频| 91久久综合亚洲鲁鲁五月天| 在线观看的日韩av| 一区免费视频| ●精品国产综合乱码久久久久| 国产一区免费视频| 国产一区二区高清视频| 国产一区二区三区成人欧美日韩在线观看 | 国产精品日本精品| 国产精品久久91| 国产精品美女在线观看| 国产精品日韩欧美综合| 国产精品一区在线观看你懂的| 国产精品久久久久久久久免费| 国产精品av免费在线观看| 欧美三级在线视频| 国产精品免费aⅴ片在线观看| 国产精品精品视频| 国产裸体写真av一区二区| 国产日韩欧美不卡在线| 国内精品国产成人| 亚洲电影一级黄| 亚洲精品乱码| 亚洲一区二区三区成人在线视频精品| 亚洲男女自偷自拍| 久久精品123| 欧美好骚综合网| 亚洲美女网站| 亚洲欧美在线网| 久久亚洲高清| 欧美日韩国产综合视频在线| 国产精品高潮呻吟久久av无限 | 国产精品美女久久久久久免费| 国产精品一区二区三区久久久| 国产视频在线一区二区| 在线观看欧美日本| 日韩系列在线| 久久国产精品一区二区| 欧美成人激情在线| aaa亚洲精品一二三区| 亚洲欧美第一页| 免费日本视频一区| 国产精品久久久久久av福利软件| 国产深夜精品福利| 亚洲黄色片网站| 香蕉久久夜色精品国产| 免费日韩视频| 亚洲香蕉网站| 免费日韩一区二区| 国产欧美日本| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲免费人成在线视频观看| 久久乐国产精品| 国产精品久久久久久久免费软件 | 欧美精品粉嫩高潮一区二区| 国产精品乱人伦一区二区| 伊人色综合久久天天五月婷| 日韩一级大片在线| 久久久久一区二区| 中国成人亚色综合网站| 久久久久免费| 国产日韩一区二区三区在线播放| 亚洲精选大片| 猫咪成人在线观看| 亚洲男人的天堂在线观看| 欧美激情片在线观看| 精品1区2区| 欧美中文字幕第一页| 日韩网站在线观看| 蜜桃av久久久亚洲精品| 国产专区综合网| 欧美一区二区免费| 一本不卡影院| 欧美精品v日韩精品v国产精品 | 亚洲欧洲av一区二区| 欧美精品一区视频| 亚洲国产精品电影在线观看| 久久国产精品久久国产精品| 亚洲美女黄色| 欧美激情精品久久久久久| 亚洲高清精品中出| 久久久久女教师免费一区| 亚洲在线视频网站| 欧美三区免费完整视频在线观看| 亚洲国产成人不卡| 美女精品在线| 久久精品国产亚洲aⅴ| 国产区精品在线观看| 久久精品99国产精品| 午夜欧美大片免费观看| 国产精品一区二区在线观看网站| 亚洲综合精品四区| 国产精品99久久久久久有的能看| 欧美日韩亚洲三区| 中文在线资源观看网站视频免费不卡 | 欧美福利电影网| 亚洲日本va午夜在线影院| 欧美激情免费在线| 欧美国产免费| 亚洲视频在线观看视频|