返回   ShareGet 社群討論 > ≡ 電腦網路 ≡ > □ -- 硬體討論 > ☆ 教學精華文章

發表新主題 回覆
 
主題工具 顯示模式
  #1  
舊 2005-06-04, 10:06 PM
vxr 的頭像
vxr vxr 目前是離線
星の魂
 
註冊日期: 2005-02-08
文章: 723
給予: 0 | 感謝 6 | 共 4 篇
積分: 4588 | 給分能力: 27
[轉貼] 顯示卡的基本流程運作與3D Primitive基本程序運作

這是Gzeasy的HPR大姐寫的..
如下:
圖形加速卡技術論壇:1.入門篇--圖形加速之圖形<O</O

來了這麼久,也對這裏的朋友有了一個大概的瞭解。

恕我羅索<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com[img] /><st1:chmetcnv w:st=[/img]一兩</st1:chmetcnv>句,這裏的名字是<font face=" /><st1:chmetcnv UnitName="兩" SourceValue="1" HasSpace="False" Negative="False" NumberType="3" TCSC="1" w:st="on">一兩</st1:chmetcnv>句,這裏的名字是</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>圖形加速卡技術論壇</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>,可是情景完全不是這樣啊。選購,改卡,甚至遊戲也是技術,我倒不說什麼,可是</FONT></FONT><FONT face=Tahoma>n </FONT><FONT face=Tahoma><FONT face=新細明體>多人在這裏說些完全沒有關係的話題,或者讓人看了完全摸不著頭腦的東西,給我們留下不好的印象。</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>總的來說論壇裏的朋友也有幾個對軟體,硬體和編成比較在行的人,從他們的一言一行中我們也能察覺出來。可是絕大多數用戶,雖說是電腦愛好者,可是可能由於對電腦的各個方面接觸不很多,不很廣,所以總是來問一些重複的,基本的問題。有的朋友甚至連顯卡是幹什麼用的也不很清楚。鑒於此,我抽了一些時間,來寫這篇文章,稍後可能還有什麼</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>中級篇,高級篇,</FONT></FONT><FONT face=Tahoma>xx </FONT><FONT face=Tahoma><FONT face=新細明體>級篇</FONT></FONT><FONT face=Tahoma>(!) </FONT><FONT face=Tahoma><FONT face=新細明體>啦等等的推出,主要的目的是給廣大的硬體愛好者指點一下迷津,也考驗一下我</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>年的電腦知識經驗。如果有說的不妥當的地方,大家可以指正出來,我肯定虛心接受。</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>還有,這篇文章是我自己寫出來的,其中的部分可能會參考一些有意義的文獻,不過我會標明的。我平時說話,回貼都懶懶散散的,不過這個學術說明之類的東西,我會儘量謹慎用詞。在這裏呢,我不想把大家帶回到古代,從頭開始溫習電腦的發展史,因為我對電腦發展史,不好意思地說,也學的很差。還有,謝謝大家捧場來看嘍!</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>正題:入門篇</FONT></FONT><FONT face=Tahoma> ---- </FONT><FONT face=Tahoma><FONT face=新細明體>圖形加速</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>之</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>圖形</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>首先,我們先來咬文嚼字:圖形加速卡。就是用來加速圖形處理的一張擴展卡。所謂的圖形處理是什麼呢?純文本時代的電腦,那一行一行的命令和文字,不叫圖形處理。</FONT></FONT><FONT face=Tahoma>:-P </FONT><FONT face=Tahoma><FONT face=新細明體>圖形和文本是電腦輸出給人們</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>看</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>的兩樣東西。</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>一、文本,被遺忘的時代</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>真正的文本處理呢,很不幸在</FONT></FONT><FONT face=Tahoma> DOS </FONT><FONT face=Tahoma><FONT face=新細明體>之後已經被完全淘汰了。所以沒有什麼</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>文本加速卡</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>之流的東西,是因為現在的顯卡,即使完全沒有文本處理的功能,也能在</FONT></FONT><FONT face=Tahoma> Windows </FONT><FONT face=Tahoma><FONT face=新細明體>下正常的工作。到這裏,也許有人要問了:</FONT></FONT><FONT face=Tahoma>Windows </FONT><FONT face=Tahoma><FONT face=新細明體>裏的文字,不是</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>文本</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>嗎?答案是:對你來說,它是。可是對電腦來說,它就不是文本了。</FONT></FONT><FONT face=Tahoma>Windows </FONT><FONT face=Tahoma><FONT face=新細明體>裏的文本,也是圖形。那些文字是被</FONT></FONT><FONT face=Tahoma> Windows “</FONT><FONT face=Tahoma><FONT face=新細明體>畫</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>出來的。打開控制面板裏的</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>字體</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>,你看到了什麼?種類繁多的字體是吧。這些都不是存放在顯卡裏的,而是在硬碟上。當</FONT></FONT><FONT face=Tahoma> Windows </FONT><FONT face=Tahoma><FONT face=新細明體>接收到在視窗上列印一行字的命令的時候,它會調度</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>畫</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>字程式,從硬碟裏讀出字體,然後畫到螢幕上來。現在就明瞭了:</FONT></FONT><FONT face=Tahoma>Windows </FONT><FONT face=Tahoma><FONT face=新細明體>的介面是完全基於圖形的。所以圖形加速卡對於</FONT></FONT><FONT face=Tahoma> Windows </FONT><FONT face=Tahoma><FONT face=新細明體>來說是十分重要的。好了,現在,讓我們忘掉</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>文本</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>吧!</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>二、圖形的定義,圖元及其他</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>再來看圖形的定義。圖形在</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>電腦裏有兩種截然不同的定義。第一種叫</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>光柵圖形</FONT></FONT><FONT face=Tahoma>(Raster Graphics)</FONT><FONT face=Tahoma><FONT face=新細明體>,第二種叫</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>向量圖形</FONT></FONT><FONT face=Tahoma>(Vector Graphics)</FONT><FONT face=Tahoma><FONT face=新細明體>。所謂的</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>光柵圖形</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>,每個電腦玩家都有廣泛的接觸。你現在打開</FONT></FONT><FONT face=Tahoma> Windows </FONT><FONT face=Tahoma><FONT face=新細明體>的</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>畫筆</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>程式,隨便畫幾個圓,幾條線,圖幾塊色,然後把你得圖放大</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>倍</FONT></FONT><FONT face=Tahoma>(</FONT><FONT face=Tahoma><FONT face=新細明體>這個不用我指導你做吧?!</FONT></FONT><FONT face=Tahoma>) </FONT><FONT face=Tahoma><FONT face=新細明體>你看到了什麼?是不是由一個一個的小方塊組成了你的圖形?每一個小方塊,被稱作一個圖元</FONT></FONT><FONT face=Tahoma>“Pixel”</FONT><FONT face=Tahoma><FONT face=新細明體>。也就是說,你的圖形是有小小的圖元們組成的。</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>盯著一個圖元,你發現了什麼?對了!一個圖元只有一種顏色!</FONT></FONT><FONT face=Tahoma>( #%@#%^@)</FONT><FONT face=Tahoma><FONT face=新細明體>。而懂一點色彩學的人,都應該知道,光是由</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>紅</FONT></FONT><FONT face=Tahoma>(Red) </FONT><FONT face=Tahoma><FONT face=新細明體>綠</FONT></FONT><FONT face=Tahoma>(Green) </FONT><FONT face=Tahoma><FONT face=新細明體>和</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>藍</FONT></FONT><FONT face=Tahoma>(Blue) </FONT><FONT face=Tahoma><FONT face=新細明體>三種基色以任意比例組合而成的。這圖形裏的一個圖元,也是由</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>紅,綠</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>和</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>藍</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>組成的。在最為廣泛的電腦圖形之中,每一個原色,由</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>八個</FONT></FONT><FONT face=Tahoma> 0 </FONT><FONT face=Tahoma><FONT face=新細明體>或</FONT></FONT><FONT face=Tahoma> 1 </FONT><FONT face=Tahoma><FONT face=新細明體>的二進位數字,也就是</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位組成,也就是每種顏色的表現能力為</FONT></FONT><FONT face=Tahoma> 2^8 = 256 </FONT><FONT face=Tahoma><FONT face=新細明體>種,稱之為</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>色階</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>。學過統計嗎?每個原色</FONT></FONT><FONT face=Tahoma> 256 </FONT><FONT face=Tahoma><FONT face=新細明體>種色階,那麼</FONT></FONT><FONT face=Tahoma> R/G/B </FONT><FONT face=Tahoma><FONT face=新細明體>三種原色的表現能力為多少種顏色?</FONT></FONT><FONT face=Tahoma>……… </FONT><FONT face=Tahoma><FONT face=新細明體>你在翻高中數學書?咳,算了,還是我告訴你吧。要把它們乘起來。結果是</FONT></FONT><FONT face=Tahoma> 256 x 256 x 256 = …. 16777216 </FONT><FONT face=Tahoma><FONT face=新細明體>種。哇?!這麼多?好,讓我們用電腦習慣的千進制來吧它分開:</FONT></FONT><FONT face=Tahoma>16,777,216 = <st1:chmetcnv UnitName="m" SourceValue="16" HasSpace="False" Negative="False" NumberType="1" TCSC="0" w:st="on">16M</st1:chmetcnv></FONT><FONT face=Tahoma><FONT face=新細明體>。這就是人們常說的什麼</FONT></FONT><FONT face=Tahoma> 16</FONT><FONT face=Tahoma><FONT face=新細明體>兆色啦,真彩色啦等等。</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>這裏來一點插曲。如果一種染色占</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位的話,那麼</FONT></FONT><FONT face=Tahoma> R/G/B </FONT><FONT face=Tahoma><FONT face=新細明體>總共占</FONT></FONT><FONT face=Tahoma> 8 + 8 + 8 = 24 </FONT><FONT face=Tahoma><FONT face=新細明體>位。可是</FONT></FONT><FONT face=Tahoma> 24 </FONT><FONT face=Tahoma><FONT face=新細明體>位對現在的</FONT></FONT><FONT face=Tahoma> 32 </FONT><FONT face=Tahoma><FONT face=新細明體>位元的電腦系統來說,是一個很不舒服的長度。應為</FONT></FONT><FONT face=Tahoma> 24 </FONT><FONT face=Tahoma><FONT face=新細明體>位對於電腦一次處理的</FONT></FONT><FONT face=Tahoma> 32 </FONT><FONT face=Tahoma><FONT face=新細明體>位來說,太小,可是一次處理兩個</FONT></FONT><FONT face=Tahoma> 24 </FONT><FONT face=Tahoma><FONT face=新細明體>位,又超出了</FONT></FONT><FONT face=Tahoma> 32 </FONT><FONT face=Tahoma><FONT face=新細明體>位的處理能力。怎麼辦?只能在</FONT></FONT><FONT face=Tahoma> 24 </FONT><FONT face=Tahoma><FONT face=新細明體>位的顏色後面,再補上</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位元的空數據。這樣一來,一個圖元的顏色將佔用</FONT></FONT><FONT face=Tahoma> 32 </FONT><FONT face=Tahoma><FONT face=新細明體>位,正好和</FONT></FONT><FONT face=Tahoma> 32 </FONT><FONT face=Tahoma><FONT face=新細明體>位元系統的處理能力相應。這樣處理起來就舒服多了。</FONT></FONT><FONT face=Tahoma>“</FONT><FONT face=Tahoma><FONT face=新細明體>空數據?你的意思是說每一個圖元要浪費</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位元資料?</FONT></FONT><FONT face=Tahoma>”</FONT><FONT face=Tahoma><FONT face=新細明體>答案並不是肯定的。最後的</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位元雖然在圖形的顯示上沒有作用,可是由於這裏多了</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位,人們總要想辦法充分利用現有的資源的。所以另一個概念被加入到了圖元裏:透明度。也就是大家耳渲目染的圖元</FONT></FONT><FONT face=Tahoma>Alpha </FONT><FONT face=Tahoma><FONT face=新細明體>值。用原本沒用的</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位來保存</FONT></FONT><FONT face=Tahoma> Alpha</FONT><FONT face=Tahoma><FONT face=新細明體>,不錯的創意吧。這樣,我們就可以根據圖元的透明度,來把一個圖元和另一個圖元混合,做出重疊的效果。這就人傳說中的</FONT></FONT><FONT face=Tahoma> Alpha </FONT><FONT face=Tahoma><FONT face=新細明體>混合</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>特效</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>呵呵。挺簡單的吧。到這裏,我們用比較專業的格式來表達一下最常用的圖元:</FONT></FONT><FONT face=Tahoma>R<st1:chmetcnv UnitName="g" SourceValue="8" HasSpace="False" Negative="False" NumberType="1" TCSC="0" w:st="on">8G</st1:chmetcnv>8B<st1:chmetcnv UnitName="a" SourceValue="8" HasSpace="False" Negative="False" NumberType="1" TCSC="0" w:st="on">8A</st1:chmetcnv>8</FONT><FONT face=Tahoma><FONT face=新細明體>。</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>哇,什麼?好,拆開看:</FONT></FONT><FONT face=Tahoma>R8, G8, B8, A8 </FONT><FONT face=Tahoma><FONT face=新細明體>也就是</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>紅</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位,綠</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位,藍</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位,透明度</FONT></FONT><FONT face=Tahoma> 8 </FONT><FONT face=Tahoma><FONT face=新細明體>位。用來唬人蠻不錯的啊</FONT></FONT><FONT face=Tahoma>~

