Tegra 2 GeForce處理內(nèi)核相關(guān)介紹
Tegra 2之所以強(qiáng)大除了采用兩顆頻率高達(dá)1Ghz的Cortex-A9處理器之外,另外一個(gè)非常重要的原因就是它在手持設(shè)備中引入了強(qiáng)大的Geforce處理器,借助于Geforce處理器的強(qiáng)大性能,可以為Tegra 2提升3D圖形性能以及加速網(wǎng)頁(yè)瀏覽等諸多功能。下面我們就來(lái)說(shuō)說(shuō)Tegra 2里面非常重要也非常強(qiáng)大的Geforce處理器。
八個(gè)核心構(gòu)成GeForce處理器
Tegra 2的GeForce內(nèi)核實(shí)現(xiàn)了功能強(qiáng)勁的管線頂點(diǎn)和像素處理架構(gòu),可通過(guò)各種特性降低功耗和提高圖形質(zhì)量,支持下一代移動(dòng) 3D 游戲、流暢的高清視頻播放、在線 Flash 游戲性能和高度響應(yīng)的移動(dòng) GPU 加速用戶界面,而不會(huì)影響 移動(dòng)電源 預(yù)算。
OpenGL ES 2.0 圖形處理管線
OpenGL ES 是一個(gè)標(biāo)準(zhǔn)的應(yīng)用程序編程接口 (API),開發(fā)人員可使用它為智能電話、平板設(shè)備和便攜式游戲設(shè)備等移動(dòng)設(shè)備編寫圖形應(yīng)用程序。OpenGL ES API是桌面OpenGL API 規(guī)范的一個(gè)子集,并且在圖形應(yīng)用程序和 GPU 硬件之間定義了一個(gè)靈活而強(qiáng)大的低級(jí)接口。最新的 OpenGL ES 2.x 規(guī)范針對(duì)完全可編程的 現(xiàn)代 GPU 管線,并將 API 的所有固定函數(shù)元素替換為可編程著色。大多數(shù)移動(dòng) GPU 架構(gòu)均采用OpenGL ES API 標(biāo)準(zhǔn),并且主要根據(jù)OpenGL ES API 的定義來(lái)實(shí)現(xiàn)邏輯處理管線。
OpenGL ES 2.0 邏輯圖形處理管線
為了顯示游戲或圖形應(yīng)用程序中定義的場(chǎng)景,應(yīng)用程序開發(fā)人員必須先使用3D建模軟件創(chuàng)建各種3D對(duì)象和角色模型。每個(gè)對(duì)象和角色都可以由數(shù)百、數(shù)千甚至數(shù)百萬(wàn)個(gè)相互連接的三角形網(wǎng)格構(gòu)成,具體取決于所需的幾何真實(shí)水平。
三維圖像上的三角網(wǎng)格
接下來(lái)3D游戲軟件或其他3D應(yīng)用程序可以使用這些模型,并將它們置于模擬的3D場(chǎng)景或“3D世界”中。3D世界通過(guò)XYZ坐標(biāo)系定義,并且3D對(duì)象或角色將放置在3D世界的特定位置上。對(duì)象中的每個(gè)三角形都由它的三個(gè)頂點(diǎn)定義,并且每個(gè)頂點(diǎn)都由代表其屬性的一組數(shù)值構(gòu)成,這些屬性包括在3D世界中的XYZ位置、顏色值 (RGB)、阿爾法透明度、紋理坐標(biāo)、法線等。隨后,定義對(duì)象特定部分的頂點(diǎn)集將分組到一個(gè)頂點(diǎn)緩沖區(qū)中,后者類似于原始頂點(diǎn)流。
3D軟件會(huì)向GPU驅(qū)動(dòng)程序發(fā)起一個(gè)OpenGL ES調(diào)用,指向共享系統(tǒng)內(nèi)存中的頂點(diǎn)緩沖區(qū)位置,從而允許 GPU 直接訪問和處理數(shù)據(jù)。OpenGL管線的原型處理階段發(fā)生在GPU中,并且會(huì)將傳入頂點(diǎn)數(shù)據(jù)轉(zhuǎn)換為可供GPU使用的格式和組織。隨后,頂點(diǎn)會(huì)傳遞至Vertex著色器;這時(shí),頂點(diǎn)著色器程序可以運(yùn)行各種矩陣轉(zhuǎn)換和光照計(jì)算,以便將頂點(diǎn)移至新的X、Y和Z位置,或者改變燈光值等屬性。
轉(zhuǎn)換后的頂點(diǎn)將被組裝為原型, 然后光柵化階段會(huì)將原型轉(zhuǎn)換為像素片段,為像素著色器階段做準(zhǔn)備,F(xiàn)在,像素片段處于2D屏幕空間格式。像素著色階段將運(yùn)行像素著色器程序來(lái)處理每一個(gè)像素,并且可能會(huì)應(yīng)用新的照明或顏色值、應(yīng)用紋理或者執(zhí)行各種其他操作來(lái)計(jì)算應(yīng)用于像素的最終顏色值。
在典型的OpenGL管線中,隨后會(huì)對(duì)各個(gè)像素運(yùn)行Z緩沖測(cè)試,以確定是否比幀緩沖區(qū)中的相同屏幕位置中的已有像素更加接近觀眾的眼睛。如果確定新像素更加接近觀眾,它會(huì)取代幀緩沖區(qū)中的已有像素值,但如果它在已有像素后面,則會(huì)被丟棄。(注意:幀緩沖區(qū)可能位于與CPU共享的系統(tǒng)內(nèi)存空間中,或者可能位于專用內(nèi)存中,比如大多數(shù)獨(dú)立 顯卡 所使用的內(nèi)存)。
如果可見像素的 Alpha 值指示它是部分透明的,那么它將與相同屏幕位置的幀緩沖區(qū)中的已有像素相混合。如果啟用了抗鋸齒,那么可以通過(guò)修改像素的顏色值來(lái)創(chuàng)建更加平滑的邊緣,以便在寫入幀緩沖區(qū)中之前減少鋸齒效果。