從點到面、從黑白到彩色,一步步繪出奇幻世界的顯示卡

從點到面、從黑白到彩色,一步步繪出奇幻世界的顯示卡

每當要購買新電腦時,商家大多會詢問是否有遊玩遊戲的需求。如果答案為是,商家便會在銷售時,特別強調該款電腦採用哪一張獨立顯示卡,可以完美的遊玩該年 度的遊戲大作。此外,Apple 在 3 月 21 日的發表會中,發表了 iPhone SE。在會中,便強調 A9 晶片的 GPU 效能和 iPhone 5s 相比,提升了 3 倍,為使用者帶來更佳的遊戲體驗。究竟是什麼因素,讓電腦商總是將顯示卡和遊戲拉上等號?

顯示卡,正式名稱為圖形處理器(Graphics Processing Unit),常以 GPU 做簡稱。GPU 主要是負責繪製影像以及影像輸出,像是繪出遊戲的畫面以及將 3D 製圖的畫面輸出至螢幕上。因此,對於遊戲玩家或是做電腦繪圖、動畫的人而言,顯示卡扮演著至關重要的角色。

 

逐年增加的畫面品質要求,將 GPU 推上舞台

在第一台個人電腦發表時,因為電腦主要是給工程師使用而且電腦遊戲才剛起步,對圖形的需求僅為基本的文字顯示和點線間的相連,因此畫面處理的功能大多是隸屬於 CPU 下的一項功能。也因為尚未注意到圖形處理的重要性,所以還沒有圖形處理器這個名詞。

後 來,在 Apple 發表具有視窗介面 Macintosh 後,各類採用圖形介面的應用程式開始發展,CPU 開始無法負荷與日漸增的圖形處理需求。此外,隨著圖形介面開發工具的成熟,電腦遊戲的畫面變得越來越細緻。龐大的顯示負擔,一舉讓顯示加速卡躍上舞台,取 代 CPU 的圖形工作。

直到 1999 年,Nvidia 發表了 Geforce 256,將顯示加速卡重新命名為 GPU。從此,顯示卡取得一個專業的名稱,並成了和 CPU 一樣重要的電腦元件。然而,繪製影像究竟有哪些事情要處理,而會造成 CPU 龐大的負擔?

 

圖形處理,化虛擬為真實

電腦的圖形處理,可以大致分成 5 個步驟,如下圖箭頭的部分。分別為 vertex shader、primitive processing、rasterisation、fragment shader、testing and blending。

從點到面、從黑白到彩色,一步步繪出奇幻世界的顯示卡

▲ 三維座標繪圖並產生螢幕輸出的圖形。(Source:enlightenment.org

第一步,vertex shader。是將三維空間中數個(x,y,z)頂點放進 GPU 中。在這一步驟中,電腦會在內部模擬出一個三維空間,並將這些頂點放置在這一空間內部。接著,投影在同一平面上,也是我們將看到的畫面。同時,存下各點距 離投影面的垂直距離,以便做後續的處理。

這個過程就像是在地球觀看星星一般。地球的天空,就像是一個投影面,所有的星星,不管遠近皆投影在同一面上。在地球的我們,抬起頭來觀看星星,分不出星星的遠近,只能分辨出亮度。GPU 所投影出的結果,和這個情況類似。

從點到面、從黑白到彩色,一步步繪出奇幻世界的顯示卡

▲ 從地球所看到的星空,星星就像是投影到一球面上,除非使用特別的儀器,不然分不出星星和地球的距離。(Source:By Tauʻolunga (Own work) [GFDL, CC-BY-SA-3.0 or CC BY-SA 2.5-2.0-1.0], via Wikimedia Commons

第二步,primitive processing。是將相關的點連結在一起,以形成圖形。在一開始輸入數個頂點進入 GPU 時,程式會特別註記哪些點是需要組合在一起,以形成一線或面。就像是看星座的時候一樣,將相關連的星星連起來,形成特定的圖案。

第三步,rasterisation。因為電腦的螢幕是由一個又一個的像素組成,因此,需要將一條連續的直線,使用繪圖的演算法,以方格繪出該直線。圖形也是以此方式,先標出邊線,再用方格填滿整個平面。

第四步,fragment shader。將格點化後的圖形著上顏色。所需著上的顏色也是於輸入時便被註記。在遊玩遊戲時,這一步相當耗費 GPU 的計算資源,因為光影的效果、物體表面材質皆是在這一步進行,這些計算決定著遊戲畫面的精細程度。因此在遊玩遊戲時,調高遊戲畫面品質大幅增加這一步的計 算負擔,降低遊戲品質。

從點到面、從黑白到彩色,一步步繪出奇幻世界的顯示卡

▲ 將一個三角形,用方格呈現近似原始圖案,並著上顏色。一塊又一塊的方格,就是顯示器上的像素。(Source:enlightenment.org

最後一步,testing and blending。便是將第一步所獲得的投影垂直距離取出,和第四步的結果一同做最後處理。在去除被會被其他較近距離的物體擋住的物體後,讓剩下的圖形放進 GPU 的輸出記憶體。之後,結果便會被送到電腦螢幕顯示。

 

顯卡效能,決定遊戲畫面的解析度及品質

至此,我們了解要將遊戲畫面輸出到螢幕上需要經過相當多的步驟。一步又一步的繁複計算流程,讓 CPU 吃不消。此外,現行螢幕解析度有不斷提升的趨勢,此趨勢將大幅增加顯示卡的負擔,因為越高的解析度便代表有更多的點需要被計算,需要用更多時間才能完成上述的步驟。

另外,當我們調高遊戲的畫面品質,將大幅增加第四步的計算量,因為有更多的細節需要被加進遊戲的畫面裡。因此,才會有前兩代的頂級顯示卡,將等於現行高等顯示卡效能的說法。畢竟遊戲是能吃掉大量計算資源的怪物。

也因此,在 GTC 2016 上,GPU 大廠 Nvidia 的 CEO 黃仁勳便說到:

“We love games and we love graphics, games and graphics has really pushed the boundary of advanced computing for many years. For nearly 25 years, we’ve seen how quickly computer games has evolved and how hard to pushes technology”

總體而言,說遊戲是推動科技發展的其中一個推力也不為過呢!

 

從點到面、從黑白到彩色,一步步繪出奇幻世界的顯示卡

TechNews科技新報
使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則