知識在于積累,了解得多了就是行家。
Shader Model(在3D圖形領(lǐng)域常被簡稱SM)就是“優(yōu)化渲染引擎模式”。事實上,Shader(渲染或稱著色)是一段能夠針對3D對象進行操作、并被GPU 所執(zhí)行的程序。通過這些程序,程序員就能夠獲得絕大部分想要的3D圖形效果。在一個3D場景中,一般包含多個Shader。這些Shader中有的負責對 3D對象表面進行處理,有的負責對3D對象的紋理進行處理。 早在微軟發(fā)布DirectX 8時,Shader Model的概念就出現(xiàn)在其中了,并根據(jù)操作對象的不同被分為對頂點進行各種操作的Vertex Shader(頂點渲染引擎)和對像素進行各種操作的Pixel Shader(像素渲染引擎)。 時至微軟發(fā)布DirectX 10.1之后,Shader Model的版本已經(jīng)有五個版本了:分別是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發(fā)展史上,從SM 1.0進化到SM 2.0稱得上是真正意義上的技術(shù)革命,后者賦予了顯示芯片強大的能力,人們在游戲中也領(lǐng)略到前所未有的視覺體驗,例如水面光影和霧化等特效的出現(xiàn)使游戲場景更真實。相對而言,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最大指令數(shù)從512條增加到了64000條;臨時暫存器數(shù)量也從原先的32個增加到驚人的4096個;允許同時對128個Texture進行操作 (Shader Model 3.0只允許16個);材質(zhì)texture格式變?yōu)橛布С值腞GBE格式,其中的"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可以批量進行幾何處理,快速的把模型類似的頂點結(jié)合起來進行運算。雖然其操作不會象Vertex Shader那樣完整,只是處理器單個頂點的相關(guān)函數(shù)操作,但是這種操作卻可以確定整個模型的物理形狀。這將大大加速處理器速度,因為其它Shader單元將不再去需要判定數(shù)據(jù)所存在的位置,而只是需要簡單的為特定區(qū)域進行操作就可以了。Geometry Shader可以把點、線、三角等多邊形聯(lián)系起來快速處理、同時創(chuàng)造新的多邊形,在很短時間內(nèi)直接分配給其他Shader和顯存而無需經(jīng)過CPU,煙霧、爆炸等復(fù)雜圖象不再需要CPU來處理。從而極大的提高了CPU速度和顯卡速度。游戲圖象中可以出現(xiàn)許多精細場景,如不銹鋼茶壺上清楚的反射出周圍物體、超精細的人物皮膚等 Shader Model是什么意思 Shader Model在PC游戲和顯卡的發(fā)展史上扮演了非常關(guān)鍵的一個角色,它徹底解放了顯示芯片,使得技術(shù)人員可以用它去創(chuàng)造接近真實環(huán)境的3D世界。換句話說,逼真的場景、細節(jié)的毫發(fā)畢現(xiàn)、像看電影那樣玩游戲已成為現(xiàn)實。無怪乎人們開始把Shader Model版本的高低當作衡量顯示芯片價值的重要指標之一。在Shader Model發(fā)展史上,從SM 1.0進化到SM 2.0稱得上是真正意義上的技術(shù)革命,后者賦予了顯示芯片強大的能力,人們在游戲中也領(lǐng)略到前所未有的視覺體驗,例如水面光影和霧化等特效的出現(xiàn)使游戲場景更真實。相對而言,SM 2.0到SM 3.0的改進不如SM 1.0到SM 2.0的變化大,SM 3.0除了支持32bit浮點運算是亮點外,其他特效用SM 2.0也可以完成。例如,GeForce 6系列顯卡上市時曾大力宣傳SM 3.0和HDR(高動態(tài)范圍)技術(shù),這無形之中就給人一種SM 2.0不能實現(xiàn)HDR或者HDR效果差的錯覺。其實在《半條命2∶失落的海灘》中,我們發(fā)現(xiàn)使用SM 2.0b的Radeon X800顯卡對HDR的支持就很好,只不過SM 2.0的先天不足限制了這些特效的應(yīng)用罷了。 我們不可否認,SM 3.0的誕生讓微軟徹底統(tǒng)治了娛樂圖形領(lǐng)域。尤其是它更新了統(tǒng)一的渲染語言——全新的HLSL高級程序語言,這大大簡化了3D程序的編寫工作,同時公正的態(tài)度使得程序員不必為NVIDIA或ATI單獨考慮優(yōu)化措施。微軟通過DirectX和HLSL從根本上控制了圖形技術(shù)未來的發(fā)展方向,而NVDIA和 ATI為了取得更大的市場份額,不得不全力支持。因此從某種意義上來說,真正統(tǒng)治娛樂圖形領(lǐng)域的霸主不是NVIDIA,也不是ATI,而是微軟。小編這里建議現(xiàn)階段想購買顯卡的游戲愛好者,最好選擇支持SM 3.0的產(chǎn)品,因為采用SM 3.0特性的游戲會越來越多。 毋庸置疑,游戲永遠是以顯卡為首的電腦硬件更新?lián)Q代的“催化劑”。隨著《分裂細胞3》、《孤島驚魂》(即FarCry)、《帝國時代3》、《使命召喚2》等支持Shader Model 3.0游戲的陸續(xù)問世,GeForce FX系列或Radeon 9500系列之前的顯卡也面臨著“下崗”的命運。究竟什么是Shader Model?它給游戲帶來了哪些變化呢?Shader Model帶來可編程革命 經(jīng)歷過S3 Trio64時代的DIYer一定還記得,當時所有的游戲都運行在DOS實模式下,3D游戲要調(diào)用這些特效必須借助顯卡廠商特制的API(應(yīng)用程序接口)才行。為了在競爭中取勝,顯卡制造商開始瘋狂地為產(chǎn)品增加各種硬件特效,如Alpha混合、平面著色、透明化處理等等。 這樣的特效競賽持續(xù)沒多久,人們便發(fā)現(xiàn),無論怎么增加特效都不能滿足游戲開發(fā)者的需求。而且由于缺乏統(tǒng)一的API,無法充分利用紛繁復(fù)雜的特效。當時的游戲為了盡量支持市場上的各種硬件,不得不同時為每一塊顯卡準備相應(yīng)的執(zhí)行程序,這對游戲開發(fā)商來說無疑是個噩夢。為了使顯卡發(fā)展擺脫特效競賽的怪圈,設(shè)計一款能自由編程的顯示芯片便成了研發(fā)人員迫在眉睫的任務(wù)。不過,在實現(xiàn)可編程之前需要統(tǒng)一的API。好在微軟的DirectX開始逐步成熟,OpenGL也已相當完善。顯卡制造商們只要直接使用這兩種API就能實現(xiàn)所有的硬件功能。 GeForce 256的誕生拉開了GPU時代的序幕。由于在GPU內(nèi)部首次引入T&L(幾何轉(zhuǎn)換和光照處理)引擎,因此使得顯示核心能夠更快地實現(xiàn)各種復(fù)雜的運算,而相應(yīng)的DirectX 7也在3D應(yīng)用中開始扮演越來越重要的角色。既然擺脫了CPU的依賴,顯卡就有了實現(xiàn)可編程的基礎(chǔ),伴隨著DirectX 8的發(fā)布,GeForce 3系列產(chǎn)品首次向世人展示了GPU的可編程能力,吃力不討好的固定特效時代一去不復(fù)返。什么是Shader Model在3D圖形領(lǐng)域,Shader被稱為“渲染引擎”或“著色器”,Shader Model(以下簡稱SM)就是“渲染引擎模式”了。事實上,Shader是一段能夠針對3D對象進行操作、并被GPU所執(zhí)行的程序。通過這些程序,程序員就能夠獲得絕大部分想要的3D圖形效果。在一個3D場景中,一般包含多個Shader。這些Shader中有的負責對3D對象表面進行處理,有的負責對 3D對象的紋理進行處理。 早在微軟發(fā)布DirectX 8時,Shader Model的概念就出現(xiàn)在其中了,并根據(jù)操作對象的不同被分為對頂點進行各種操作的Vertex Shader(頂點渲染引擎)和對像素進行各種操作的Pixel Shader(像素渲染引擎)。
posted on 2008-10-22 06:13
七星重劍 閱讀(1604)
評論(7) 編輯 收藏 引用 所屬分類:
Game Graphics