</FONT><FONT face=Tahoma><FONT face=新細明體>光柵圖形就介紹到這裏的。接下來該另一個英雄登場:向量圖形。別小看了它,現在的</FONT></FONT><FONT face=Tahoma> 3D </FONT><FONT face=Tahoma><FONT face=新細明體>圖像基礎可是有很大一部分是基於它的。</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>光柵圖形是一個一個的點,而向量圖形是什麼呢?其實也是一個一個的點,不過還有數學公式。這樣講:如果說光柵圖形是告訴電腦在每個點畫什麼顏色的話,那麼向量圖形就是教給電腦該怎麼樣畫一個圖形。比如一個圓。如果用光柵圖形來表示,那麼就要有一大堆的圖元,來描速在圓所在的區域裏,每個點的顏色。而用向量圖形來表示:它是一個圓,圓的圓心,圓的半徑</FONT></FONT><FONT face=Tahoma>(</FONT><FONT face=Tahoma><FONT face=新細明體>可能還有圓的顏色</FONT></FONT><FONT face=Tahoma>)</FONT><FONT face=Tahoma><FONT face=新細明體>。就這麼簡單。在電腦畫這兩張圖的時候,做的就是截然不同的工作了。畫光柵圖的時候,電腦把所有的圖元資料讀出來,然後原模原樣的</FONT></FONT><FONT face=Tahoma> Copy </FONT><FONT face=Tahoma><FONT face=新細明體>到顯示緩存,這樣我們就在螢幕上看到這個圓了。而畫向量的圓,完全不同了:首先,電腦要確定圓的圓心,半徑,然後找到這個圓將落在螢幕的哪一片區域。這個很重要的一步,叫做</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>設定</FONT></FONT><FONT face=Tahoma>(Setup)</FONT><FONT face=Tahoma><FONT face=新細明體>。找到了圓所在的螢幕區域之後,就可以用指定的顏色來填充這個區域了。這一步叫</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>光柵化</FONT></FONT><FONT face=Tahoma>(Rasterize)</FONT><FONT face=Tahoma><FONT face=新細明體>。圓所在的區域被填充了出來,我們就自然而然的看到這個圓了。</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>這個呢,就是電腦圖形的初步基礎。要牢記</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>光柵圖形,向量圖形的定義,以及向量圖形的畫法。籠統地說有兩步,就是</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>設定</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>和</FONT></FONT><FONT face=Tahoma><FONT face=新細明體>光柵化。這在以後的</FONT></FONT><FONT face=Tahoma> 3D </FONT><FONT face=Tahoma><FONT face=新細明體>圖形知識部分很重要。</FONT></FONT><FONT face=Tahoma>

