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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

#pragma multi_compile_fwdbase会增加很多个shader variants

發布時間:2024/4/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 #pragma multi_compile_fwdbase会增加很多个shader variants 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#pragma multi_compile_fwdbase是unity內置的用于前向渲染的關鍵字快捷方式,它包含了前向渲染光照計算需要的大多數關鍵字,因此會被shader帶來很多的變體。

下面這個簡單的shader有8個變體:

Shader "James/Texture" {Properties{_MainTex ("Base (RGB)", 2D) = "white" {}}SubShader{Tags { "RenderType"="Opaque" "Queue"="Geometry" }LOD 200Pass{Tags { "LightMode"="ForwardBase" }Lighting OffCGPROGRAM#pragma vertex vert#pragma fragment frag#pragma multi_compile_fwdbaseuniform sampler2D _MainTex;uniform half4 _MainTex_ST;struct vertexIN_base{float4 vertex : POSITION;float2 texcoord : TEXCOORD0;};struct v2f_base{float4 pos : SV_POSITION;half2 uv : TEXCOORD0;};v2f_base vert(vertexIN_base v){v2f_base o;o.pos = UnityObjectToClipPos(v.vertex);o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;return o; }fixed4 frag(v2f_base i) : COLOR{return tex2D(_MainTex, i.uv);}ENDCG}}FallBack Off }

我們來看一下這些變體都有誰:

// Total snippets: 1 // ----------------------------------------- // Snippet #0 platforms ffffffff: Builtin keywords used: DIRECTIONAL DIRLIGHTMAP_COMBINED DYNAMICLIGHTMAP_ON LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING LIGHTPROBE_SH SHADOWS_SCREEN SHADOWS_SHADOWMASK VERTEXLIGHT_ON8 keyword variants used in scene:DIRECTIONAL DIRECTIONAL LIGHTPROBE_SH DIRECTIONAL SHADOWS_SCREEN DIRECTIONAL LIGHTPROBE_SH SHADOWS_SCREEN DIRECTIONAL VERTEXLIGHT_ON DIRECTIONAL LIGHTPROBE_SH VERTEXLIGHT_ON DIRECTIONAL SHADOWS_SCREEN VERTEXLIGHT_ON DIRECTIONAL LIGHTPROBE_SH SHADOWS_SCREEN VERTEXLIGHT_ON

然后我們去掉multi_compile_fwdbase,看一下變體的情況:

// Total snippets: 1 // ----------------------------------------- // Snippet #0 platforms ffffffff:1 keyword variants used in scene:<no keywords defined>

可以看到這個shader就只會生成一個版本。

所以我們在通過shader實現一些效果時,一定要謹慎使用這種內置的快捷方式,它會給shader帶來大量的變體,造成量大又不必要的浪費。

?

轉載于:https://www.cnblogs.com/sifenkesi/p/9942272.html

總結

以上是生活随笔為你收集整理的#pragma multi_compile_fwdbase会增加很多个shader variants的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。