高強(qiáng)度圖形是當(dāng)代計(jì)算機(jī)系統(tǒng)的標(biāo)志。今天的計(jì)算機(jī),從智能手機(jī)到高端臺(tái)式機(jī),都使用各種復(fù)雜的視覺效果來增強(qiáng)用戶體驗(yàn)。此外,用戶還可以使用計(jì)算機(jī)玩圖形密集型游戲、觀看高清視頻,以及進(jìn)行計(jì)算機(jī)輔助工程設(shè)計(jì),所有這些應(yīng)用程序都需要大量的圖形處理。
在早期,計(jì)算機(jī)中的圖形支持非常初級(jí),程序員需要指定屏幕上繪制的每個(gè)形狀的坐標(biāo),例如要繪制一條線,程序員需要明確提供該線的坐標(biāo),并指定其顏色。顏色的范圍非常有限,而且?guī)缀鯖]有用于卸載圖形密集型任務(wù)的硬件。由于在屏幕上繪制的每一條線或圓都需要幾個(gè)匯編語句,因此創(chuàng)建和使用計(jì)算機(jī)圖形的過程非常緩慢。漸漸地,需要在硬件中對(duì)圖形進(jìn)行一些支持。
由于GPU和CPU是為兩種截然不同的應(yīng)用程序而設(shè)計(jì)和優(yōu)化的,因此它們的體系結(jié)構(gòu)存在顯著差異,可以通過比較兩種處理器技術(shù)專用于高速緩存、控制邏輯和處理邏輯的管芯面積(晶體管計(jì)數(shù))的相對(duì)數(shù)量來看出。
GPU是圖形處理單元的縮寫,它是一種專門用于處理圖形相關(guān)的計(jì)算的芯片。GPU可以在PC、工作站、游戲主機(jī)、手機(jī)、平板等多種智能終端設(shè)備上運(yùn)行。
GPU是由數(shù)百或數(shù)千個(gè)小型的處理單元組成,每個(gè)處理單元可以執(zhí)行簡(jiǎn)單的算術(shù)或幾何運(yùn)算。GPU的優(yōu)勢(shì)在于它可以同時(shí)處理大量的數(shù)據(jù),對(duì)于圖形渲染等需要高速浮點(diǎn)運(yùn)算的任務(wù),它的效率很高。GPU的缺點(diǎn)是它的功能相對(duì)單一,對(duì)于復(fù)雜的指令和邏輯運(yùn)算,它的能力不足。
GPU的主要作用是渲染圖像、視頻和動(dòng)畫,以提高視覺效果和性能。GPU也可以用于其他需要大量并行運(yùn)算的領(lǐng)域,如科學(xué)計(jì)算、密碼破解、機(jī)器學(xué)習(xí)、加密貨幣挖掘等。
GPU的設(shè)計(jì)目標(biāo)是處理大規(guī)模數(shù)據(jù)并行任務(wù)。它們通過讓每個(gè)處理單元執(zhí)行相同的指令,并對(duì)不同的數(shù)據(jù)進(jìn)行處理的方式來實(shí)現(xiàn)數(shù)據(jù)并行性。這種方式使GPU能夠同時(shí)處理多個(gè)數(shù)據(jù)元素,從而提高計(jì)算效率。
GPU的工作過程,它從CPU處獲得三維模型,這些模型是用頂點(diǎn)坐標(biāo)和色彩信息組成的,GPU對(duì)這些頂點(diǎn)的位置進(jìn)行一系列的變換,然后投影到幀緩存上。投影的同時(shí),GPU根據(jù)顯示器的大小和分辨率對(duì)投影結(jié)果進(jìn)行裁減,光柵化,每個(gè)幀緩存里的像素或者像素多邊形的色彩經(jīng)過GPU的一系列變換,最后的結(jié)果被GPU輸出到顯示器上。
GPU的工作過程可以分為以下幾個(gè)階段:
1、頂點(diǎn)生成
這階段GPU讀取描述3D圖形外觀的頂點(diǎn)數(shù)據(jù)并根據(jù)頂點(diǎn)數(shù)據(jù)確定3D圖形的形狀及位置關(guān)系,建立起3D圖形的骨架。在支持DX系列規(guī)格的GPU中,這些工作由硬件實(shí)現(xiàn)的頂點(diǎn)著色器(Vertex Shader)完成。
2、光柵化計(jì)算
顯示器實(shí)際顯示的圖像是由像素組成的,我們需要將上面生成的圖形上的點(diǎn)和線通過一定的算法轉(zhuǎn)換到相應(yīng)的像素點(diǎn)。把一個(gè)矢量圖形轉(zhuǎn)換為一系列像素點(diǎn)的過程就稱為光柵化。例如,一條數(shù)學(xué)表示的斜線段,最終被轉(zhuǎn)化成階梯狀的連續(xù)像素點(diǎn)。
3、紋理帖圖
頂點(diǎn)單元生成的多邊形只構(gòu)成了3D物體的輪廓,而紋理映射(Texture Mapping)工作完成對(duì)多邊形表面的帖圖,通俗的說,就是將多邊形的表面貼上相應(yīng)的圖片,從而生成“真實(shí)”的圖形。TMU(Texture Mapping Unit)即是用來完成此項(xiàng)工作。
4、像素處理
這階段(在對(duì)每個(gè)像素進(jìn)行光柵化處理期間)GPU完成對(duì)像素的計(jì)算和處理,從而確定每個(gè)像素的最終屬性。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實(shí)現(xiàn)的像素著色器(Pixel Shader)完成。
5、最終輸出
由ROP(光柵化引擎)最終完成像素的輸出,1幀渲染完畢后,被送到顯存幀緩沖區(qū)。