SOGO論壇

標題: 3D繪圖卡技術說明 [列印本頁]

作者: 紅塵孤鳥    時間: 2006-12-13 15:21:37     標題: 3D繪圖卡技術說明

基本繪圖詞彙:

更新速度

電腦和電影或電視一樣,都是透過放映一系列不同影像,在顯示器上模擬動作;顯示器更新速度是繪圖卡每秒更新影像的次數,75 Hz的更新速率,即表示顯示器每秒更新影像75次。

操作電玩遊戲時,如果電腦處理訊框的速度大於顯示器的更新速度,則更新速度會產生問題。舉例來說,如果電腦每秒能處理100個訊框,顯示器的更新速度是75 Hz,就會常常發生同一訊框在被運算時,顯示器來不及完全更新顯示影像,因而產生「影像分裂」或「偽像」等干擾現象。

作為一個解決方案,垂直同步信號(V-sync)能發揮作用,它能將電腦運算訊框的速度,調整到與顯示器更新速度一致,以避免偽像產生。例如,垂直同步信號可以使電玩遊戲中的訊框運算不超過更新速度,75 Hz的更新速度會限制電腦每秒的運算速度不超過75個訊框。

像素

像素代表「圖像元素」,僅代表顯示器繪圖資訊的一個小點—即代表一種單色(大多是紅、綠、藍色的數值)。如果螢幕解析度是1024x768,那麼在一個網格裡,螢幕會顯示寬度1024個像素乘以高度768個像素的畫面,當所有像素同時顯示時,就會在螢幕上看到影像。根據不同顯示器類型及繪圖卡產生的資料量與輸出量,影像呈現的更新速度約在每秒60至120次不等;CRT顯示器以線為單位呈現影像,而平面顯示器則是每個像素個別更新。

頂點

所有3D場景的物件都是由頂點形成。一個頂點是X、Y、Z座標形成的3D空間中的一點,多個頂點聚在一起(至少四個)可形成一個多邊形,如三角形、立方體或更複雜的形狀,將材質貼在其上可使該元件(或幾個排好的元件)看起來更真實。上圖的3D立方體就是由八個頂點所形成,使用大量頂點,可形成弧線形物件等較複雜的圖像。

結構

材質只是2D影像,大小不同,可貼在3D物件上以模擬表面。例如,上圖的3D立方體由八個頂點組合而成,看起來只是一個很平凡的箱子,但貼上材質後可改變外觀,一旦將材質貼到3D物件上,該物件看起來就像是繪過該材質一樣。

著色器

像素著色器程式可讓繪圖卡處理影像特效,目前有兩種著色器:頂點著色器與像素著色器。頂點著色器能將3D元件做變形或轉換處理;像素處理器可根據複雜的輸入資料改變像素顏色,如3D場景中的光源;當點亮物件時,某些顏色顯得更亮,但其他物件因像素顏色的訊息改變,會產生陰影。

流行電玩的特效經常使用像素著色器,例如,著色器可以讓一把3D影像的劍周圍的像素光彩奪目,不同的著色器會影響一個複雜3D物件的所有頂點,讓物件看起來栩栩如生。遊戲開發者越來越倚重複雜的著色器程式以及邏輯單元,以便創造更真實的影像,影像最豐富的遊戲往往使用大量的著色器。

微軟下一代應用程式介面(API)DirectX 10是第三代著色器,稱為幾何著色器;這款新產品根據想呈現的效果,可分割、修飾、甚至摧毀物件。這三類著色器類型和智慧規劃非常類似,但目的大不相同。

達成率

在繪圖卡的包裝上會有一項產品規格,名為達成率(Fill Rate),達成率通常是指繪圖處理器繪出像素的速度。舊款的繪圖卡有三組達成率;不過,通常達成率可分為兩種:像素達成率與材質達成率。如上所述,像素達成率是繪圖卡輸出的像素總數,乘上時脈速率後,就是光柵作業(ROP)的數字。

ATI與Nvidia計算材質達成率的方式並不相同。Nvidia將像素管線的數字乘上時脈速度,得到達成率;而ATI則是將材質單元的數字乘上時脈速度。兩者計算方式都對,因為Nvidia每個像素著色器有一個材質單元,或是每一個像素管線有一個材質單元。

瞭解這些定義之後,接下來將介紹最常提到的繪圖處理器元件與其重要性。

繪圖處理器架構:功能

3D實境的效果極度倚賴繪圖卡的效能。3D處理器包含越多著色器,時脈速度越快,3D景象的視覺臨場效果就越逼真。

