![]() |
||
Major Member
![]() 加入日期: Dec 2002
文章: 156
|
引用:
你說的沒錯 但是用這種方式留言 不寫程式的能看得懂嗎 而且並不是用 Windows API 寫 就能在所有 OS 下執行 不同 OS 有差異性 而且微軟在新 OS 推出後 API 也會同時改變 一些不適用的 API 也會建議改用其他函式使用 我希望大多數人能看懂 而不是用一堆技術名詞像 component object model 這種東西去堆 |
||||||||
![]() |
![]() |
Master Member
![]() ![]() ![]() ![]() 加入日期: Jan 2000 您的住址: 台灣桃園
文章: 1,717
|
引用:
如果有人知道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 的基礎下發揮能力,這樣有什麼不好的呢??我真的不懂...... 最後,我們在寫遊戲,第一順位就是「遊戲能不能跑」再來才是「效能如 何」.我信相絕大部份的人都能輕易的看出遊戲畫面,特效的差距,而比較 看不出效能的差距.有很多的遊戲類型也比較不重視畫面更新的速度.玩 家在選擇遊戲的時候我想大家都是看畫面的吧?很多玩家也都能接受畫 面漂亮但是遊戲效能不好時,自己要去昇級硬體.今天遊戲不太敢使用新 的技術,問題絕對不是出在效能上,而是出在支援硬體不夠普及上面. 新技術不能低價化,對大家絕對不是好事的...... |
|||
![]() |
![]() |
Senior Member
![]() ![]() ![]() 加入日期: Nov 2001
文章: 1,397
|
引用:
1.小弟只是指出你錯用了Windows API這個名詞。 小弟天天跟Win32 API打交道, 當然知道Win32 API在各個平台的behavior還是有差異性。(這真的會整死人) ![]() 所以我特別加了個"理論上"... 事實上這些差異性有許多都是因為訂API時不夠謹慎有關係,產生很多模糊地帶。 寫程式一不注意時可能就會導致換到別的Win32 platform上後無法執行。 2.軟體工程的大忌,就是去動到既有的Interface,(這也是後來為何M$會搞出COM(Component Object Model)的原因之一) 所以微軟在新的OS推出時,絕對不會去改變既有的API,而是新增API。 因為動到既有API的下場就是...既有APP死傷遍野。 若API真的設計不良時 or 該被淘汰時, M$會建議developer"盡量"改用其他API,錯的就繼續讓它錯下去。(例如錯得離譜的GetVersion() vs GetVersionEx(),GetDiskFreeSpace() vs GetDiskFreeSpaceEx(),還有該淘汰的WinExec() vs CreateProcess())。 |
|
![]() |
![]() |
Elite Member
![]() ![]() ![]() ![]() ![]() 加入日期: Mar 2002 您的住址: 台北市
文章: 4,505
|
呵呵,回到正題吧
![]() giligula順便幫我想一下問題吧 ![]() 先來看看我今天得到的畫面: ![]() 詳細方法,cp裡面的af設定為application喜好 再去\UT2003\System\UT2003.ini 修改[D3DDrv.D3DRenderDevice]下面那一段 LevelOfAnisotropy=8(即是由應用程式開啟8XAF) 結果就可以得到上圖,看起來是Trilinear Filtering無誤 會這樣試是因為一個朋友跟我解釋的: (呃,他看得懂中文,但是不會用中文打字) 引用:
現在疑問點在於,是否由ut2003決定如何做filtering就是對所有的layer都進行trilinear filtering呢? 因為在我測試ut2003 custom demo,用cp裡開的8xafQ和由ut2003.ini設定的 性能分別為47.287fps和44.840fps 我猜想這應該是因為由ut2003.ini設定的話會對所有layer做trilinear filtering 因此效能會比ati driver只做一個layer的trilinear filtering而其他做bilinear filtering 來得差? 但是在最上一層的layer,ati driver設置的確是只有bilinear(姑且假設driver沒有省工) 但是這應該也算是個bug吧? 各位有何看法? ![]()
__________________
收到…那我就不去上課了…… GeForce3新舊Driver測試(有差嗎?) 9800SE軟改簡單教學(Catalyst+RivaTuner)。私人收藏 Magnifier.tw 2003-10-26撼訊9800XT Preview2003-11-039700Pro/9800Pro/9800XT大集合! 2004-05-28ATi強力接棒者--Radeon X800Pro !2004-06-30DX9.0c帶給了GeForceFX什麼影響?(Far Cry) 2005-01-15X800XL現身─ATI中/高階新戰將!2005-02-17剪不斷、理還亂─『CPU&顯示卡』前世今生徹底解析! 2005-06-30[G70系列之1]7800GTX真的非『最高階』CPU不可嗎? more...... |
|
![]() |
![]() |
Senior Member
![]() ![]() ![]() 加入日期: Nov 2001
文章: 1,397
|
引用:
個人覺得針對OpenGL or Glide寫的程式, 可讀性遠比D3D好的多! 純C language的programming interface跟精簡有力的API命名法則, "看"起來就是比較簡潔。 至於為何D3D程式的可讀性會比較差呢? 個人認為COM難辭其咎。 ![]() |
|
![]() |
![]() |
Major Member
![]() 加入日期: Dec 2002
文章: 156
|
引用:
所以後來又搞了個 COM+ 用 COM 是「落落長」 要完全弄懂 COM 的機制也是很累 還好 不懂 COM 怎麼運作還是能用 |
|
![]() |
![]() |
Senior Member
![]() ![]() ![]() 加入日期: Nov 2001
文章: 1,397
|
引用:
COM的運作機制說穿了不值幾分錢。 ![]() 只是因為相關技術的門檻比較高,(要懂DLL、function pointer、virtual function、v-table、registry、thread、process...) 入門比較不易。 有興趣的可以看看"Inslde COM"這本書, 看完後半年內你應該就會懂COM了。(作者講的 ![]() 我自己弄通了後, 現在在Linux上寫程式也自己搞了個"類COM"的機制。 滿有趣的。 COM程式易讀性不佳其實不是最大的問題, 最大的問題是除錯非常不易,尤其是interface reference count的問題。(尤其跟C++ exception搞在一起的error handling會讓人抓狂) jolin: 有用ATI顯示卡的人不曉得有沒有注意到改變D3D的設定按"Apply"後, 畫面會突然變黑閃動一下? 個人推測可能是因為ATI的driver工程師自己也搞不定D3D reference count的問題,只好每次設定後重新reset自己D3D的component。 改變OpenGL的設定就不會。 |
|
![]() |
![]() |
Senior Member
![]() ![]() ![]() 加入日期: Nov 2001
文章: 1,397
|
引用:
要改設定時FRAPS關掉了嗎? 若沒關的話,會因為咬住了某些interface沒有release掉的關係, 導致ATi的D3D COM component內部state亂掉, 最後非得重開機才行。 ![]() |
|
![]() |
![]() |
Major Member
![]() 加入日期: Dec 2002
文章: 156
|
引用:
LevelOfAnisotropy 這個選項 自從換上 9700 就沒再用過了 之前 9000Pro 的時候 我必需親自去調 LevelOfAnisotropy 才能夠開啟 AF 在 control panel 很抱歉 不行 @_@ Tom's Hardware 有一篇評測 9000Pro 開啟 AF 在 UT2003 效能比 4600 開 AF 還高 廢話 因為根本沒動作 測試人員壓根沒發現 9000Pro 效能「完全沒」降低 會不會太強了一點 ![]() 這個選項在 Splinter Cell 的 Demo 也可以找到 正式版沒玩就不曉得了 我不曉得 ATI 的 AF 有這種機制 聰明得讓人有點驚訝 照他說的(我相信他的說法) ATI 如此做不算 bug 也不算作弊 反正只看得到最上層材質 但是 還是有點怪怪的 如果只看得到最上層的材質 那不在最上層的應該是連 bilinear filtering 也不需要才對 正常不是如此 如用四層材質貼圖 那是四層都看得到 在截圖上 雖然用了 color mip map 還是看得到 light map 在上面 ATI 這麼做有「省工」的嫌疑 「只看得到最上層材質」 這句話不曉得是怎麼定義的 UT2003 的設定是對所有 layer 都做 trilinear filtering 沒錯 照 9700 的 block diagram 只要有任何取樣材質的動作 都會經過 SMOOTHVISION II 的處理 也許 SMOOTHVISION II 有存在這種特殊處理機制 當沒在 control panel 開啟 AF 時 這種機制就不會啟用 毛兄 可以請你看看同時在 .INI 中開啟 AF 及 control panel 也同時開啟 結果會是哪種嗎? 9000Pro 的話 是會遵照 .ini 檔 我的看法和你一樣 效能的差別就是在這邊不同 也覺得是驅動程式的問題 可能是 bug 但「偷吃步」的機會也很高 這個消息有些勁爆 好像還沒在國外的網站上出現 |
|
![]() |
![]() |
Elite Member
![]() ![]() ![]() ![]() ![]() 加入日期: Mar 2002 您的住址: 台北市
文章: 4,505
|
引用:
大部時候是沒有開fraps出現這種情況耶 上次在測試的時候發現為什麼改了設定(開aa/af)結果成績一樣 (是用ut2003測custom demo) 據我的經驗,有時候按apply後,螢幕也黑了一下 再按兩個確定 再開遊戲,仍然會有失效的機會,這點我實在是不知道ati的driver在搞什麼 (相對於nv的driver,是可以開啟遊戲,改設定,回遊戲立即生效,非常方便) 或許GPF兄可以幫忙研究一下這個問題可以發生的原因 ![]() (還是直接去rage3d問catalyst maker XD) 一但沒有apply成功,結束、重啟遊戲一定沒用 必須要重開機才會生效… ![]()
__________________
收到…那我就不去上課了…… GeForce3新舊Driver測試(有差嗎?) 9800SE軟改簡單教學(Catalyst+RivaTuner)。私人收藏 Magnifier.tw 2003-10-26撼訊9800XT Preview2003-11-039700Pro/9800Pro/9800XT大集合! 2004-05-28ATi強力接棒者--Radeon X800Pro !2004-06-30DX9.0c帶給了GeForceFX什麼影響?(Far Cry) 2005-01-15X800XL現身─ATI中/高階新戰將!2005-02-17剪不斷、理還亂─『CPU&顯示卡』前世今生徹底解析! 2005-06-30[G70系列之1]7800GTX真的非『最高階』CPU不可嗎? more...... |
|
![]() |
![]() |