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

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

材質(zhì)屬性和 GI 系統(tǒng)

2020-06-22 09:40 作者:unity_某某師_高錦錦  | 我要投稿

對象的外觀由其著色器定義。

舊版和當(dāng)前著色器映射

Unity 3 和 4 中的著色器映射與 Unity 5 中的著色器映射具有不同的工作原理。Unity 5 及之后的版本仍然支持舊版著色器映射。請參閱下面的舊版材質(zhì)映射。

Unity 3.x 和 4.x 使用了從材質(zhì)屬性到光照貼圖材質(zhì)屬性的簡單映射。此映射適用于常見情況,但是基于命名約定、標(biāo)簽和字符串。您無法對表面屬性進(jìn)行任何自定義,因為此映射實際上采用了硬編碼技術(shù)定義具體的運行方式。Unity 5.0 及之后的版本具有靈活的著色器映射。


Meta pass(Unity 5.0 及之后的版本)

反照率和發(fā)光是使用特殊的 Meta 著色器 pass 渲染的。光照貼圖靜態(tài)游戲?qū)ο笫鞘褂?GPU 在光照貼圖空間中渲染的。這意味著,游戲?qū)ο笤谄聊簧系耐庥^與其對于光照貼圖而言的外觀是分開的,因此您可以自定義著色器。

Meta pass 可解除反照率和發(fā)光之間的關(guān)聯(lián)性,用于在常規(guī)著色器 pass 期間計算全局光照?(GI)。因此,您可以在控制 GI 的同時不影響用于實時渲染的著色器。標(biāo)準(zhǔn)著色器在默認(rèn)情況下包含 Meta pass。全局光照由 Unity 中的一個名為 Enlighten 的中間件進(jìn)行管理。

Meta pass 流程

Unity Editor 在內(nèi)部處理金屬性表面的反照率時需要使用 Meta pass。Enlighten 處理漫射傳輸并在每次反彈時使用表面反照率。具有黑色(或幾乎黑色)反照率的金屬性表面不會反射任何光線。著色器 pass 在渲染反照率時會讓其偏向具有金屬色調(diào)的更亮顏色。介電材質(zhì)(木材、塑料、石材、混凝土、皮革、皮膚)具有白色鏡面反射率。金屬具有光譜鏡面反射率。

注意:使用 Meta pass 不如?DynamicGI.SetEmissive?的速度快,但靈活性更高,因為不會受限于單個顏色。


舊版材質(zhì)映射

Unity 5.0 及更高版本中的內(nèi)置舊版著色器已經(jīng)包含 Meta pass。如果要將項目從 Unity 5.0 之前的版本進(jìn)行升級,則應(yīng)添加 Meta pass。請參閱下面具有 Meta pass 的示例著色器以了解具體操作方法。

自定義 RGB 透明度

通過向著色器添加名為?_TransparencyLM?的紋理屬性,即可添加基于顏色的自定義 RGB 透明度。在這種情況下,標(biāo)準(zhǔn)行為將被刪除,并且僅使用此紋理的值來評估材質(zhì)中的傳輸情況。當(dāng)您想要創(chuàng)建獨立于材質(zhì)顏色或反照率紋理的基于顏色的透明度時,這將非常有用。

要創(chuàng)建自定義傳輸行為,請將以下行添加到著色器并分配紋理:

_TransparencyLM ("Transmissive Texture", 2D) = "white" {}

注意:Unity 通過著色器的屬性和路徑/名稱關(guān)鍵字(如?Transparent、Tree、Leaf、Leaves?等)來檢測某些舊版著色器。


具有 Meta pass 的示例著色器

下面的著色器允許專門為 GI 系統(tǒng)指定自定義反照率顏色和紋理。

