Shader 學習之路-簡述Shader常用語言(六)

1、Shader

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

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

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

傳統(tǒng)Shader:

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

無法設一些渲染設置,如是否開啟混合、深度測試

需要設置著色器輸入和輸出,并注意對應關系

Unity Shader:

可以在同一文件內同時包含著色器和片元著色器的代碼

通過一行特定指令就可以完成設置

需要在特定語句塊中聲明一些屬性,也可以依靠材質修改這些屬性,數據(頂點位置、 uv坐標、法線),也可以直接訪問的方法

3、Shader Lab

Shader Lab 作為一種專門Unity Shader 服務語言,我們可以編寫Shader Lab ?來生成Unity Shader。


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

Cg(C for Graphic)

HLSL(High Level Shading Language)

GLSL(OpenGL Shading Language)

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

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

Pass

{

//Pass 的標簽和狀態(tài)設置

CGPROGRAM

//編譯指令

#pragma vertex vert

#pragma fragment frag

//CG 代碼

ENDCG

//其他設置

}

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

相關閱讀更多精彩內容

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

友情鏈接更多精彩內容