</FONT><FONT face=Tahoma><FONT face=新細明體>好了,一口氣寫了這麼多,我先歇會兒。大家慢慢消化消化啊。還有哪里不對一定要說出來。</FONT></FONT><O</O

此文章於 2005-06-04 10:50 PM 被 vxr 編輯.
回覆時引用此文章
  #2  
舊 2005-06-04, 10:10 PM
vxr 的頭像
vxr vxr 目前是離線
星の魂
 
註冊日期: 2005-02-08
文章: 723
給予: 0 | 感謝 6 | 共 4 篇
積分: 4588 | 給分能力: 27
第2篇:
圖形加速卡技術論壇:2.原理篇--圖形加速之加速



回顧:上一篇,我給大家簡單的介紹了一下什麼是圖形,圖形有幾種類型,以及它們的畫法,大家能記的起來嗎?

正題:原理篇 ---- 圖形加速加速

很久以前,繪圖工作全部是由我們偉大而神聖的 CPU 來完成的,那時候的顯卡,就是真正意義上用來顯示東西的卡。它的工作就是把 CPU 處理好的資料到顯示器上來。那時候 CPU 的工作可真是辛苦。現在好了,CPU 越來越快,可是做的工作卻越來越少了。我先來說說圖形加速的幾個階段。2D 圖像加速,Windows 加速 3D 圖像加速。

一、簡單死板的 2D 加速

2D
加速,是早就有的產物了。它的作用是用顯示晶片來代替 CPU,整塊整塊的移動顯存裏的資料。比如,你要移動一個視窗,在沒有 2D 加速的時代,CPU 所作的工作:1、找到視窗在顯存中的位址,2、把一行資料拷貝到目的地址,3、重複 2 直到拷貝完所有的行。完成。這樣一來,當視窗很大的時候,CPU 要處理的資料量就會成倍的增長,導致視窗的移動比蝸牛爬還慢…. 想體驗一下嗎?好,進入設備管理器,把你的顯卡驅動刪掉,然後重起…. 好好享受啊!呵呵

有了 2D 加速呢,CPU 所做的事,減輕了很多,不過還是要指導顯示晶片來幹這搬運工的活。CPU 的工作:1、找到視窗在顯存中的位址,2、給顯卡發送拷貝這一行到目的地的命令。3、重複 2 直到拷貝完所有的行。初看起來好像和沒有加速以前差不多,可是第 2 步就是關鍵所在哦。

現在讓我們把第二步分解來看:沒有 2D 加速:1、讀 32 Bit 數據(入門篇裏的哦!),把這 32 Bit 資料寫入目的地。2、重複 1 直到一行所有的圖元被處理完。而有了 2D 加速後的工作只有:1、發送命令讓顯卡去拷貝這一行。這樣看來,2D 加速確實能很大程度的釋放 CPU 的負擔。所以大家現在隨便提起一個視窗移動一下,很平滑不是嗎?顯卡負責了視窗的移動。

二、詭異的 Windows 加速

Windows
對於每位 PC 程式師來說,都可以用詭異二字來形容。Windows 有太多專有的東西,以至於顯卡也要為 Windows 本身制定一套加速計畫。擁有全部的 Windows 加速功能的顯卡幾乎沒有,而且現在的 CPU 的速度足以彌補 Windows 沒有全部硬體加速的缺陷。總的來說,包括滑鼠游標的加速,圖示的加速特別的視窗加速等等。

滑鼠加速就是用顯卡的硬體來處理 Windows 的滑鼠游標。大家現在看到的滑鼠游標和桌面上的其他內容其實不屬於同一個層。是畫在顯卡單獨劃分出來的頂層裏的。具體的內容也就不用太詳細的介紹的,總之我告訴大家一個辨別的方法。打開一個動畫視窗,也就是內容一直在變動的視窗,然後把滑鼠游標移動上去。如果游標不斷的閃動,那麼顯卡沒有給滑鼠游標加速。反之如果滑鼠游標紋絲不動,那麼顯卡給滑鼠游標加速了。

圖示的加速,就是顯卡來畫 Windows 圖示的功能。這個功能真是少只又少,不過對於目前 Windows xp 慣用的 32Bit 透明圖表,現代的圖形加速卡能起到一定程度的加速功能。

