#pragma multi_compile_fwdbase会增加很多个shader variants
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                #pragma multi_compile_fwdbase会增加很多个shader variants
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                #pragma multi_compile_fwdbase是unity內置的用于前向渲染的關鍵字快捷方式,它包含了前向渲染光照計算需要的大多數(shù)關鍵字,因此會被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實現(xiàn)一些效果時,一定要謹慎使用這種內置的快捷方式,它會給shader帶來大量的變體,造成量大又不必要的浪費。
?
轉載于:https://www.cnblogs.com/sifenkesi/p/9942272.html
總結
以上是生活随笔為你收集整理的#pragma multi_compile_fwdbase会增加很多个shader variants的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Python dir和vars的区别
- 下一篇: 使用conda安装pydot及其遇到的问
