文章
由 JamesT »
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
就算是達到同樣或類似的功能,也有可能是在 EMU10K1 上,是完全用軟體做,而在 EMU10K2 上,卻是有一部份用硬體做啊!
</FONT><!-- BBCode Quote End -->
即便如此, Creative 並沒有提供出「讓 SB Live! 可以軟體做」的機會。是「被別人發現可以」。
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
3D 定位音效是由 DSP 裡面跑的程式(或是 CPU 跑的程式)來產生的。這個軟體需要時間和金錢來開發,而且通常會需要花比「寫 driver」更多的時間。
</FONT><!-- BBCode Quote End -->
EMU10K1 不含有任何效果器以外的運算能力, 單憑這個事實, 就可以知道至少在 SB Live! 上能夠跑出 Audigy 的 3D 定位音效是用軟體做到的。
前面舉的顯示卡例子不夠好, 我再舉一個應該會更好的例子。
我們就直接用音效卡來講吧。A3D 1.0 和 A3D 2.0, 是 Aureal 的 3D 音效 API ( 也是 API 呀 )。A3D 2.0 的效果比 A3D 1.0 好, 因為它比 A3D 1.0 增加了 geometry sound rendering , 這個部份, AU8830 可以加速它的運算, 至於 AU8820 則仍然可以做到部份加速 ( 關於 A3D 1.0 的部份, 主要是 positioning HRTF ), 而 geometry sound rendering 則由軟體來提供接近的效果 ( 在 performance hit 的考量下, 不能做到完全一樣 )。
我認為 3D 定位音效 API 要算是驅動程式的一部份, 所以我才會說「這種程度的 3D 定位音效本來就應該是 SB Live! 要提供的。」
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
做顯示晶片的人,如果某個顯示晶片不支援某種新功能,他們也不會花時間去為它寫個軟體模擬的部份吧!就好像 GeForce 3 支援很多 GeForce 2 沒有的新功能,有誰會期待 NVIDIA 在 GeForce 2 的 driver 裡面模擬所有的 GeForce 3 的新功能?\r
</FONT><!-- BBCode Quote End -->
我並不是要 GeForce2 能夠完成 GeForce3 才有的功能, 比方說 DX8 shader, 這個東西是 GeForce2 不可能做到的; 我想表達的是, 若某些事情 GeForce2 能夠做得到, 或做得更好, 驅動程式就應該提供到 ( update 到 ) 它所能做到的全部或最佳狀況。因為這整個產品主要是「硬體」, 驅動程式的價值是附庸在這個硬體上。就如有人說更新驅動程式是不收錢的。
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
所以,如果說 EMU10K1 本來就有完整的 3D 音效定位功能(指 hardwired 線路就提供這樣的功能),只是被 Creative 故意關掉部份功能,後來在 EMU10K2 中,其實硬體完全相同,但是卻從 driver 中開啟這些功能,那還可以說 Creative 這樣做不是很恰當。
</FONT><!-- BBCode Quote End -->
沒有任何音效卡有所謂「完整」的 3D 音效定位功能硬體線路, 像 AU8820 和 AU8830 都是把 A3D 中 time critical 的運算做成硬體以求取加速, 而 EMU10K1 則根本沒有這方面的運算。
即便是 EMU10K2 有增加一些加速 3D 定位音效運算的部份, 那麼既然這份驅動程式已經被試出來可以在 EMU10K1 上得到相同的效果 ( 頂多只是比較慢, 還沒人測 CPU 使用率 ), 表示 Creative 已經為 EMU10K1 寫好了「軟體模擬」囉, 那為什麼不提供給 SB Live! 的使用者呢? 因此我即使沒有直接證據, 我也可以合理的推測這乃是因為這個有進步的 3D 定位音效乃是全軟體完成的, 不是嗎?
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
如果它的 3D 定位本來就是用軟體做的(不管是 CPU 跑的還是 DSP 跑的),那不同的產品附上不同的軟體,本來就是很正常的事啊!我不覺得這有什麼問題。
</FONT><!-- BBCode Quote End -->
因為我不認為是這樣, 我認為 3D 定位音效的層級是屬於音效卡的驅動程式的一部份。它是附庸於音效卡的。所以我覺得有問題。
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
至於 SSE…我想提醒一下,SSE 已經有超過兩年的歷史了。而且,也的確是有程式只支援 SSE(整數運算部份)。像是 Cinema Craft Encoder 就是一個例子,它一定要在 P3 或 K7 等支援 SSE 整數指令的 CPU 上才能執行。這哪裡荒唐?
</FONT><!-- BBCode Quote End -->
我想這方面我的意見是有瑕疪, 回歸到一開始提出說以 CPU 來類比這件事, 因為有人說「不同的CPU可以執行同樣的功能, 難道你能說各個CPU本身是一樣的嗎?」我是因為「這句話」在這個議題裡面並不具代表性, 所以才說不能這樣類比。不同的 CPU 依照著相同的標準 ( x86 ), 當然在 x86 的行為上要幾乎一模一樣 ( 速度不同 )。音效卡又不是依照同一個標準來做的, 至少我們現在在討論的部份不是。
新的 CPU 提供更新更快速的指令, 類比為音效卡的情形的話, 我想在這裡我先假設 EMU10K2 真的比 EMU10K1 多了一些功能 ( 特別是關於 3D 定位音效的 )。
於是開始有軟體使用到新 CPU 的新指令, 比方說 SSE 可以做單精確浮點數運算比 x87 快, 但是並不是 x87 就做不出同樣的計算。
今天 EMU10K2 說它有新的 3D 定位音效, 很好, 但是並不是 EMU10K1 就做不到同樣的事, 而且最重要的是已經被證實可以。
這就有如一個軟體商賣你軟體, 明明你已經有一台 Pentium2 的電腦, 而且他寫的軟體其實也可以只用 x87 就跑出來, 但是他硬是要你再跟他買一部 Pentium3 的電腦, 因為他說他的軟體是要用 SSE 才行。
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
如果現在有人推出一定要 MMX 才能執行的程式,你會覺得荒唐嗎?現在還有什麼 x86 CPU 不支援 MMX?
</FONT><!-- BBCode Quote End -->
事實上我知道確實很多程式一定要 MMX。MMX 是一些整數的 SIMD, 幫 x86 加快一些像是整數的矩陣運算等等。但是 MMX 能做的事情 x86 也能做啊! 只不過比較慢而已。如果軟體商不願意寫通用的版本那也就算了, 如果明明已經寫出來卻又告訴你沒有, 又要你再買一台 CPU 有 MMX 的電腦咧?
<!-- Edit Notice Start -->
<font size=-1>[ 這篇文章在 2001-11-07 07:51 被 JamesT 編輯過 ]</font><!-- Edit Notice End -->