特別的視窗加速:視窗加速不是用 2D 加速功能來處理嗎?有什麼特別的?當然有。移動一個視窗,嘿嘿,現在你知道電腦在做什麼。可是,當一個頂端視窗擋在你移動的視窗上面的時候,也就是一個總在最前面的視窗(Windows 定的稱呼) 擋在桌面,而你在它的下面移動一個視窗….. 怎麼樣,解釋不了了吧!?這個時候,Windows 要做的事就稍有不同了。它首先找到視窗露在外面的部分,然後這樣把整個視窗分割成一個一個的小塊,再一個一個移動它們到目標位置。是不是比較麻煩?而如果用有 Windows 加速功能的顯卡來做,顯卡自己就可以處理這一切了。Windows加速就講這麼一點吧,因為它太龐大了,我都沒有全部弄清楚。那麼接下來,該我們的主角出場了 ------

三、複雜龐大的 3D 加速

人人都喜歡渲染 3D 動畫(一看就頭暈的除外)。看到虛擬的主角在螢幕上跳來跳去,殺來殺去,拯救世界,誰不激動啊!說起 3D 加速,由於它太複雜了,我準備分 5 個部分來講,涵蓋從簡到繁,從過去到未來的 3D 加速基礎知識,好讓大家能多瞭解一點我們默默無聞的 3D 加速卡們的工作。

3.1:
彩色三角形

世界就是這樣開始的。人們想到了用三角形來表示 3D 的物體。其實很簡單,學過高中幾何的同學都知道,三點確定一個平面。所以三角形永遠都是平面的。這樣一來,複雜的曲面物體被近似的用小的平面來表示,在繪畫上面會方便很多。來看畫一個三角形的過程:前面的文章我已經講了繪製向量圖的過程。其實一個三角形也相當於一個向量圖。它由三個頂點組成。而繪製的過程一樣有兩步:1、找到三角形將會坐落在螢幕的哪個地方。2、用顏色填充這個地方。也就是我提到的設定(Setup) 光柵化(Rasterize) 的過程。而由於物件是三角形,我們給這兩個過程另起名字叫做:三角形設定(Triangle Setup) 三角形光柵化(Triangle Rasterize) 過程。呵呵,有點兒現代圖形學的意思了吧!一開始的 3D 圖形,只有顏色,沒有現在人們所說的貼圖啦,紋理啦等等,所以生成的圖像都是光突突的感覺。那個時候根本還沒有出現 3D 遊戲的概念,而專業人士是不會在乎這些的……

3.2:
貼圖?皮膚… + 顏色混合

人們顯然不會滿足永遠看著光禿禿的三角形組成的東西在螢幕上亂跳。於是慢慢的有人想到:我們給三角形貼上紋理貼紙怎麼樣?說起紋理,看看你家裏的傢俱,它們表面的木紋啦什麼的,還真的和三角形用的紋理貼圖有點相似之處呢!紋理貼圖在 3D 圖形領域所扮演的角色,和現實家居裏的牆紙,貼紙確實功能差不多。而當時在紋理貼圖發明的初始時間,還有人強烈的反對它呢!有人認為紋理貼圖是沒有用的東西,以至於那段時間有公司竟然出品過不支持紋理貼圖的顯卡(沒有 TMU 的顯卡,你能想像的出來嗎?公司的名字我忘了)!不過紋理貼圖還是顯示出了它強大的魅力。現在的 3D 圖形技術裏,紋理貼圖也算是單獨的一門學問了。

有人會問,紋理貼圖怎麼貼到三角形上去的?這個過程的解釋比較複雜,你可以試著想像:紋理貼圖需要座標來指定,就像你在剛剛做好的桌子上畫上定點,讓貼紙對齊定點貼上去一樣。也就是說,每個三角形的頂點都包含有貼圖座標,這樣處理的時候就能按照貼圖座標把紋理貼圖貼在對應的位置。怎麼貼?!我還沒有講?哦,對啊,呵呵,怎麼貼呢?是這樣的:在三角形設定的階段,貼圖座標也被應用到了每一個圖元上。具體的說,知道了頂點的貼圖座標,那麼三角形內任一一個點的貼圖座標也應該能計算出來吧?!對了,是插值。利用插值,我們可以得出要畫的三角形所在圖元的每一個點所對應的貼圖座標,不是嗎?有了這個貼圖座標,就簡單多了。我們利用座標,到貼圖裏去取對應座標顏色來,不就把圖貼上來了嗎?呵呵,這段有點繞,也怪我的文字表達能力欠佳,大家仔細多看幾遍吧,不好意思啊!

還有,伴隨著紋理貼圖而來的顏色混合,也應該歸到這一節。顏色混合…. 我知道!不就是用圖元的 Alpha 值來把兩個圖元運算混合成為一個圖元嗎?對了!不過顏色的混合不是僅限於 Alpha 混合。還有很多種混合方式。比如把三角形圖元的顏色螢幕上原有圖元的顏色加起來,這樣看起來,三角形所在的地方像是被加亮了一樣。遊戲中的火焰啦,光環啦,等等,就是用了加法來完成的。同樣,把兩個圖元的顏色相減、相乘相除也未嘗不可,這一切就是顏色混合。正因為有了顏色混合,各種酷炫的遊戲特效才能實現。

3.3:
顯卡的革命

上面所說的功能,人們早就把它們做到一些顯卡晶片裏了。這樣一來,這些所有的工作,都被從 CPU 裏解放了出來。好啊!可是 CPU 還是不知足:I want more freedom! 人們想盡方法把 CPU 的負擔減輕。所以,最後,就連三角形設定,三角形光柵化過程之前的潘朵拉盒,也被解放了出來。這就是:幾何變換光照運算(Transform & Lighting, T&L)

說到這裏,就不得不講一下這兩個純數學的過程。幾何變換:大家都知道,我們在螢幕上看到的 3D 圖形,是以某一個視點為觀察點繪製的。這是怎麼完成的?還有,3D 物體如何在整個場景裏移動?這就牽扯到了圖形處理之前的話題:3D 空間幾何。每一個 3D 物體都有一個說明其位置,方向的資料陣列,我們把它叫做矩陣(Matrix)。這個矩陣儲存了物體在場景裏的位置,旋轉方向,縮放大小等等的資訊。所以在物體移動的時候,我們不細要更改所有三角形的位置,僅僅修改矩陣裏的資訊,整個物體就一動了。而矩陣的應用不僅如此。最後要把整個場景變換成一攝像機(Camera)為中心的 3D 空間,這個過程也和矩陣有關。

光照,另一個數學過程,就是用來通過三角形的頂點相對于場景中光源的位置,距離,夾角等等來計算這個三角形接受到光照的強度的過程。

以前,這兩個純數學的過程,需要 CPU 來完成。CPU 計算完所有的三角形資料後,把這些資料發送給顯卡進行設定光柵化的過程。可是後來,人們發現,這些運算是如此的死板,以至於可以把它也集成到顯示晶片裏來做!這就是硬體幾何變換的由來。

所以,到此,CPU 需要做的已經沒有什麼了。修改一下物體的矩陣,設置好需要的參數,然後給顯示晶片發送命令:畫吧!剩下的全不用操心……

3.4:
CPU 的誕生:GPU

