流處理單元
流處理單元
流處理單元是全新的全能渲染單元,由以前的頂點著色器和像素著色器結合而成的新一代顯卡核心架構,是繼Pixel Pipelines(像素管線)和Vertex Pipelines(頂點管線)之後新一代的顯卡渲染技術指標。
流處理單元既可以完成VS(Vertex Shader,頂點著色器)運算,也可以完成PS(Pixel Shader,像素著色器)運算,而且可以根據需要組成任意VS/PS比例,從而給開發者更廣闊的發揮空間。簡而言之,過去按照固定的比例組成的渲染管線/頂點單元渲染模式如今被流處理單元組成的任意比例渲染管線/頂點單元渲染模式替代。
流處理單元是組成渲染管線的一部分,一條完整的渲染管線包括流處理器和紋理貼圖處理器。這是DirectX 10引入的新概念統一渲染架構(DirectX 10在XP上還不能裝,但是一些軟體有這功能)。採用統一渲染架構能有效而充分的利用顯卡閑置資源,不再需要上一代顯卡依靠渲染管線執行命令排隊並逐個執行。Nvidia GeForce 8800GTX是世界上第一塊支持DirectX 10的PC桌面顯卡,核心代號G80,同時也是結束顯卡管線概念的第一塊顯卡,引入新的流處理單元的概念,是顯卡發展史上一次重大的革新。
流處理單元直接影響處理能力,因為流處理單元是顯卡的核心,也可稱作大腦。流處理單元個數越多則處理能力越強,一般成正比關係,但這僅限於NVIDIA自家的核心或者AMD自家的核心比較範疇。NVIDIA和AMD的流處理單元比較可採取近似比較,即NVIDIA的1個流處理單元相當於AMD的5個流處理單元(隨著發展可能會有所不同)。
流處理單元這個名詞第一次出現在人們的視線中還要上溯到2006年12月4日, NVIDIA在當天正式對外發布新一代DX10顯卡8800GTX,在技術參數表裡面,看不到慣常使用的兩個參數:Pixel Pipelines(像素渲染管線)和Vertex Pipelines(頂點著色單元),取而代之的是一個新名詞:streaming processor,中文翻譯過來就是流處理器(也叫流處理單元、SP單元),它的作用就是處理由CPU傳輸過來的數據,處理後轉化為顯示器可以辨識的數字信號。
1995年公布的名為Cheops中的流處理器,是針對某一個特定的視頻處理功能而設計的一種不可編程的流處理器。但為了得到一定的靈活性,系統中也包含一個通用的可編程處理器。
從1996年到2001年,MIT和Standford針對圖像處理的應用,,研製了名為Imagine 的可編程流處理器。Imagine流處理器沒有採用cache,而是採用一個流寄存器文件SRF(Stream Register File),作為流(主)存儲器與處理器寄存器之間的緩衝存儲器,來解決存儲器帶寬問題的。流存儲器與SRF之間的帶寬是2GB/s,SRF與處理器寄存器之間的帶寬是32GB/s,ALU簇(ALU Cluster)內寄存器與ALU之間的帶寬是544GB/s,三種帶寬的比例關係為1:16:272。
抗鋸齒是3D特效中最重要的效果之一,它經過多年的發展,變為一個龐大的家庭,有必要獨立開來說明一下。
每個流處理器當中都有專門高速單元負責解碼和執行流數據。片載緩存是一個典型的採用流處理器的單元,它可以迅速輸入和讀取數據從而完成下一步的渲染。
流處理器多少對顯卡性能有決定性作用,可以說高中低端的顯卡除了核心不同外最主要的差別就在於流處理器數量,但是有一點要注意,就是NV和AMD的顯卡流處理器數量不具有可比性,他們兩家的顯卡核心架構不同,不能通過比較流處理器多少來看性能,一般情況下NV的顯卡流處理器數量會明顯少於AMD,要從流處理器多少來看性能,只能自家的與自家的比,比如3850與3450相比,8600與8800相比。
當然,就像你的CPU主頻高低一樣的道理。一般顯卡流處理的多少都會影響視頻與高清視頻的解碼功能,不過最主要的還是你的顯卡核心。現在最好的核心應該是G92的。不過,光這些還不夠,你的顯卡架構也決定性能。就像專業顯卡和遊戲顯卡的區別一樣,即使東西都完全一樣但不是一個概念.8800GTS還不如一張普通的G92核心的專業顯卡性能強悍。
這是顯卡的一個參數,2006年由NVIDIA公司首先提出的一個概念,也就是以前常說的兩個顯卡參數Pixel Pipelines(像素渲染管線)和Vertex Pipelines(頂點著色單元),簡稱SP,其作用就是處理CPU傳過來的信號,直接變成顯示器可以識別的數字信號。
一般來說,流處理器數量越多,顯卡性能越強勁,比如擁有640個流處理器的顯卡,比如擁有80個流處理器的顯卡高出幾個檔次。
去除物體邊緣的鋸齒現象,廣州話稱之為“狗牙”,大家可以想像一下狗牙是如何的凹凸不平。
我們在真實世界看到的物體,由無限的像素組成,不會看到有鋸齒現象,而顯示器沒有足夠多的點來表現圖形,點與點之間的不連續就造成了鋸齒。
抗鋸齒通過採樣演演算法,在像素與像素之間進行平均值計算,增加像素的數目,達到像素之間平滑過渡的效果。去掉鋸齒后,還可以模擬高解析度遊戲的精緻畫面。它是目前最熱門的特效,主要用於1600 * 1200以下的低解析度。理論上來說,在17寸顯示器上,1600 * 1200解析度已經很難看到鋸齒,無須使用抗鋸齒演演算法。如此類推,在19寸顯示器上,必須使用1920 x 1080解析度,總之,越大的顯示器,解析度越高,才越不會看到抗鋸齒1920 x 1200。由於RAMDAC(Random Access Memory Digital to Analog Converter,隨機存儲器數/模轉換器)頻率和顯示器製造技術的限制,我們不可能永無止境地提升顯示器和顯卡的解析度,抗鋸齒技術變得很有必要了。
超級採樣抗鋸齒
最早期的全屏抗鋸齒,方法簡單直接。首先,圖像創建到一個分離的緩衝區,緩衝區圖像解析度高於屏幕解析度,假設是2*1(或2x),那麼緩衝區場景的水平尺寸比屏幕解析度高兩倍,若是2*2(或4x)抗鋸齒,緩衝區圖像的水平和垂直均比顯示圖像大兩倍。像素計算加倍之後,選取2個或4個鄰近像素,此過程稱為採樣。把這些採樣混合起來后,生成的最終像素,擁有鄰近像素的特徵,那麼像素與像素之間的過渡色彩,就變得更為近似,整個圖像的色彩過渡趨於平滑。再把最終像素輸出到幀緩衝,作為一幅圖像存儲起來,然後發到顯示器,顯示出一幀畫面。每幀都進行抗鋸齒處理,遊戲過程中的所有畫面都變得帶有抗鋸齒效果了。
邊緣超級採樣抗鋸齒
超級採樣效果很好,但效率極低,嚴重影響顯卡性能。新的4x抗鋸齒方法,只把抗鋸齒應用於物體邊緣,避免佔用過大的緩衝區。工作過程比超級採樣稍為複雜,幾何引擎生成多邊形后,光柵單元會進行描色工作,同時檢查當前的紋理,看看它是否需要用2x2採樣的方式填充到多邊形邊緣。如果不是,GPU只計算一種色彩,在中間插入紋理像素,然後用單色填充這個塊。這些就是非邊緣像素,無須進行抗鋸齒處理。