Shader 學(xué)習(xí)之路-簡(jiǎn)述Shader常用語(yǔ)言(六)

1、Shader

Shader(著色器)實(shí)際上就是一小段程序,它負(fù)責(zé)將輸入的Mesh(網(wǎng)格)以指定的方式和輸入的貼圖或者顏色等組合作用,然后輸出。

Unity Shader 不等于真正的Shader,Unity Shader 實(shí)際上是指Shaderlab 文件,在硬盤上以.shader 為后綴的一種文件。

2、傳統(tǒng) Shader 與 Unity Shader相比

傳統(tǒng)Shader:

僅可以編寫特定類型的Shader,如頂點(diǎn)著色器顏色、片元著色器等

無(wú)法設(shè)一些渲染設(shè)置,如是否開(kāi)啟混合、深度測(cè)試

需要設(shè)置著色器輸入和輸出,并注意對(duì)應(yīng)關(guān)系

Unity Shader:

可以在同一文件內(nèi)同時(shí)包含著色器和片元著色器的代碼

通過(guò)一行特定指令就可以完成設(shè)置

需要在特定語(yǔ)句塊中聲明一些屬性,也可以依靠材質(zhì)修改這些屬性,數(shù)據(jù)(頂點(diǎn)位置、 uv坐標(biāo)、法線),也可以直接訪問(wèn)的方法

3、Shader Lab

Shader Lab 作為一種專門Unity Shader 服務(wù)語(yǔ)言,我們可以編寫Shader Lab ?來(lái)生成Unity Shader。


4、著色器語(yǔ)言,作為中間語(yǔ)言(Intermediate Language),即交給CPU 可以理解的語(yǔ)言。

Cg(C for Graphic)

HLSL(High Level Shading Language)

GLSL(OpenGL Shading Language)

Cg/HLSL 實(shí)際是同一種語(yǔ)言(Microsoft 和NVIDIA合作)

ShaderLab 內(nèi)部可以嵌套 Cg/HLSL 語(yǔ)言編寫著色器代碼,需要嵌套在命令CGPROGRAM 和ENDCG 之間,代碼如下:

Pass

{

//Pass 的標(biāo)簽和狀態(tài)設(shè)置

CGPROGRAM

//編譯指令

#pragma vertex vert

#pragma fragment frag

//CG 代碼

ENDCG

//其他設(shè)置

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • <轉(zhuǎn)>我也忘了轉(zhuǎn)自哪里,抱歉,感謝原作者 什么是Shader Shader(著色器)是一段能夠針對(duì)3D對(duì)象進(jìn)行操作...
    星易乾川閱讀 5,867評(píng)論 1 16
  • Unity shader 官網(wǎng)文檔全方位學(xué)習(xí)(一)What?? Shader,看起來(lái)好高級(jí)的樣子,是的,這是Uni...
    狼之獨(dú)步閱讀 6,299評(píng)論 0 12
  • 轉(zhuǎn)載注明出處:點(diǎn)擊打開(kāi)鏈接 Shader(著色器)是一段能夠針對(duì)3D對(duì)象進(jìn)行操作、并被GPU所執(zhí)行的程序。Shad...
    游戲開(kāi)發(fā)小Y閱讀 3,707評(píng)論 0 4
  • 觀《寂靜之地》想到的。 我想說(shuō)的不是聾啞人的世界,是今天看了一部美國(guó)2018年出的一部號(hào)稱驚悚恐怖片《寂靜之地》。...
    巳嵐閱讀 266評(píng)論 0 1
  • 今年八月底,趁著女兒軍訓(xùn),請(qǐng)了一周年假去雙溪學(xué)習(xí)油畫。 知道雙溪,是在去年參加好報(bào)畫畫班的時(shí)候,群里請(qǐng)了林正祿老師...
    花開(kāi)花落北京閱讀 1,254評(píng)論 28 23

友情鏈接更多精彩內(nèi)容