日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UnityShader入门精要-3.3 UnityShader的结构

發(fā)布時間:2025/7/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UnityShader入门精要-3.3 UnityShader的结构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一個UnityShader的基礎(chǔ)結(jié)構(gòu)如下所示:

Shader "ShaderName"{Properties{//屬性 } SubShader{//顯卡A使用的子著色器 }SubShader{//顯卡B使用的子著色器 }Fallback "VertexLit"}

Unity在背后根據(jù)使用的平臺來吧這些結(jié)構(gòu)編譯成真正的代碼和Shader文件,開發(fā)者只需要和UnityShader打交道即可。(Unity編寫Shader的語言是ShaderLab)

屬性:在Shader中訪問它們需要使用每個屬性的名字,這些屬性的名字通常由一個下劃線開始,還需要為屬性指定它的類型,還需要指定一個默認值,當?shù)谝淮伟言揝hader賦給某個材質(zhì)的時候,材質(zhì)面板上顯示的就是這些默認值。

屬性類型:

標簽類型說明例子
Queue

控制渲染順序,指定該物體屬于哪一個渲染隊列,通

過這種方式可以保證所有的透明物體可以在所有不透

明物體后面被渲染(詳見第8章),我們也可以自定義

使用的渲染隊列來控制物體的渲染順序

Tags{"Queue"="Transparent" }
RenderType

對著色器進行分類,例如這是一個不透明的著色器,

或是一個透明的著色器等。這可以被用于著色器替換

(ShaderReplacement)功能

Tags{"RenderType"="Qpaque"}
DisableBatching

一些SubShader在使用Unity的批處理功能時會出現(xiàn)問

題,例如使用了模型空間下的坐標進行定點動畫。這時可

以通過該標簽來直接指明是否對改SubShader使用批處

Tags{"DisableBatching"="True"}
ForceNoShadowCasting控制使用該SubShader的物體是否會投射陰影Tags{"ForceNoShadowCasting"="True"}
IgnoreProjector

如果該標簽值為“True”,那么使用該SubShader的物

體將不會受Projectror的影響。通常用于半透明物體

Tags{"IgnoreProjector"="True"}
CanUseSpriteAtlas

當該SubShader是用于精靈(Sprite)時,將該標簽設(shè)

為“False”

Tags{"CanUseSpriteAtlas"="False"}
PreviewType

指明材質(zhì)面板將如何預覽該材質(zhì)。默認情況下,材質(zhì)

將顯示為一個球型,我們可以通過把該標簽的值設(shè)為

“Plane” "SkyBox" 來改變預覽類型

Tags{"PreviewType"="Plane"}

?需要注意的是,上述的標簽僅可以在SubShader中聲明,而不可以在Pass塊中聲明。Pass塊雖然也可以定義標簽,但這些標簽不同于SubShader的標簽類型。這是我們下面要講到的:

  • Pass語義塊

? ? ?Pass語義塊包含的語義定義如下:

Pass{[Name][Tags][RenderSetup]//Other code }

首先可以在Pass中定義該Pass的名稱,例如:

Name "MyPassName"

通過這個名稱可以使用ShaderLab的UsePass命令來直接使用其他的UnityShader中的Pass。例如:

UsePass "MyShader/MYPASSNAME"

這樣可以提高代碼的復用性。需要注意的是由于Unity內(nèi)部會把素有的Pass的名稱轉(zhuǎn)換成大寫字母表示,因此在使用UsePass命令時必須使用大寫形式的名字。

其次,我們可以對Pass設(shè)置渲染狀態(tài)。SubShader的狀態(tài)設(shè)置同樣適用于Pass.除了上面提到的狀態(tài)設(shè)置外,在Pass中我們還可以使用固定管線的著色器命令。

?Pass同樣可以設(shè)置標簽,但它的標簽不同于SubShader的標簽,這些標簽也是用于告訴渲染引擎我們希望怎么樣來渲染該物體。下表給出了Pass中使用的標簽類型。

標簽類型說明例子
LightMode定義該Pass在Unity的渲染流水線中的角色Tags{"LightMode"="ForwardBase"}
RequireOptions

用于指定當滿足某些條件時才渲染該Pass,它的值是一個

由空格分隔的字符串。目前,Unity支持的選項有:

SoftVegetation.在后面的版本中可能會增加更多的選項

Tags{"RequireOptions"="SoftVegetation"}

除了上面普通的Pass定義外,UnityShader還支持一些特殊的Pass,以便進行代碼服用或?qū)崿F(xiàn)更復雜的效果。

  • UsePass : 如上文所說,可以使用該命令來服用其他UnityShader中的Pass;?
  • GrabPass : 該Pass負責抓取屏幕并將結(jié)果存儲在一張紋理中,以用于后續(xù)的Pass處理;

?

最后留一條路: Fallback

? 緊跟在各個SubShader語義塊后面的,可以是一個Fallback命令。他用于告訴Unity,"如果上面所有的SubShader在這塊顯卡上都不能運行,那么就使用這個最低級的Shader吧!"

? ? 它的語義如下:

Fallback "name" //或者 Falllback off

?如上所述,我們可以通過一個字符串來告訴Unity這個“最低級的UnityShader”是誰。我們也可以任性的關(guān)閉Fallback功能,但一旦你這么做,你的意思大概就是:“如果一塊顯卡跑不了上面所有的Shader,那就不要管他了!”

? 下面給出一個使用Fallback的例子:

Fallback "VertexLit"

? ?事實上,Fallback還會影響陰影的投射。在渲染陰影紋理時,Unity會在每個UnityShader中尋找一個陰影投射的Pass,通常情況下,我們不需要自己專門實現(xiàn)一個Pass, 這是因為Fallback使用 的內(nèi)置Shader中包含了這樣一個通用的Pass。因此,為每個UnityShaer正確的設(shè)置Fallback是非常重要的。

? 除了上述語義,還有一些不常用到的語義。例如,如果我們不滿足于Unity內(nèi)置的屬性類型,想要自定義材質(zhì)面板的編輯界面,就可以使用CustomEditor語義來擴展編輯界面。我們還可以使用Category語義來對UnityShader中的命令進行分組。

?

轉(zhuǎn)載于:https://www.cnblogs.com/guoguoguo/p/7152503.html

總結(jié)

以上是生活随笔為你收集整理的UnityShader入门精要-3.3 UnityShader的结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91亚洲精品乱码久久久久久蜜桃 | 97国产一区 | 欧美综合网 | 日本少妇喷水 | 在线观看中文字幕 | 久久久国 | 国产一级二级在线观看 | 在线看片一区二区 | 黄色美女毛片 | 成人免费看片网站 | 国产精品丝袜黑色高跟鞋的设计特点 | 亚洲小视频在线 | 午夜亚洲aⅴ无码高潮片苍井空 | 狠狠综合| 一区三区视频在线观看 | 首尔之春在线观看 | 蜜桃9999 | 久久综合五月天 | 九九热视频精品在线观看 | 3d动漫精品啪啪一区二区竹菊 | 毛片毛片毛片毛片毛片毛片毛片 | 91大神精品 | 久久久久久久久久久久久女国产乱 | 亚洲午夜电影网 | 国产精品视频网址 | 欧美日韩色片 | 黄色一几片 | 日韩二区 | 亚洲经典自拍 | 嫩草av久久伊人妇女超级a | 日本一区二区在线观看视频 | 婷婷九九 | 久久久久亚洲av成人无码电影 | 欧美综合久久 | 性欢交69国产精品 | 美女免费视频网站 | 91麻豆精品国产午夜天堂 | 草草在线免费视频 | 日韩精品第二页 | 欧美福利片在线观看 | 国产精品久久久久久久av | 国产精品一区二区三区免费观看 | 亚洲天码中字 | 欧美乱大交| jizz欧美大全 | 日本激情网址 | 免费观看黄色一级视频 | 免费在线观看a级片 | 青青伊人国产 | 黄色美女免费网站 | 国产一级黄色片子 | 福利一二区 | 黄色片网站免费看 | 天天干天天日 | 天堂中文在线视频 | 在线视频精品免费 | 短裙公车被强好爽h吃奶视频 | 3d动漫精品啪啪一区二区三区免费 | 天天操操操 | 亚洲乱码视频在线观看 | 精品国产一区三区 | 国产精品美女www爽爽爽视频 | 精品无码久久久久久久久成人 | 中文字幕亚洲乱码熟女一区二区 | 亚洲午夜精品在线观看 | 男人天堂a | 外国毛片 | aaaaav| 最新中文字幕在线视频 | 一级性生活大片 | 精品蜜桃一区二区三区 | 欧美黄色小说 | 国产精品第3页 | 国产一区二区播放 | 69久久精品| 国内自拍亚洲 | 国产精选中文字幕 | 美女啪啪无遮挡 | 黄色一级片. | 寡妇av| 交专区videossex另类 | 欧美精品免费看 | 在线观看亚洲精品 | 影视先锋av资源 | 97超碰色 | 色视av | 500部大龄熟乱视频 亚洲乱码精品 | 日韩夜夜| 日韩精品你懂的 | 国产男女裸体做爰爽爽 | 欧美777| 噜噜噜噜噜色 | 女人扒开屁股让我添 | 激情小说激情视频 | 女人被男人躁得好爽免费视频 | av观看网址 | 中文字幕av网站 | 天天舔天天插 | 中国一级特黄毛片大片 |