![]() |
||
|
Master Member
![]() ![]() ![]() ![]() 加入日期: Jan 2003
文章: 1,591
|
請對顯卡和3D技術有深入了解的網友進來一下 謝謝
這是我在某論壇看的文章
我自己對3D技術相關方面不是很了解 但我覺的有些地方好像怪怪的 __________________ FPS 衝高不代表一切喔~ ATI 公司有種技術, 把多餘的FPS數, 拿來做畫面的美化. 每次在 render 3d 場景的時後, 要把場景中的三角片送給D3D (或opengl) 減少三角片的數量而不使畫面失真, 是程式設計師的真功夫了. 像 unreal引擎 (天堂二用的那個), 漂漂亮亮的場景, 竟然不到一萬個三角片! 這一隻引擎就可以賣 100萬 USD ( 當然不只這項技術使它值錢 :P ) 在場景資料送給 d3d 以後, shader 就上場了. 像那個PF的海浪用 vertext shader 3.0 畫的, 譬如說 大海用vs來畫 大海假設有一千個三角片, 每個三角片的頂點就叫一個vertex. 譬如每個vertex依它的坐標值,shader是每個頂點乘上一個 sin(x), 再乘個sin(y) 一大片平坦的三角形, 新的座標值看起來就像有了起伏~ 當然shader 的功能多得很 , 我也只知道皮毛~~ 這個部份的速度, programer跟硬體都要負上責任~ shader 跑完後, 3d prgramer的責任就沒了, 剩下就都是d3d 跟繪圖卡的事情了. 每個三角形要算成screen 上的點, 從3D 到2D screen 上 1024*768 的點的顏色都要算好畫出來, ATI 的技術可以知道現在FPS 是多少, 跑太快的話, 就用多餘時間幫你做畫面柔和的動作. 基本上跟像素之間的相鄰有關.. 這部份技術我就不太清楚了~ shader 要跑得漂亮得話, 要查看d3dcaps ... DirectX sdk 裡面有個directx caps viewer, D3D對卡的診斷都寫在裡面, 一個programer 讓電腦跑甚麼等級的shader, 都會先查一下d3dcaps, 一隻program 初始化的時候就會去檢查卡的 capbility , 不行的就跑次一級的 shader. 基本上卡的caps跟 gpu核心很有關, 核心差不多, caps 也差不多. 時脈再高, caps 沒有, 也是跑次一級的shader. 而fps 超過40 也很浪費, prgramer 有種常用的寫法, 計算這一輪跟上一輪差幾微秒, 差不多就不render 3d 場景了. 好的programer可以改進上述的第一步跟第二步, 好的卡可以改進第二步跟第三步. 譬如說pf 比 fb 場景大好幾倍, 電腦都不會慢, 顯然 3d engine 變強了~~ 昨天第一次玩好感動~~ 個人對買卡的建議, 如果gpu 核心差沒有太多, 可以不用追高, d3dcaps 看起來不會差太多. 如果錢一定要花, 可以考慮買ram大一點的卡, 這樣d3d可以把貼圖跟3d model 放在卡的ram 裡面. 卡的ram 不足, 材質就要壓縮, 或丟在主記憶體裡.
__________________
So you walk eternally through the shadow realms, standing against evil where all others falter. May your thirst for retribution never quench, may the blood on your sword never dry, And may we never need you again. |
|||||||
|
|