繪圖處理器包含不同的功能單元。在某些特殊任務中,繪圖處理器可否發揮極大效能,和其中的許多元件有關。在進一步解釋之前,先釐清幾個觀念:

頂點處理器(亦稱頂點著色單元)

如像素處理器一樣,頂點處理器是繪圖處理器上的元件,它的作用是處理僅影響頂點的著色器。既然越多頂點代表越複雜的3D物件,而3D場景包含了較多或是更複雜的3D物件,因此頂點著色器的角色非常重要。不過,和像素著色器比起來,頂點著色器顯然和整體呈現效果的關聯性較低。

像素處理器(亦稱像素著色單元)

像素處理器是繪圖晶片上的一個元件,專門處理像素著色器程式,這些處理單元僅執行像素運算,由於像素代表色值,因此像素著色器是用來處理繪圖影像的各種視覺特效;舉例來說,電玩遊戲中最出色的水波特效乃是由像素著色器所完成。繪圖處理器中的像素著色器數目,通常用來比較不同繪圖卡片的像素處理效能;如果拿8像素著色器單元和16著色器單元作比較,可以合理推論16著色器單元的繪圖卡在處理複雜的像素著色器特效時,速度比較快,時脈速度亦會影響,不過把繪圖晶片的晶片時脈速度調高兩倍,還不如將著色器的數目增加至兩倍,效能會更好。

通用著色器

通用著色器在個人電腦市場上還不普及,不過最新上市的DirectX 10規格已開始用通用著色器的架構。這代表頂點幾何與像素著色器代碼結構的功能相似,但都有專屬的捲軸。Xbox 360的新規格是由ATI為微軟(Microsoft)開發,新一代DirectX10展現的潛在需求將創造新的話題。

材質貼圖單元(TMU)

材質需要被定址或是過濾,這項工作由TMU協同像素及頂點著色器單元完成,TMU會將材質貼到像素上。在比較兩個不同卡片的材質處理效能時,需要看繪圖處理器的材質單元數目;可以合理推論,有較多TMU的繪圖卡,材質資訊的處理速度較快。

光柵作業單元(ROP)

光柵作業處理器負責將像素資料寫入記憶體,該工作速度即達成率。ROP和達成率在3D繪圖卡早期是重要的公制單位,ROP的工作非常重要,它已經不像以前無法突破效能瓶頸,現在也不是拿來作為測量效果佳否的相關效能指標。

視訊功能

除了硬體規格之外,不同代和不同模式的繪圖處理器可能展現完全不同的功能組。舉例來說,常提到的ATI Radeon X800 XT-based繪圖卡與Shader model 2.0b相容,而Nvidia GeForce 6800 Ultra則是與Shader Model 3.0相容,雖然兩者的硬體規格類似(16管線架構),而有許多人將此資訊作為決定選購的依據,卻不明白此區別實際代表的意義。接下來將討論一些針對一般使用者的視訊功能和應用。

微軟DiretX與Shader Model版本

這些名詞大概都是些最常聽到卻最不明白的名詞,為了抓到重點,以下會介紹一些API繪圖卡的歷史,並做簡短說明。DrectX和OpenGL都是API繪圖卡,API是Application Programming Interface(應用程式介面)的縮寫,基本上代表一種大家都可使用的程式標準。

在3D繪圖技術API出來之前,每個繪圖卡公司都有自己的專屬方法,讓他們的繪圖卡可支援遊戲。開發廠商為了能夠支援特定的遊戲類型,被迫由特定廠商所設定的路徑來寫遊戲程式,這種作法成本高昂,事倍功半。為了解決這個問題,產生了3D繪圖API,開發廠商可以自己寫和API相容的軟體程式,而不是跟著每一款每一型的硬體程式寫,相容的責任於是轉到繪圖卡廠商,他們必須確保驅動程式和API程式相容。

唯一的困難在於當時有兩種完全不同的API,兩者至今仍然沿用。這兩種重要的API就是微軟的DirectX和OpenGL標準,GL是Graphics Library(圖形庫)的縮寫。由於在電玩遊戲方面,DirectX API對繪圖處理器硬體技術的影響較大,接下來會專談DirectX,同時,它對目前的遊戲而言更重要。

DirectX是由微軟所開發,實際上,DirectX是API的集合,其中只有一種與3D繪圖有關。舉例來說,DirectX包括音訊、音樂、輸入裝置與媒體的API,應用在3D繪圖上的特定DirectX API稱為Direct3D,但如果專指繪圖卡,一般的理解是DirectX和Direct3D兩個名詞可交互使用。

