瀏覽單個文章
bluesystem
Master Member
 

加入日期: Jan 2000
您的住址: 台灣桃園
文章: 1,717
引用:
Originally posted by giligula
DX 的開發沒有太多陰謀
NV 純粹是一意走自己的路
想把 Cg 拱起來而已

DX 的規範在制定時廠商都有參與
微軟與廠商之間的關係就像魚和水一樣
DX 的出現本來就是一定會有的
Windows API 根本就不適合寫遊戲
遊戲需要榨乾硬體的極限
而 Windows 的 programming interface 是以安全穩定為考量
而不是效能
所以處理圖形上就遜掉了
而且是很遜
這是當初微軟推廣 Windows 出現的盲點
所以才推出了 DirectX
DirectX 的出現就是為了提供程式設計師一個介面
不經由 Windows API
而直接 access 硬體的層面
Glide 是 3dfx 特有的
單獨硬體廠商獨佔的更糟
微軟怎麼可能不自己出個 D3D 呢

D3D 的改版不是借用廠商新的硬體功能
新版 DirectX 的制定是老早就決定好了
去年的這個時候
Pixel Shader 3.0 和 Vertex Shader 3.0 就早制定好了
早在硬體出現的一年半前就出現的規格
怎能說是借用呢
各家廠商也早早就知道那些新的規範
這些新的規範是微軟和廠商共同定出來的
微軟定個沒人做得到的規範是死路一條
廠商一意孤行走自己的規格也下場不好

DirectX 也沒什麼所謂效能不佳的問題
真如此
那也沒人用了
寫的小程式測試硬體效能
出來的數值是跟規格幾乎一樣
只能說
用 DirectX 就不能用廠商特有的 extension 了
不能發揮個別硬體特有的功能
微軟有很多優秀人才在裡面
我們不要把它想簡單了

NV 不走 DX9
就是想拱 Cg 而已
看看去年的這個時候
NV 對 Cg 的鼓吹
為了讓大家對 Cg 驚豔
只好搞個 PS2.0+, VS2.0+ 出來
希望大家用 Cg 寫遊戲來代替其他的 API
這不是更糟嗎
雖然我不喜歡微軟的商業手段
但用 Cg 更是不好
要不是現在效能不如預期
(也許如預期  只是對手效能不在預期)
NV 也不會對 Cg 暫時閉嘴

5200 支援 DX9 真是好嗎
真有 programmer 敢讓 5200 跑 DX9 的 shader 嗎
跑不動還不是得用較短的 shader code
一樣落入 ps1.4 以下的 spec 內
要不然就是用單純的 multitexturing
最後結果還是一樣
這部份時間會證明
(也許我會是錯的  兩年後就知道了)



如果有人知道D3D的歷史的話,D3D本來就是買了人家現成的3D API來用
的........

另外,D3D中很多技術絕對不是微軟先訂好之後,再由硬體廠商實作的.
很多都是由硬體廠商自己先往這方面去研究,再與微軟協調加進去的.
與其說微軟是規格的制定者,不如說是協調者(有點像OPEN GL ARB那樣),
DX Team聽說人數並不多,哪有那個人力時間去自己研究規格再叫廠商
follow??如果您是微軟主管DX開發的人,您會選擇找一票人來研究新規
格,硬體廠商照做就好,還是像OPEN GL ARB那樣,大家把規格提上來再
協調決定要什麼呢??

新的DX規格基本上當然是由微軟主導,但是會有一個主要的配合廠商.
像DX7/8.0的nVidia,8.1~9.0的ATi.在開發過程中當然是有其它廠商參
與,也都知道下一版會有什麼功能,但是主導規格的廠商就會先起跑,這
一點很明顯,光是看DX推出時間跟各廠商推出新GPU的時間跟效能就
知道了.

另外DX效能不佳,這個感覺是蠻明顯的.NV自己在GDC的簡報也有提出
來過,而且是很小的程式去測Batch Rendering,條件單純化的測試.在NV
自己的晶片上約有20%以上的差距.如果要那份文件我可能要找一下.
不知道為什麼D3D的效能在PC上就是很不好.據我聽同業說過,他們在把
PC的繪圖引擎改版到XBOX上面之後,就感覺出以倍數差的效能改變!
我是不很清楚究竟是NV去修改晶片符合DX,還是DX修改成NV2A專用的
API,不過手頭上的資料來看,應該屬於後者.另外全世界唯二使用過DX做
為繪圖API的遊樂器,SEGA的DreamCast,用DX寫的東西也是其差無比....
我碰過PS跟DC的原生API.人家原生的API跟DX比起來真的是精簡有效率
得多了....

NV不走DX9,說穿了就是因為NV跟MS鬧翻了而已.另外就MS的角度來看
,不可能讓NV在DX這個API主導太久.所以NV自己就搞了個Cg.而Cg也沒
什麼不好的,只要在寫程式的時候注意一些限制,一些在OPEN GL底下的
Extension,在DX不會出現之外.Cg complie出來的shader code還不是一
樣在DX的程式底下跑得很高興?!

最後,如果FX5200這種硬體夠普及的話,為什麼不敢跑shader??有ps2.0
的指令集可用,為什麼要用ps1.4??也許FX5200跑不動指令長的shader,
但是沒人規定shader要寫多長才算是ps2.0的code吧?!但是程式設計者
卻有更多的更好用的指令集可用,不用再使用早期shader的指令集去兜
那些功能,很多ps1.3/1.4要用三四個指令去組合的動作,也許PS2.0一個
指令就解決了,速度又快.另外我們在寫shader code的時候,是有很多段
程式去堆起來一個shader的,真的跑不動的話,把shader的某些程式碼關
掉不啟用也可以,這樣較底階的硬體也能跑,但高階的顯示晶片又能在ps2.0
的基礎下發揮能力,這樣有什麼不好的呢??我真的不懂......

最後,我們在寫遊戲,第一順位就是「遊戲能不能跑」再來才是「效能如
何」.我信相絕大部份的人都能輕易的看出遊戲畫面,特效的差距,而比較
看不出效能的差距.有很多的遊戲類型也比較不重視畫面更新的速度.玩
家在選擇遊戲的時候我想大家都是看畫面的吧?很多玩家也都能接受畫
面漂亮但是遊戲效能不好時,自己要去昇級硬體.今天遊戲不太敢使用新
的技術,問題絕對不是出在效能上,而是出在支援硬體不夠普及上面.

新技術不能低價化,對大家絕對不是好事的......
 
舊 2003-07-27, 03:08 PM #42
回應時引用此文章
bluesystem離線中