那麼到此顯示晶片就可以稱作 Graphics Processing Unit 了嗎?nVidia 是這麼說的,可是作為一個真正的處理器,沒有可編程性的話,也是殘缺的。在用膩了顯卡設好的層層套套之後,程式師們大聲疾呼:還我自由!他們迫切需要一種打破現在硬體死板功能的設計。因為一切都由硬體完成了,所以靈活性完全喪失了。顯示晶片只能按照電路設計來處理三角形,成了一個呆板的三角形處理機。這個時候人們開始反省了,人們覺得給程式師最大的自由度讓他們發揮才是寫好的 3D 程式的關鍵。所以可編程圖形晶片被設計了出來。這種晶片和以前的 T&L 晶片的最大不同之處在於:它的所有行為都是可以被編成的。使得它的功能被提升到了無限的高度。

反過來想想,當時沒有硬體 3D 加速的時候,一切都是 CPU 完成的,雖然慢,但是很靈活。然後,全部硬體化了,靈活性也一降再降。到最後,可編程圖形晶片把速度和靈活性一起實現了。這時程式師所做的事,似乎回到了原始時代:自己寫程式對三角形做光照,辦換,和光柵化。不過這又怎樣呢?他們喜歡自由!

一切都很好,我們很高興的說:這才是我想要的。很滿足不是嗎?可是事實並不像你想像的那樣完美,上帝愛捉弄人……..

3.5:
真理?謬論?

發展了這麼多年,光柵化的 3D 圖形可以說是技術很成熟了。不過它所生成的圖形,好像永遠都不那麼真實。即使人們盡再大的努力,它的畫面始終還是動畫,和人們心目中的電影級別的畫質總是差那麼一點……

究竟哪里錯了?與此同時,3D 圖形學的另一門分支:光線追蹤圖形學(Ray-Tracing) 也在快速的發展著。光線追蹤圖形學光柵化圖形學是建立在完全不同的理論基礎上的,它們的研究成果也是格格不入。而光線追蹤圖形學的理論基礎是以眼睛為出發點,追蹤每一條光線,精確的計算這些光線經過反射、折射和散射等等隨後的顏色。這門學問由於原理及其複雜,所以研究的人力物力都比光柵化圖形學要少,以至於到現在它的優勢剛剛慢慢顯現出來。而它真正的投入到民用、即時處理的階段,恐怕還要十年左右的發展。而如果它成功了,現在一切的光柵化圖形學理論,就會被全部推翻。

究竟誰會得到最後的殊榮?我們拭目以待….

後記:寫完這篇,我才驚奇的發現,原來人類的每一方面的發展史,都是那麼的神奇,充滿神話與機遇。作為一個圖形學的研究者,我在看到了未來的喜悅的同時,也對人類的進步發出了深深的感慨….
回覆時引用此文章
  #3  
舊 2005-06-04, 10:15 PM
vxr 的頭像
vxr vxr 目前是離線
星の魂
 
註冊日期: 2005-02-08
文章: 723
給予: 0 | 感謝 6 | 共 4 篇
積分: 4588 | 給分能力: 27
圖形加速卡技術論壇:3.進階篇--顯卡的職責

圖形加速卡技術論壇:進階篇 ---- 顯卡的職責

回顧:原理篇裏,我簡要的講了一下圖形加速是什麼,顯卡是怎麼給圖形處理加速的,以及長長的 3D 加速發展史。其中 3D 加速的 5 個階段都是里程碑式的,希望每個圖形愛好者都能瞭解一下。另外,網友們在後面提到了輻射度”(Radiosity) 渲染的概念,這個概念也是 3D 圖形學裏的另外一個分支。它的原理與 Ray-Tracing 又有很大的不同之處。這樣最後的技術競爭將會更加的激烈

正題:進階篇---- 顯卡的職責

如果要從頭開始講光柵化圖形學的一切,不僅我寫不完,也不可能寫完。因為我的知識也是有限的,我只能把我認為現階段主流,有用的知識寫出來。學習呢,要抱著開放的心態,即使明天你所學的知識被判死刑,也不要覺得自己沒有用了,因為學習的過程中所得到的經驗,將使你更快的學到新的知識。今天,我們來講 3D 加速卡的圖形處理過程。

在前面的原理篇中,大家也應該知道 3D 圖形處理需要經過的 4 個階段了吧,快想!看你能不能在我之前把它們說出來 …… 對了,它們是:

一、幾何變換(Transform)