Shader "Custom/metaPassShader"{ ? ?

Properties { ? ? ? ?

_Color ("Color", Color)=(1,1,1,1) ? ? ? ?

_MainTex ("Albedo (RGB)",2D)="white"{} ? ? ? ?

_Glossiness ("Smoothness", Range(0,1))=0.5 ? ? ? ?

_Metallic ("Metallic", Range(0,1))=0.0 ? ? ? ?

_GIAlbedoColor ("Color Albedo (GI)", Color)=(1,1,1,1) ? ? ? ?

_GIAlbedoTex ("Albedo (GI)",2D)="white"{} ? ?

} ? ?

SubShader { ? ?

// ------------------------------------------------------------------ ? ?

// 提取光照貼圖、GI(發(fā)光、反照率...)的信息 ? ?

// 在常規(guī)渲染期間不使用此 pass。 ? ? ? ?

Pass{ ? ? ? ? ? ?

Name "META" ? ? ? ? ? ?

Tags {"LightMode"="Meta"}

Cull Off ? ? ? ? ? ?

CGPROGRAM ? ? ? ? ? ?

#include"UnityStandardMeta.cginc" ? ? ? ? ? ?

sampler2D _GIAlbedoTex; ? ? ? ? ? ?

fixed4 _GIAlbedoColor; ? ? ? ? ? ?

float4 frag_meta2 (v2f_meta i): SV_Target{ ? ? ? ? ? ? ? ?

// 我們對產(chǎn)生最終反照率的漫射和鏡面反射 ? ? ? ? ? ? ? ?

// 以及表面粗糙度顏色感興趣。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?FragmentCommonData data = UNITY_SETUP_BRDF_INPUT (i.uv); ? ? ? ? ? ? ? ?UnityMetaInput o;

?UNITY_INITIALIZE_OUTPUT(UnityMetaInput, o);

fixed4 c = tex2D (_GIAlbedoTex, i.uv); ? ? ? ? ? ? ? ?

o.Albedo = fixed3(c.rgb * _GIAlbedoColor.rgb); ? ? ? ? ? ? ? ?

o.Emission = Emission(i.uv.xy); ? ? ? ? ? ? ? ?

return UnityMetaFragment(o);

} ? ? ? ? ? ? ? ? ? ? ?

#pragma vertex vert_meta ? ? ? ? ? ?

#pragma fragment frag_meta2 ? ? ? ? ? ?

#pragma shader_feature _EMISSION ? ? ? ? ? ?

#pragma shader_feature _METALLICGLOSSMAP ? ? ? ? ? ?

#pragma shader_feature ___ _DETAIL_MULX2 ? ? ? ? ? ?

ENDCG?

} ? ? ? ? ? ? ?

Tags {"RenderType"="Opaque"} ? ? ? ?

LOD 200 ? ? ? ?

CGPROGRAM ? ? ? ?

// 這是基于物理的標(biāo)準(zhǔn)光照模型,并對所有光照類型啟用陰影 ? ? ? ?

#pragma surface surf Standard fullforwardshadows nometa ? ? ? ?

// 使用 Shader Model 3.0 目標(biāo)以獲得更美觀的光照 ? ? ? ?

#pragma target 3.0 ? ? ? ?

sampler2D _MainTex; ? ? ? ?

struct Input { ? ? ? ? ? ?

float2 uv_MainTex; ? ? ? ?

}; ? ? ? ? ? ? ?

half _Glossiness; ? ? ? ?

half _Metallic; ? ? ? ?

fixed4 _Color; ? ? ? ? ? ? ?

void surf (Input IN,inout SurfaceOutputStandard o){ ? ? ? ? ? ?

// Albedo 來自顏色著色的紋理 ? ? ? ? ? ?

fixed4 c = tex2D (_MainTex, IN.uv_MainTex)* _Color; ? ? ? ? ? ?

o.Albedo = c.rgb; ? ? ? ? ? ?

// Metallic 和 Smoothness 來自滑動條變量 ? ? ? ? ? ?

o.Metallic = _Metallic; ? ? ? ? ? ?

o.Smoothness = _Glossiness; ? ? ? ? ? ?

o.Alpha = c.a; ? ? ? ?

} ? ? ? ?

ENDCG ? ?

} ? ?

FallBack "Diffuse" }


材質(zhì)屬性和 GI 系統(tǒng)的評論 (共 條)

分享到微博請遵守國家法律
洛南县| 西乡县| 团风县| 马鞍山市| 澄迈县| 赤壁市| 榆中县| 绥棱县| 青浦区| 顺昌县| 上饶市| 南雄市| 玉林市| 龙州县| 郴州市| 章丘市| 嵊州市| 保定市| 无极县| 库车县| 镇远县| 原阳县| 桦甸市| 河曲县| 玛多县| 东安县| 怀宁县| 洛浦县| 鄂州市| 塔河县| 武功县| 广昌县| 双辽市| 遵义县| 南通市| 习水县| 新安县| 台湾省| 亳州市| 水富县| 枣强县|