繪圖硬體技術不斷發展,遊戲開發廠商寫遊戲程式的方法持續革新,DirectX也隨著定期更新,當DirectX快速受到歡迎並大量使用時,繪圖處理器廠商則開始將他們的繪圖處理器設計和最新的DirectX功能同步,因此,繪圖卡經常由DirectX模型版本所描述(DirectX版本8、9.0或者最新版9.0c)。

說得複雜一點,和整個DirectX集合相比,Direct3D API可以做小部分的更動,例如,DirectX 9.0規格可支援Pixel Shader 2.0。然而,DirectX 9.0c包含了Pixel Shader 3.0規格,這代表,並非所有的DirectX 9等級的繪圖卡,都可支援相同的功能;Radeon 9700支援Shader Model 2.0,而Radeon X1800則支援Shader Model 3.0,因此,我們可準確地說,兩者都是「DirectX 9繪圖卡」。

要記住,開發廠商在設計遊戲時,幾乎都會注意到舊硬體的使用者,因為如果忽略舊硬體會使他們的市場大幅受限,因此,開發廠商經常在遊戲中寫不同的「路徑」程式,以支援舊的硬體。一套DirectX 9等級的遊戲可能會有DirectX 8的路徑,甚至DirectX 7的路徑,以保持相容性,一般來說,這些舊的路徑不會有新繪圖卡片所能展現的視訊功能,但至少它可支援舊的繪圖卡執行遊戲。

即便讓遊戲執行的繪圖卡是較舊的版本,許多新的遊戲還是要求使用者安裝最新的DirectX版本。一套僅使用DirectX 8技術的最新遊戲,可能需要最新的DirectX 9版本以便執行,縱使在DirectX 8等級的硬體上也一樣。

現在,讀者對DirectX的背景已經有個概括的瞭解,那麼DirectX上不同的的Direct3D API版本究竟有何不同?若和Direct3D API相比,早期的DirectX版本—3、5、6、7則比較簡單,開發廠商必須在一份事先寫好程式、固定的特效清單中,混用和匹配視訊特效。繪圖程式跨越至當前風格的最大一步是DirectX 8,DirectX 8引進客製著色器程式編寫,首次幫助開發廠商設計真正的客製視訊特效,DirectX 8支援Pixel Shaders 1.0∼1.3,以及Vertex Shader 1.0;DirectX 8.1是DirectX 8的升級版本,可支援Pixel Shader 1.4和Vertex Shader 1.1。

在DirectX 9裡,著色器的複雜性被擴大。DirectX 9支援Pixel Shader 2.0和Vertex Shader 2.0,DirectX 9c是DirectX 9c的升級版,它包括Pixel Shader 3.0的規格。

DirectX 10是最新版本,和下一代Windows Vista視窗有密切關係,但與Windows XP不相容。

高動態範圍光映射與OpenEXR HDR

HDR是「高動態範圍」的縮寫,有HDR光映射的電玩遊戲,比沒有HDR的遊戲更能展現真實的畫面,但並非所有的繪圖卡都能展現HDR的圖形。

在與DirectX 9相容的繪圖處理器出現前,談到繪圖卡運算的光映射準確範圍,繪圖卡的限制一直都很大,一直到目前為止,所有光映射都必須以8位元(或256)整數階層來運算。

一旦擁有真正DirectX 9等級的繪圖處理器上市,繪圖卡就有能力在全24位元或是16.7百萬階層下,顯示高範圍的光映射準確度。

有了16.7百萬階層的亮度,與DirectX 9�Shader Model 2.0相容的繪圖卡運算能力也增加了之後,PC遊戲的HDR光映射就有可能實現。HDR光映射是個複雜的概念,要看到實際操作才能領會,可以簡單地解釋為HDR光映射的對比增加(陰影更深,亮光更亮),同時在陰影和光亮區中又能增加影像細節的光映射總量;有HDR功能的電玩遊戲,在視覺上亮度和深度比起沒有HDR的遊戲,要來得逼真。

和最新Pixel Shader 3.0規格相容的繪圖處理器,擁有更高的光映射準確度(32位元),並且可使用浮點精度的混色,這代表所有SM 3.0的繪圖卡都能支援特殊的HDR技術,稱「OpenEXR」,這是為電影工業所開發的規格。

