UnityShader之固定管線著色器

2021-09-20 22:36:50 字數 2029 閱讀 7371

· 

首先,我們先

看一下unityshader的基本框架。

· //設定

shader

的目錄路徑

· shader "fixedshader/fixed001"

· · 

//子著色器(表示一種渲染方案)

· subshader }

· subshader subshader

· //備用著色器:一般用最簡單的

shader fallback "diffuse" }

· shader框架細節

o 最前面的shader 「fixedshader/fixed001」,是設定當前shader的路徑,方便在材質球中選擇。

選擇shader

o 之後的subshader是子著色器,由於unity跨平台,因此unity的工程可能發布的平台很多,有可能是pc,有可能是移動端,也有可能是掌機,不同裝置的渲染能力不同,也就造就了在執著跨平台專案時,shader的編寫需要分多個subshader,以適用於所有的平台。subshader從上至下,渲染效果依次提高,效能消耗也依次提高。硬體裝置會選擇自身能使用的最佳subshader,保證能渲染,效果盡可能的好。如果前面的所有subshader都不能使用(硬體渲染能力太差),則使用fallback(備胎shader)渲染,一般fallback會選擇最簡單shader,以防止材質不渲染。

o if(當前裝置可以使用

subshader01

的渲染方案去渲染)o 

o else if(當前裝置可以使用

subshader02

的渲染方案去渲染)o 

o else if(當前裝置可以使用

subshader03

的渲染方案去渲染)o 

o ...

o ...

o ...

o else

o o 

pass通道指的是在影象渲染時,可以分多通道去渲染。例如分正反兩通道渲染,透明度以0.5為分界兩通道去渲染等等。

分正反兩通道渲染

· 接下來,我們來詳細了解一下shader屬性的設定方式。

著色器

是乙個加工廠,是一種影象渲染的解決方案,所以大部分好的shader都是給使用者流出了很多可選的

屬性介面

,方便使用者新增自己專案的素材,從而實現需求渲染特效。

· shader的資料型別

o 語法:

變數名

(屬性提示文字

,屬性資料型別

)=初值

o _floatvalue("乙個浮點數",float)=0.5

//範圍浮點數

o _rangevalue("乙個範圍浮點數",range(0,5))=0

//四維數

o _vectorvalue("乙個四維數",vector)=(1,0,0,1)

//顏色值

o _maincolor("主顏色",color)=(1,0,0,1)

//2階貼圖

o _maintexture("主紋理",2d)=""{}

//非2階紋理

o _recttexture("非2階紋理",rect)=""{}

//立方體貼圖

o _cubetexture("立方體貼圖",cube)=""{}

Unity Shader之再談雜訊

對於雜訊其實我還有很多不懂的地方,比如random函式,比如雜訊的實際應用場景等等。於是在搜尋資料的時候我發現了兩個超超超牛b的 可以說是我這種想要去學習相關知識的人的福利 在這裡給自己標記一下同時也分享給大家 1.shadertoy創始人之一的奇淫巧計大集合 之前看shadertoy的時候,在驚嘆...

UnityShader之積雪效果

積雪效果是比較簡單的,只需要計算頂點法線方向和世界向上方向之間的點乘,將得到的值與預設的閥值比較,小於閥值為0,用這個值進行插值就ok了 1 shader myshader snowshader 紋理4 snownum snow num range 1,1 0 點乘閥值 5 snowintensit...

偏移值固定 欽州固定管託適用範圍

欽州固定管託適用範圍 明拓管道這樣可以節省很多的人力和物力,終也是可以買到更加合適的產品,關於這些問題尤其值得重視,希望消費者可以特別重視這方面的問題。當好參謀,並提供有關技術資料,如產品樣本 產品說明書 產品計算書 產品結構圖等。必要時可參與設計特殊要求的產品,為客戶計算特殊使用要求的技術引數。l...