大家知道,3D 物體是由三角形組成的。每個三角形呢,有三個頂點。而只要把這三個頂點的位置移動了,那麼這個三角形也就自然跟著移動了(%$%$$#&%$#)。所以,幾何變換所對應的處理物件就是頂點(Vertex)。大家想一想,一個物體在 3D 空間能做哪些動作呢?最基本的應該有:平移,旋轉,縮放,扭曲,投影等等具體的過程以及運算呢,我想學過大學的線性代數的朋友應該很清楚,我不想在這篇裏談的太深,所以,大家只需要把幾何變換看成一個黑盒子,左面輸入未經處理的頂點,右邊輸出處理好的頂點。具體的過程,大家可以在網上查找一下矩陣(Matrix) 的操作。

矩陣具有特殊的性質,它可以把通過相乘把所有的變換組合成一個單一的矩陣。也就是說,比如 T1 是平移,T2 是旋轉,T3 是縮放,那麼 T’ = T3 * T2 * T1。這樣,T’ 就是把一個物體先平移,然後旋轉,最後縮放的矩陣。這個特性非常的重要,它為電腦圖形處理節省了大量的工作。

在幾何變換之後,還有一個工作要做,那就是裁剪。簡單的說,裁剪就是把物體落在螢幕外面的部分去掉,這樣就不需要處理看不到的東西,從而節省了處理量。

二、光照(Lighting)

說起光照,這裏就必須提一下頂點的另外一個元素:法線。法線就是垂直於平面的一條線。當頂點要被光照處理的時候,頂點的法線參與了很重要的過程。有人會問:要法線幹什麼?既然法線是簡單的面的垂線,那麼我們根據面來計算不就可以了麽?答案是:這樣做太慢了,而且一個頂點在很多時候會被很多不同的三角形所共用,這樣處理的過程就會更加複雜。所以每個 3D 模型,都應該有預先計算好的法線。到這裏,我們認識到了頂點所擁有的 3 個特性:位置,法線貼圖座標。什麼?不知道貼圖座標是什麼?回去溫習我的第二篇文章!呵呵

光照的數學模型可謂變換萬千。在利用了新的 GPU 的可編程處理特性之後,人們盡可以寫出無窮的光照效果。這裏我將舉最最簡單的一個光照模型為例子。要是大家覺得不夠,可以到網上搜索以下“3D圖形學光照,我保證你能被光照知識喂飽。首先,我們要得到光源的方向。假設場景裏有一個太陽,那麼它的方向為 L。頂點呢,有法線 N。我們要得到光照的強度,只需要做點乘:C = L • N。這麼簡單?!就是這麼簡單。點乘的結果就是光照的強度。試試看……可是當你試過之後,你會發現,當法線面向光的方向的時候,計算的結果卻是負的看來一定出錯了。是這樣的,應為我們要根據法線和光線的夾角來近似計算光照的強度,所以光的方向要被反一下,這樣的點乘,得到的才是夾角的關係。所以,我們來改正它:C = -L • N,而且當運算結果為負的時候,表明方向背向光源,這個時候,用全黑來表示吧!好了,最簡單的方向光模型已經誕生了!恭喜恭喜呵呵

以上兩個過程(幾何變換和光照啦!) 在第一、二代的顯卡裏,是由 CPU 來完成的,在第三代的顯卡裏呢,則是由固定的硬體完成的,我們稱之為 Hardware T&L 顯卡。而在第四代的顯卡裏,就是由可編程的幾何流水線來完成了。也就是現在流行的 Vertex Shader 單元。

三、設定(Setup)

這個過程比較簡單,而且很死板。所以即使最新的 GPU 也不把這個功能開放給程式師,而是固定的完成的。就是,給了三角形的三個頂點,我是說經過幾何變換,裁剪和光照的三個點,把它們落在螢幕上的位置給找出來,當找到位置時候,就可以進行下一步 ---- 填充這個三角形了。這下一個過程,就是傳說中的 Pixel Shader 的重頭戲:

四、光柵化(Rasterize)

找到了三角形在螢幕上的位置,也就是圖元群,我們就可以開始把它畫出來了。基本的工作有三個:一個就是按照貼圖座標(Again…) 去紋理貼圖裏讀到顏色資料(Texture Reading)。第二個是把讀到的資料和前面算好的光照強度進行一系列的運算,得到這個圖元的顏色(Texture Blending)。而第三個,就是把它和螢幕上當前圖元的顏色進行一定的處理,然後畫到這個圖元上(Alpha Blending)

在以往的顯卡裏,這三個過程是固定而順序進行的,也就是說,顯卡先用前面的週期讀取紋理貼圖資料,在以預先設定好的方法之一進行貼圖的混合,最後同樣用預先設定好的方法把新的顏色和螢幕當前圖元的顏色混合起來,最後寫到螢幕上。而按照這種方法,給顯卡的圖元渲染管線配備一個以上的貼圖單元,就可以成倍的提高第一個過程的速度。比如著名的 GeForce 4 Ti 系列顯卡,它的每條圖元渲染管線配備了兩個貼圖單元,這樣,當三角形要用到兩層貼圖的話,GeForce 4 Ti 在一個週期內就可以把兩張紋理貼圖的資料都讀取到,而相反 Radeon 9000 系列顯卡因為只有一個貼圖單元,所以要花兩個時鐘週期才能讀到兩層紋理貼圖資料。事實也是這樣的,GeForce 4 Ti 系列顯卡在運行現有的多貼圖的遊戲時,速度非常的快。

而自從 GPU 誕生以來,可編程的流水線的靈活性就被完美的顯現了出來。用來處理圖元的單元,在 DirectX 裏叫做 Pixel Shader 單元。但是為了兼顧以前的顯卡架構,Pixel Shader 的第一個版本 1.x 在制定的時候,需要 Shader 代碼還是按照傳統的流程執行,也就是貼圖讀取在先,貼圖混合在後,最後顏色混合。這樣靈活度還是很低的。在 Pixel Shader 第二個版本,也就是 2.0 的制定過程中,人們意識到了靈活的重要性,所以第二版本的 Shader 將可以把貼圖讀取和顏色混合過程混起來執行。其中的一個例子就是:環境反射貼圖。它的計算過程是這樣的:從第一張貼圖裏讀取頂點法線的偏移量,對當前的法線進行偏移,然後用偏移後的法線來讀取第二張貼圖。大家都能看出來,在兩次貼圖讀取之間,有運算的過程。這樣用 Pixel Shader 2.0 寫起來很方面,可是 Pixel Shader 1.1 就是很困難的事情了,即使能實現,整個過程也顯得很不透明。

在上面的情況下,流水線的第二個貼圖單元會被浪費,因為讀取這兩張貼圖,同樣花了兩個週期,第二個貼圖單元沒能起到加速處理的功能。在這個前提下,例如Radeon 9700 的設計就體現出了靈活的方式,它只用一個貼圖單元,卻有兩倍於上代顯卡的圖元處理流水線,能在保持性能的前提下,儘量減少不必要的電晶體浪費。

好了,四個過程就到這裏了,我們來總結一下:

頂點進入顯卡的處理管道(Pipeline) => 幾何變換(Transform) => 光照(Light) => (裁剪(Clipping) =>) 設定(Setup) => 光柵化(Rasterize) => 螢幕上的圖元

怎麼樣,是不是直觀明瞭?大體地說光柵化圖形的處理方法就是這樣的。其實每一步又都有很多詳細的內容,我將在後面的章節裏慢慢的講嘍


此文章於 2005-06-04 10:52 PM 被 vxr 編輯.
回覆時引用此文章
  #4  
舊 2005-06-04, 10:18 PM
vxr 的頭像
vxr vxr 目前是離線
星の魂
 
註冊日期: 2005-02-08
文章: 723
給予: 0 | 感謝 6 | 共 4 篇
積分: 4588 | 給分能力: 27
圖形加速卡技術論壇:4.拓展知識顯卡的介面和功能


圖形加速卡技術論壇:4.拓展知識顯卡的介面和功能

回顧:顯卡的職責裏,我重點的給大家介紹了一下顯卡作為 3D 加速卡時的工作流程,與每個流程的大概功能。我們再來回顧一下有哪四個過程:幾何變換,光照,設定光柵化。對了,在幾何變換後面,還附加有裁剪。這就是光柵圖形的基本生成步驟了。可是呢,顯卡也不光是為了玩遊戲的,否則就該叫遊戲卡了。好,讓我們來看

還有,感謝網友們的支持和厚愛,正是有你們的支援,我才有信心一直寫下來,希望大家都能學到有用的知識

正題:拓展知識 ---- 顯卡的介面和功能

其實除了 3D 處理,顯卡還有很多的功能,尤其是具有視頻相關的一些功能。不過,這些功能有些是做為擴展功能被製造商附加在顯卡上的,所以我下面說的,並不是每個人的顯卡都有這些功能哦!我們先來看最簡單的:

一、VGA 輸出介面

呵呵,你一定在笑我吧,VGA 介面,這個也說?我想所有用電腦的朋友都知道 VGA 這個縮寫吧,可是既然要介紹顯卡,當然要全面一點嘍。VGA 介面是很早以前就制定出來的介面規範了,最早的 VGA 標準解析度為 640x480, 16 色。VGA 的輸出信號呢,是類比信號,也就是說它通過輸出不同的電壓強度來達到表示不同色彩的目的,R,G,B 分別用 3 條信號線來傳輸。

大家都應該知道 CRT(陰極射線管) 顯示器是怎樣工作的吧,通過電子槍從左到右,從上到下的掃描,一幅圖像就呈現在了顯示器上。關於顯示器的詳細原理呢,由於不涉及到顯卡的範疇,我就不詳談了,具體的資料也有很多。我介紹 CRT 的主要目的,是因為 VGA 介面的信號本身就是為 CRT 顯示器量身制定的(Oh, 我的 LCD 怎麼會是 VGA 介面…. faint)。顯示器不斷的掃描,而電子槍的電壓強度也要隨之而變化,這個變化的信號就是顯卡的 VGA 介面提供的。

這裏我要提醒大家,既然是類比信號,那麼必然存在信號衰減的問題。所以這時候類比信號的傳輸品質,就和顯卡的類比輸出電路,VGA 介面線纜,以及顯示器內的電路設計息息相關了。好,讓我們來看看 VGA 介面部分有什麼東東:

1.1
類比輸出電路

類比輸出電路,主要有 RAMDAC 低通濾波電路(Low-Pass Filter) 組成。RAMDAC 的全稱是:RAM Digital/Analog Converter。也就是記憶體數位/類比轉換器。它的職責是把顯卡記憶體(也就是顯存啦!)裏儲存的螢幕資料 (也被稱作幀緩存 Framebuffer) 轉換成高低變化的電信號,然後輸出給顯示器用的。要顯示圖像,顯卡輸出信號的速度和顯示器接受信號的速度必須是完全一致的,也就是要做到同步。這麼一來,RAMDAC 也要搭載一定的頻率來給顯示器提供類比信號了。以前的顯卡,RAMDAC 都是獨立的晶片,所以我們拿一張老的顯卡,可以看到卡上有一個(或多個) 晶片,上面赫赫寫著 RAMDAC 的,就是這個了。而新型的顯卡,它們的圖形核心都有很高的集成度,所以 RAMDAC 也被集成到了圖形核心裏了。

低通濾波電路的作用,我想看名字大家也能猜得差不多,就是濾掉高頻雜訊,讓低頻信號通過其實這個低通濾波電路也不簡單呢!凡是類比信號電路,都存在一個信號保真度的問題。濾波電路也一樣,存在一個信號截止頻率範圍的設定。也就是說,類比信號不可能從一個頻率一刀切下,總會存在還原度不佳的可能,所以在低通濾波電路的設計上,較好的顯卡往往採用 4 層,甚至 5 層電路來逼近,也就是儘量做到能把高/低頻信號分割的乾淨,這對於類比信號輸出品質的提高很有幫助。比如 Matrox Parhelia-512 的類比輸出部分就採用了 5 層低通濾波電路來保證信號的純淨。

1.2 EMI
電磁遮罩電路

拿起一張顯卡,大家都能看到,在藍色的 VGA 介面後面,有著密密麻麻的元件位置,可是你仔細看的話,可以發現有好多的元件位都是空著的。這是怎麼回事呢?其實在 VGA 的輸出端前面的很多元件,是為了降低顯卡輸出信號的電磁輻射而設計的。這個電路的元件的使用尤其挑剔,如果元件不好的話將嚴重的降低信號的品質。所以只有很少數的高檔顯卡真正的使用了這部分的設計。而其他的顯卡,在電磁輻射量允許的情況下,會省略這部分的電路,所以有很多的顯卡 VGA 埠處都空很多元件,那些就是給 EMI 電磁遮罩電路預留的位置(預留?它會回來嗎?呵呵)…

二、TV 輸出功能 (TV-OUT)

這個是現在民用級顯卡上很常用的功能,很多中/高檔的顯卡已經把它當作標準配置了。TV-OUT 的功能當然就是輸出顯示信號到電視咯,而 TV-OUT的介面一般有兩種,即 TV 上常用的同軸信號埠 S-Video 信號埠,而信號的格式,也有 NTSC PAL 兩種國際標準。為了支援 TV-OUT 功能,顯卡上也必然要有負責處理這部分信號轉換的電路。同樣的,以前的顯卡會有外置的 TV-OUT 晶片,而新型的圖形處理核心也把它集成到了裏面 ( 哇噻,好厲害!什麼都能集成?)

TV-OUT
功能對於民用級的顯卡來說,是非常實用的,因為它可以把電腦的螢幕輸出到電視上,從而讓播放視頻,玩遊戲的功能可以在大螢幕電視的幫助下變得更有趣。

三、VIVO:我們是視頻採集卡

很多朋友都問:VIVO 是什麼?顧名思義,VIVO – Video In Video Out,即視頻輸入輸出。相對於 TV-OUT 來說,VIVO 最大的不同就在於它的視頻輸入上。這種顯卡可以通過同軸信號介面 S-Video 介面把 NTSC/PAL 圖像信號接收進來,也就是說,它可以完成視頻信號的採集功能。大家都知道,把顯存裏的數位信號輸出到類比信號介面,需要 DAC(數位/類比轉換器)的幫助,而 NTSC/PAL 信號也屬於類比信號,那麼採集它們的時候,就要進行互逆的過程了:ADC(Analog/Digital Converter 類比/數位轉換器)VIVO 功能一般都通過外置的晶片來支援,因為需要 ADC 的過程。而一些最新的圖形核心,把 VIVO 功能也集成到了裏面(…) GeForce FX 5900 系列。

擁有 VIVO 功能的顯卡數量就沒有只擁有 TV-OUT 功能的顯卡那麼多了。有少數的廠商才給某些型號的顯卡配備 VIVO 功能。這樣的功能對於需要錄製影片節目,或擁有攝像機的朋友來說,比較實用。因為它可以把影片或攝像機的信號輸入電腦,保存在硬碟上。可是要想通過顯卡看電視,VIVO 功能是不行的。因為它缺少了接受電視信號所特有的部分:高頻頭。

四、TV 接收功能

擁有TV 接收功能的顯卡,屬於真正的多功能複合卡。它的種類就更加少了。如果大家見過 TV (就是單純用來接收電視信號的擴展卡) 的話,一定見過它上面那個用金屬包著的,大大的,方方的,怪怪的盒子。這個就是高頻頭。高頻頭所起的作用就是把從空中,或有線電視網路接受到的調製好的電視高頻信號,轉換成可供採集的視頻信號。正因為是高頻信號,所以很容易受到干擾。所以優質的高頻頭用料,做工都非常的棒,而價格也很昂貴。我們最常見的帶 TV 接收功能的顯卡有 ATI AllInWonder 系列顯卡等等。

有了 TV 接收功能,你的電腦就變成電視機了呵呵。很多 TV 接收卡還附贈了遙控器,以使你的電腦看起來更像個電視(1萬多元買個小電視……)。最重要的是,你不僅能看電視,還可以把好看的節目錄下來,以後慢慢回味,或留作紀念。

五、數位時代的開始:DVI

顯卡上配 DVI 介面,大概在近兩年裏才開始興起。DVI 的全稱是 Digital Visual Interface。即:數位視頻介面。相比 VGA 介面的類比信號,DVI 輸出的則是數位信號。這樣,顯示信號將 100% 的被完好的傳輸到顯示器裏。DVI 所對應的是數位顯示設備,即 LCD 液晶顯示器,Plasma 等離子顯示器等等的顯示裝置。原因是液晶顯示器和等離子顯示器的顯示原理都是基於數位信號的,這樣當接受到 DVI 所輸出的數位信號後,就可以方便的直接將它顯示出來了。

關於 DVI 的詳細資訊,我給大家一個網址,這是 DVI 的制定組織 DDWG 的網站,大家可以到這裏找自己想要得資訊:http://www.ddwg.org/
這裏我想解釋兩個大家常見的問題:

5.1 DVI
VGA 的接頭是怎麼回事?

其實 DVI 介面在制定的時候,保留了類比信號輸出的通道。DVI 一共有兩種介面:DVI-D (Digital only) DVI-I(Integerated)DVI-D 的信號就是單純的數位信號,而 DVI-I 則是保留類比信號通道的 DVI 介面,大家可以找一個 DVI 介面的顯卡來看 (怎麼不貼圖?哦,你自己找找看實物,印象比較深嘛!),它的左邊有一個十字形的介面,這個呢,就是類比信號的通道,而右邊則是三排規則的介面,這個就是數位信號通道啦!

所以,可以利用 DVI-I 的類比信號通道,來輸出類比信號。到這裏,大家就別再問 DVI 能轉 VGAVGA 怎麼就不能轉 DVI 的傻傻問題了哦呵呵

5.2
液晶顯示器的 VGA 介面又怎麼解釋?

這個問題,是不太好解釋(#%@#%#@%#@)。按道理說,LCD 液晶顯示器都應該配備 DVI 介面來接受純淨的數位信號,這樣現實效果會好很多。VGA 信號輸入到液晶顯示器後,還要進行 ADC 的轉換,才能被顯示出來。這樣看:如果用 DVI 介面來接液晶顯示器的話,路徑是這樣的:

顯存的數位信號 => 編碼 => DVI => 顯示器 => 解碼 => 顯示

其中的編碼解碼過程,是 DVI 標準所制定的,不過因為是純數位無損編碼,所以沒有任何損失的

而用 VGA 介面,則變成了這樣:

顯存的數位信號 => DAC => VGA 傳輸(損耗) => 顯示器 => ADC => 顯示….

大家都能看出來後面的做法是多麼的可笑啊!從數位到類比,然後把類比信號傳輸過去,加上損耗和干擾,再還原成數位信號……可是為什麼家用級的顯示其都只有 VGA 介面呢?我想可能是出於相容性的考慮。由於現階段 VGA 介面的顯卡占絕大多數,所以商家怕出現買到顯示器插不上的尷尬情況,決定用 VGA 介面。另一方面的原因,則是商業原因。DVI 作為後來才發展起來的介面技術,雖然對於數位顯示有著先天的優勢,而且成本並不高昂,可是廠商出於利益考慮,就只能通過這種手段來提高 DVI 製品的收入了。一旦數位顯示技術普及,DVI 介面一定會受到更廣泛的應用。

六、3D 立體眼鏡

好玩吧,3D 立體眼鏡。我想絕大多數人都沒有體驗過戴上它玩 3D 遊戲是什麼感覺。

其實它的原理是這樣的:人的眼睛判斷物體的遠近,其實是由物體在兩個眼睛裏成像的細微差別來判斷的。你可以做一個試驗,伸出雙手,兩手各握一支筆,一上一下的順著視線對成一條直線。用兩隻眼睛的話,你一定可以輕而易舉的把兩隻筆對成一條豎線(做不到?%#$%$#%快去找眼科醫生檢查…)。好了,現在閉上一隻眼,再試著把它們對成一條直線是不是很困難了呵呵。就是這樣,要看到真正的立體物體,兩眼的圖像是不同的。

3D
立體眼鏡的原理,就是通過讓左/眼看到不同的圖像,來讓大腦認為你看到的東西是立體的。怎麼能看到不同的圖像?!是這樣的:當 3D 立體眼鏡被啟動的時候,遊戲的 3D 場景渲染過程會發生一些變化。這時候顯示器將以換頁交替的方式,輪流的顯示出左/右眼的畫面(怎麼做的?就是移動遊戲裏攝像機的位置啊!)。而此時,3D 眼鏡便偷偷的輪流擋住你的右眼和左眼(通過液晶片的變色),這樣顯示器顯示左眼畫面的時候,你用左眼看;顯示器顯示右眼畫面的時候,你用右眼看你看到立體畫面了!呵呵基本的原理就是這樣的。

這篇寫了這麼多有關顯卡功能的東西,有的地方可能比較難理解,不好意思咯大家慢慢的看,一定能看懂的!呵呵我們總結了顯卡的六大功能/介面:VGA, TV-OUT, VIVO, TV-IN, DVI, 3D Glasses。其他一些奇異的功能,我就不說了,我們只講潮流嘛呵呵

回覆時引用此文章
  #5  
舊 2005-06-04, 10:22 PM
vxr 的頭像
vxr vxr 目前是離線
星の魂
 
註冊日期: 2005-02-08
文章: 723
給予: 0 | 感謝 6 | 共 4 篇
積分: 4588 | 給分能力: 27
圖形加速卡技術論壇:5.解惑篇--遊戲的東西,專業的東西

回顧:顯卡的介面和功能篇中,我給大家大概的介紹了一下顯卡擁有的各種介面,以及這些介面的基本原理和功能。其中 VGA DVI 是使用最廣泛的介面,我也做了相對較詳細的介紹。讀完前四章,大家應該對顯卡的功能有了一定的瞭解了吧。可是我看到有很多朋友對於 3D 加速卡除了遊戲的另外一個領域非常的陌生,所以,今天我來介紹:

正題:解惑篇--遊戲的東西,專業的東西

說起專業繪圖卡,大家有什麼感覺呢?是不是哇,好神聖!買不起!和我沒關係!...”的敬而遠之的態度呢?呵呵,其實 3D 加速卡最初是在專業領域發展起來的。我們現在用到的遊戲卡,只不過是一種軍轉民的產品罷了。所以,在瞭解到 3D 遊戲卡的同時呢,我們大家也因該對它的前身專業 3D 繪圖卡有所瞭解。好了,讓我們來看專業繪圖卡的職責。

大家來想像一下,如果遊戲中所有的三角形,都不去填充,而只用直線把它們的三個邊畫出來你會看到什麼??哇,亂死了!是亂七八糟的一堆呵呵,這就是 3D 繪圖人員每天所面對的東西。

一、線筐的世界

在專業領域,圖形設計者往往要求不單看到物體的表面顏色和材質,更要求看到物體內部的結構和精確的形狀輪廓。這樣呢,花裏胡哨的紋理貼圖和材質不僅不能起到應有的作用