有一些僅支援HDR技術OpenEXR的遊戲,並不能支援Shader Model 2.0繪圖卡上的HDR,不過,支援非OpenEXR技術的遊戲,會與任何DirectX 9繪圖處理器一同作業。例如,PC遊戲《上古捲軸4:遺忘之都》採用OpenEXR HDR,並且只能在新的繪圖卡上展現這項功能,這些新的繪圖卡支援Shader model 3.0規格—如Nvidia的GeForce 6800或ATI的Radeon X1800。《戰慄時空2》是以3D引擎為基礎的遊戲,像《絕對武力:次世代》和《戰慄時空2:劫後餘生》都允許HDR在僅支援Pixel Shader 2.0的舊式DirectX 9繪圖卡上呈現,GeForce 5系列或ATI的Radeon 9500就是一例。

最後,應該要注意所有類型的HDR需要極高的運算能力,如果不是最強大的繪圖處理器或運算系統,速度會被拖慢,如果你想要體驗最新的HDR遊戲,一定要配備高效能的繪圖硬體。

抗鋸齒功能

鋸齒(縮寫為AA)是指數位影像呈現的時候,圖形呈現的鋸齒狀或是塊狀。在繪圖方面,指的是螢幕上呈現階梯般的角邊;抗鋸齒是一種繪圖功能,能降低該現象。不過,由於抗鋸齒的運算使用大量的繪圖處理器資源,因此會導致框速率下降。

抗鋸齒技術極度倚賴繪圖記憶體的效能,因此,和低階的繪圖卡相比,有高效能記憶體的高效能繪圖卡在執行抗鋸齒功能時,效能障礙較少。抗鋸齒功能有不同的級別,例如,四倍的抗鋸齒功能所產生影像畫質比兩倍抗鋸齒的畫質更佳,但效益成本也更高;兩倍抗鋸齒功有雙倍的水平和垂直解析度,四倍的抗鋸齒功能則是四倍。

材質過濾

所有電玩遊戲裡的3D物件都經過材質處理,隨著材質呈現的視角增加,遊戲中的材質會越來越模糊且變形,為了解決這個問題,繪圖處理器開始使用材質過濾。

最早的材質過濾被稱為雙線性的,會呈現非常明顯的過濾條紋,畫面變得很不好看,一直到了三線性的材質過濾在雙線性技術上做了一些改善,才解決了這個問題;這兩種過濾方式從現在繪圖卡的角度來看,比較沒有成本效益。

現在市面上最好的過濾方式是非等方性過濾(通常縮寫為AF),和抗鋸齒一樣,非等方性過濾有不同的等級。例如,八倍的AF比四倍AF產生更佳的過濾品質。非等方性過濾和抗鋸齒一樣,需要更多的流程能力,且在AF發生作用的等級上增加對效能表現的影響。

高清晰材質集

所有3D電玩遊戲都依據目標規格做開發,其中一個規格就是遊戲所需要的材質記憶體容量。遊戲進行時,所有必備材質都必須能存於繪圖卡記憶體,否則效能會受到嚴重影響,額外需要的材質則被儲存在較慢的RAM系統或硬碟裡。因此,如果遊戲開發公司以128 MB記憶體作為遊戲的最低需求,那麼支援它的材質就稱為「材質集」,不論何時,都不會對繪圖卡要求超過128 MB的記憶體容量。

更新的遊戲經常支援多個材質集,因此,除了最新的繪圖記憶卡之外,遊戲可以較少的材質記憶體來支援較舊的繪圖卡。舉例來說,一套遊戲可能包括三個材質集:適用於128 MB、256 MB和512 MB的繪圖記憶體。支援512 MB繪圖卡記憶體的遊戲非常少見,但是為了它們,購買那麼大的繪圖卡記憶體絕對值得。記憶體越大,通常對原始效率造成的影響較小,但如果遊戲可以支援它,影像畫質會改善很多。
作者: keivn    時間: 2006-12-14 06:13:55

這是個很專業的分析報告
謝謝大大的解說與分享
作者: 隼人    時間: 2006-12-18 17:55:38

謝謝樓主這樣詳細的分析~~
讓我對繪圖卡又更了解了!!
作者: wedxza    時間: 2006-12-20 09:18:04

謝謝樓主這樣詳細的分析...............讓我對繪圖卡又更了解了!!
作者: 山城隱士    時間: 2006-12-21 01:07:00

原帖由 wedxza 於 2006-12-20 09:18 發表
謝謝樓主這樣詳細的分析...............讓我對繪圖卡又更了解了!!


啊你真的是皮在癢了,竟然敢完全一模一樣的複製,先扣個兩分小小警告一下,下次再這樣,小心版主罰你不能來
作者: hillabc    時間: 2007-9-20 01:55:47

真的好詳細歐
連我都甘拜下風了
佩服你啦 哈




歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM