Shader頻率

Shader頻率

Shader頻率中文意思為著色器頻率,它是DirectX 10統一渲染架構(Unified Shader Architecture)誕生後出現的新產物,Shader頻率與顯示卡核心頻率和顯存頻率一樣,都是影響顯示卡性能高低的重要頻率。

基本信息

shader頻率簡介

shader頻率=著色器頻率,即顯示晶片內部實際負責渲染部分的頻率,是顯示核心中對性能影響最大的指標。

shader=著色器,渲染器

shader頻率和GPU核心頻率及顯存頻率一樣重要甚至更重要,若進行顯示卡超頻,超流處理器頻率可以獲得更大的性能提升,而產生的多餘熱量要小於給GPU及顯存超頻產生的熱量。

shader頻率詳解

Shader是描述虛擬對象表面材質應該如何進行著色的一段敘述,在Dev中,shader的著色完全交由GPU(Graphic Processor Unit)進行,並針對每一個Vertex或是Pixel做計算,因此,Shader可以再區分為 頂點著色器(Vertex Shader) 與 像素著色器(Pixel Shader)。要特別注意的是,目前市場上所販賣的顯示卡,並非都有處理Shader的能力,即使有部分顯示卡可以處理Shader,也要注意是不是支持最新版本的Shader,而Pixel Shader的最新版本也是3.0。

Shader 所使用的語言在一開始,是使用彙編語言,並且成功運用在Xbox與DirectX8上,但是,畢竟使用低階的機器語言對於處理複雜的3D圖學算法並不是一件容易的事,因此NVIDIA與Microsoft分別發展出類似C語言的語法,NVIDIA最早發展出CG,而Microsoft一直到 DirectX 9的版本才將這部分整合進---HLSL(High Level Shading Language),雖然HLSL在DirectX 8的時候就已經存在了,不過那時還只是支持彙編語言的語法。

截至目前為止,Virtools Dev支持的版本為3.0版,必須將Virtools Dev更新至 3.0.0.80,並安裝DirectX 9.0C 的版本才可能執行,說可能是因為還牽涉到使用者的顯示卡。

Shader包含3個部分,分別敘述如下:

1. States(狀態值):這部分描述著色固定流程(Fixed-Pipeline)所用到的相關變數,如材質顏色(Material Color)、材質的貼圖(Material Texture)、混色方式(blending option)、預設的3D轉換方式(Predefined 3D transformations)與 2D貼圖坐標值轉換(2D Texture coordinate transformation),或是稱為 TexGen,可使用在環境反射貼圖(environment mapping)上…等。

State可以說是描述材質最基本、直接的方式,state只針對每一個材質或是物體作用,而且僅止於一次,並不會對每一個頂點(vertex)或是像素(pixel)有執行的動作。

對於程式設計師而言,必須充分了解什麼是「State」,才可以完全掌握Shader的製作。

2. 頂點著色器指令(Vertex Shader Instructions)

頂點著色器指令定義如何運算、操作每一個已經著色完成的面所包含的頂點數據,在運算、操作過程中,GPU將只使用 State 所定義的頂點屬性(如頂點顏色、頂點法向量或是貼圖軸坐標…等)做計算。

3. 像素著色器指令(Pixel Shader Instructions)

像素著色器指令定義如何運算、操作每一個已經著色完成的面所包含的像素數據,在運算、操作過程中,GPU將只使用「著色狀態值」(Render State)所定義的像素屬性(如像素顏色、像素混色或是Z值…等)做計算。

因為Virtools支持HLSL,所以之後談的都會以HLSL為主,像是Cg / Cgfx / OLGL ...等可能會著墨較少囉

Shader Model(在3D圖形領域常被簡稱SM)就是“最佳化渲染引擎模式”。事實上,Shader(渲染或稱著色)是一段能夠針對3D對象進行操作、並被GPU所執行的程式。通過這些程式,程式設計師就能夠獲得絕大部分想要的3D圖形效果。在一個3D場景中,一般包含多個Shader。這些Shader中有的負責對3D對象表面進行處理,有的負責對3D對象的紋理進行處理。

shader版本

早在微軟發布DirectX 8時,Shader Model的概念就出現在其中了,並根據操作對象的不同被分為對頂點進行各種操作的Vertex Shader(頂點渲染引擎)和對像素進行各種操作的Pixel Shader(像素渲染引擎)。

時至微軟發布DirectX 10.1之後,Shader Model的版本已經有五個版本了:分別是Shader Model1.0(DirectX8.0)、Shader Model2.0(DirectX9.0b)、Shader Model3.0(DirectX9.0c)、Shader Model4.0(DirectX10)和Shader Model4.1(DirectX10.1)。

在Shader Model發展史上,從SM 1.0進化到SM 2.0稱得上是真正意義上的技術革命,後者賦予了顯示晶片強大的能力,人們在遊戲中也領略到前所未有的視覺體驗,例如水面光影和霧化等特效的出現使遊戲場景更真實。相對而言,SM 2.0到SM 3.0的改進不如SM 1.0到SM 2.0的變化大,SM 3.0除了支持32bit浮點運算是亮點外,其它特效用SM 2.0也可以完成。相比原先的Shader Model 3.0,Shader Model 4.0最大指令數從512條增加到了64000條;臨時暫存器數量也從原先的32個增加到驚人的4096個;允許同時對128個Texture進行操作(Shader Model 3.0隻允許16個);材質texture格式變為硬體支持的RGBE格式,其中的"E"是Exponent的省略,是RGB共同的說明,這在HDR的處理上有很大的作用,摒棄了以往需要專門decoding處理HDR渲染的流程。 另外,對於紋理的尺寸Shader Model4.0也有驚人的提升,8192x8192的最高紋理解析度比原先最高2048x2048的解析度要高出4倍。

Shader Model 4.0另一個重大變化就是在VS和PS之間引入了一個新的可程式圖形層----幾何著色器(Geometry Shader)。原來的Vertex Shader和Pixel Shader只是對逐個頂點或像素進行處理,而新的Geometry Shader可以批量進行幾何處理,快速的把模型類似的頂點結合起來進行運算。雖然其操作不會象Vertex Shader那樣完整,只是處理器單個頂點的相關函式操作,但是這種操作卻可以確定整個模型的物理形狀。這將大大加速處理器速度,因為其它Shader單元將不再去需要判定數據所存在的位置,而只是需要簡單的為特定區域進行操作就可以了。Geometry Shader可以把點、線、三角等多邊形聯繫起來快速處理、同時創造新的多邊形,在很短時間內直接分配給其它Shader和顯存而無需經過CPU,煙霧、爆炸等複雜圖象不再需要CPU來處理。從而極大的提高了CPU速度和顯示卡速度。遊戲圖象中可以出現許多精細場景,如不鏽鋼茶壺上清楚的反射出周圍物體、超精細的人物皮膚等。

相關詞條

相關搜尋

熱門詞條

聯絡我們