• <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>

            concentrate on c/c++ related technology

            plan,refactor,daily-build, self-discipline,

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              37 Posts :: 1 Stories :: 12 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(9)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            Dsound提供了模擬的聲源對(duì)象和聽者(listener),聲源和聽者的關(guān)系可以通過三個(gè)變量來描述:在三維空間的位置,運(yùn)動(dòng)的速度,以及運(yùn)動(dòng)方向.
            產(chǎn)生音效的幾個(gè)條件是: 1)聲源不動(dòng),聽者移動(dòng),2)聲源走動(dòng),聽者移動(dòng), 3)聲源和聽者都移動(dòng).
            3d環(huán)境里面,通過IDirectSound3DBuffer8接口來表述聲源,這個(gè)接口只有在創(chuàng)建時(shí)設(shè)置DSBCAPS_CTRL3D標(biāo)志的DirectSound buffer才支持這個(gè)接口,這個(gè)接口提供一些函數(shù)來設(shè)置和獲取聲源的一些屬性,可以通過主緩沖區(qū)來獲取IDirectSound3DListener8接口,通過這個(gè)接口,我們可以控制著聲學(xué)環(huán)境中的多數(shù)參數(shù),比如多普勒變換的數(shù)量,音量衰減的比率.

            當(dāng)聽者接近聲源的時(shí)候,聽到的聲音就越大,否則就越小,直到消失.
            聲源的最小距離,就是聲音的音量開始隨著距離大幅度衰減的起始點(diǎn).
            DirectSound的缺省的距離DS3D_DEFAULTMINDISTANCE定義為1個(gè)單位,或者是1米,我們規(guī)定,聲音在1米處的音量是full volume,在2米衰減一半,4米衰減為1/4,一次類推.
            最大距離,就是聲源的音量不再衰減的距離,我們稱為聲源的最大距離.
            sound buffer處理模式: normal, head-relative, disabled.

            在正常模式下面,聲源的位置和方向是真實(shí)世界中的絕對(duì)值,這種模式適合聲源相對(duì)于聽者不動(dòng)的情形.

             在head relative模式下,聲源的所有3d特性都跟聽者的當(dāng)前的位置,速度,以及方向有關(guān),當(dāng)聽者移動(dòng),或者轉(zhuǎn)動(dòng)方向,3d buffer就會(huì)自動(dòng)重新調(diào)整world space.這種模式下可以實(shí)現(xiàn)一種在聽者頭部不停的嗡嗡叫的聲音,那些一直跟隨著聽者的聲音,根本沒必要用3d聲音來實(shí)現(xiàn).

            在disable 模式下,3d聲音失效,所有的聲音聽起來好象來自聽者頭部的.
            主要注意的是兩個(gè)位置: 聲源位置, 聽者位置,之前我遇到的問題就是這個(gè)問題了,listenerPosition在登陸界面播放界面音效的時(shí)候,就記錄了,但是在進(jìn)入游戲以后卻沒有將玩家的坐標(biāo)重新賦給聽者的位置,并且根據(jù)玩家的狀態(tài)不停地更新.
            1)聲源位置確定,但是聽者位置不對(duì),這樣就無法找到聲音的有效距離,這樣使3d音效看起來像是環(huán)境聲音一樣,走到哪里聽到哪里.
            2)從模型里面獲取的位置只是初始化的時(shí)候的位置,后來綁定到模型上面的位置卻沒有確定下來,這樣一來,造成了聲源位置和聽者位置都不對(duì).

            后來在direct sound里面做了嘗試代碼:將listener和sound buffer都設(shè)置成相應(yīng)的位置,然后在這個(gè)位置上面播放聲音,結(jié)果發(fā)現(xiàn)毫無距離感和衰減,directsound里面的play3DSound例子其實(shí)也并非真正意義上的positional sound,因?yàn)樗皇怯谜嘞液瘮?shù)在改變聲源的位置.給的感覺只是聲音飛來飛去的,并沒有有什么衰減的成分在里面,另外在那邊做一些測(cè)試,將聲源位置固定,然后改變聽者的距離,我猜想這樣應(yīng)該就有一種,靠近聲源位置的話,聲音就大,遠(yuǎn)離聲源位置的話,聲音就小.事實(shí)上就跟播放普通音樂一樣.不過唯一值得贊揚(yáng)的是:directsound里面有次緩沖區(qū)這個(gè)概念來支持聲音混合,以及可以播放音樂,真正意義上的3d音效還是不用directSound比較好.建議使用fmod,或者openal之類的,比較實(shí)在.

            DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFREQUENCY = DSBCAPS_CTRLDEFAULT.

            DirectSound不支持雙聲道混合(雙雙,或者單雙),即只支持單聲道混合,并且要求聲音的信息(比如頻率,采樣)一致. 建議采用8位采樣大小,以及22Khz的采樣頻率,相關(guān)轉(zhuǎn)換軟件用goldwave.
            posted on 2008-10-31 10:10 jolley 閱讀(898) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久婷婷五月综合97色直播| 久久久久久噜噜精品免费直播| 一本久久a久久精品综合夜夜| 久久亚洲精品无码观看不卡| 亚洲国产精品狼友中文久久久| 亚洲色婷婷综合久久| 久久精品午夜一区二区福利| 精品久久久久中文字| 久久天天躁狠狠躁夜夜avapp| 国产精品久久网| 波多野结衣久久一区二区| 久久人人爽人人爽人人AV| 久久久网中文字幕| 久久久久免费看成人影片| 久久久精品久久久久特色影视| 伊人久久大香线蕉综合Av| 久久国产高清一区二区三区| 色婷婷综合久久久久中文一区二区 | 国产Av激情久久无码天堂| 久久人人爽人爽人人爽av| 久久精品国产99国产精偷| 无码AV中文字幕久久专区| 性欧美大战久久久久久久| 99久久精品免费| 精品免费tv久久久久久久| 狼狼综合久久久久综合网| 久久人人爽人人爽人人片AV不 | 久久国产成人精品麻豆| 久久久久人妻一区精品性色av| 久久频这里精品99香蕉久| 久久无码国产| 久久se这里只有精品| 国产成人久久久精品二区三区| 久久99热只有频精品8| 色妞色综合久久夜夜| 久久久久久久波多野结衣高潮| 久久激情亚洲精品无码?V| 久久久久亚洲AV成人网| 久久er国产精品免费观看8| 国内精品久久久久影院网站| 久久青草国产精品一区|