表面著色器二

2021-08-14 07:12:55 字數 441 閱讀 5214

一、surf函式

void surf (input in, inout su***ceoutputstandard o)

二、該函式是無返回值的,第乙個引數input in就是我們定義的乙個結構體

struct input ;

在這個函式中,只是使用了乙個主紋理的紋理座標,這個紋理座標必須要以uv小寫開頭

三、第二個引數

inout su***ceoutputstandard o:inout是cg語言中乙個比較重要的內容,in描述的是這個引數是輸入的,out描述的是這個引數是會被輸出的,在外部可以直接使用。連起來說明該引數既是輸入又是可以作為乙個輸出。

所以第乙個引數 

fixed4 c = tex2d (_maintex, in.uv_maintex) * _color:計算取樣過後的顏色值並賦值

表面著色器

設計目的 頂點 幾何 片元著色器處理方式比較適合gpu去理解,但是對人理解而言就顯得比較晦澀。所以unity提供了一種適合人類理解的處理方式,也就是表面著色器 光照模型 光照著色器。它是在頂點 幾何 片元著色器上面進行的一層抽象封裝,最終還是會被unity翻譯成頂點 幾何 片元著色器的處理方式。表面...

表面著色器

除了幾乎從頭開始編寫著色器之外,unity還允許我們定義一些引數,並讓unity生成執行複雜光照計算的 這些著色器稱為 表面著色器 之前的basic shader轉換到表面著色器 使用表面著色器時,我們不必做其他的事情,因為unity會為我們生成它們。為了轉換為你表面著色器,可以完全刪除頂點著色器。...

表面著色器一

在su ce shader當中不需要編寫pass通道,su ce shader就是對vertex shader和fragment shader的一種包裝。它主要可以用來生成 所以生成的過程不需要進行干預,因此pass通道也能夠幫我們自動生成,不需要去新增pass通道。一 建立的shader的 sha...