shader model

Shader Model(在3D圖形領域常被簡稱SM)就是“最佳化渲染引擎模式”。事實上,Shader(著色器)是一段能夠針對3D對象進行操作、並被GPU所執行的程式。通過這些程式,程式設計師就能夠獲得絕大部分想要的3D圖形效果。在一個3D場景中,一般包含多個Shader。這些Shader中有的負責對3D對象表面進行處理,有的負責對3D對象的紋理進行處理。早在微軟發布DirectX 8時,Shader Model的概念就出現在其中了,並根據操作對象的不同被分為對頂點進行各種操作的Vertex Shader(頂點渲染引擎)和對像素進行各種操作的Pixel Shader(像素渲染引擎)。

版本

時至微軟發布DirectX 10.1之後,Shader Model 已經有五個版本了:分別是Shader Model 1.0(DirectX8.0)、Shader Model 2.0(DirectX9.0b)、Shader Model 3.0(DirectX9.0c)、Shader Model 4.0(DirectX10)、Shader Model 4.1(DirectX10.1)和Shader Model 5.0(DirectX11)。

發展史

在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可以批量進行幾何處理。然而其因性能原因而受到詬病,實際上使用它的人並不多。為了兼顧性能,DX11(SM 5.0)引入了Tessellation來取代GS的部分功能。

相關詞條

相關搜尋

熱門詞條

聯絡我們