最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity-著色器資源

2021-04-15 09:26 作者:unity_某某師_高錦錦  | 我要投稿

著色器是包含顯卡執(zhí)行代碼和指令的資源。?材質(zhì)將引用著色器并設(shè)置其參數(shù)(紋理、顏色等)。

Unity 包含一些在項(xiàng)目中始終可用的內(nèi)置著色器(例如,?標(biāo)準(zhǔn)著色器)。您也可以編寫(xiě)自己的著色器并應(yīng)用后期處理效果。

創(chuàng)建新著色器

要?jiǎng)?chuàng)建新著色器,請(qǐng)從主菜單或?Project 視圖__上下文菜單中 選擇?Assets__ >?Create?>?Shader。著色器是 類(lèi)似于 C# 腳本的文本文件,以 Cg/HLSL 和 ShaderLab 語(yǔ)言的組合編寫(xiě)而成 (請(qǐng)參閱編寫(xiě)著色器頁(yè)面以了解詳細(xì)信息)。

著色器檢視面板 (Shader Inspector)。

著色器導(dǎo)入設(shè)置

在此檢視面板部分可為著色器指定默認(rèn)紋理。每當(dāng)使用 此著色器創(chuàng)建新材質(zhì)時(shí),都會(huì)自動(dòng)分配 這些紋理。

著色器檢視面板

著色器檢視面板顯示有關(guān)著色器的基本信息(主要是著色器標(biāo)簽), 并允許編譯和檢查低級(jí)編譯代碼。

對(duì)于表面著色器 (Surface Shader),__Show generated code__ 按鈕將顯示 Unity 生成的用于處理光照和陰影的所有代碼。如果確實(shí)想要 自定義生成的代碼,只需將其全部復(fù)制并粘貼回原始著色器文件 并開(kāi)始調(diào)整即可。

著色器編譯彈出菜單。

Compile and show code?按鈕的彈出菜單可檢查選定平臺(tái) 最終編譯的著色器代碼(例如 Direct3D9 上的程序集,或適用于 OpenGL ES 的 低級(jí)優(yōu)化 GLSL)。此功能在優(yōu)化著色器性能時(shí)非常有用;通常情況下,您會(huì)想知道最后在此處生成了 多少低級(jí)指令。

生成的低級(jí)代碼可用于粘貼到 GPU 著色器性能分析工具(如?AMD GPU ShaderAnalyzer?或?PVRShaderEditor)。

著色器編譯詳細(xì)信息

在著色器導(dǎo)入時(shí),Unity 不會(huì)編譯整個(gè)著色器。這是因?yàn)榇蠖鄶?shù)著色器 內(nèi)部都有很多變體,因此為所有可能的平臺(tái)編譯所有這些變體 將需要很長(zhǎng)時(shí)間。實(shí)際的操作過(guò)程為:

  • 在導(dǎo)入時(shí),僅對(duì)著色器進(jìn)行最低限度的處理(表面著色器生成等)。

  • 只在需要時(shí)實(shí)際編譯著色器變體。

  • 不會(huì)在導(dǎo)入時(shí)執(zhí)行編譯 100–10000 個(gè)內(nèi)部著色器的典型工作,此過(guò)程通常最終只編譯少數(shù)著色器。

在播放器構(gòu)建時(shí),所有“尚未編譯”的著色器變體都將被編譯,因此即使 Editor 不會(huì)使用這些著色器變體,它們也會(huì)存在于游戲數(shù)據(jù)中。

但是,這確實(shí)意味著著色器可能具有在著色器導(dǎo)入時(shí)未檢測(cè)到的 錯(cuò)誤。例如,正在使用 Direct3D 11 運(yùn)行 Editor,但如果著色器是針對(duì) OpenGL 進(jìn)行編譯的, 則會(huì)出錯(cuò)。此外,還可能著色器的某些變體不符合著色器模型 2.0 指令限制等。如果 Editor 需要了解這些錯(cuò)誤,它們將顯示在檢視面板中;但是,為了檢查錯(cuò)誤,手動(dòng)為所需平臺(tái) 完全編譯著色器也是一種很好的做法。使用著色器檢視面板 中的?Compile and show code?彈出菜單即可執(zhí)行此操作。

著色器編譯是使用名為?UnityShaderCompiler?的后臺(tái)進(jìn)程執(zhí)行的,該進(jìn)程由 Unity 在需要編譯著色器時(shí)即時(shí)啟動(dòng)??蓡?dòng)多個(gè)編譯器進(jìn)程(通常在機(jī)器中每個(gè) CPU 核心對(duì)應(yīng)一個(gè)),這樣在播放器構(gòu)建時(shí)就可以并行完成著色器編譯。當(dāng) Editor 不編譯著色器時(shí),編譯器進(jìn)程不執(zhí)行任何操作,也不消耗計(jì)算機(jī)資源, 所以不必?fù)?dān)心它們。Unity Editor 退出時(shí)也將關(guān)閉這些進(jìn)程。

各個(gè)著色器變體編譯結(jié)果將緩存在項(xiàng)目中的?Library/ShaderCache?文件夾下。 這意味著 100% 相同的著色器或其代碼片段將重用以前編譯的結(jié)果。此外還 意味著,如果有許多經(jīng)常更改的著色器,著色器緩存文件夾可能會(huì)變得 非常大。刪除文件夾內(nèi)容通常是安全的;只會(huì)導(dǎo)致重新編譯著色器變體。



Unity-著色器資源的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
绥阳县| 白玉县| 门头沟区| 张北县| 鹿邑县| 水城县| 漳浦县| 常山县| 凭祥市| 罗山县| 游戏| 安西县| 泽普县| 灵台县| 水城县| 阿鲁科尔沁旗| 福州市| 沙洋县| 安图县| 禹州市| 历史| 邛崃市| 吉安县| 河源市| 肇源县| 高安市| 卓资县| 扶沟县| 罗城| 南郑县| 龙州县| 手游| 修水县| 红安县| 土默特右旗| 新源县| 垫江县| 林甸县| 福建省| 兴安盟| 青浦区|