Unity 6.3
0 онлайн 8 гостей 3 в системе
Вход

Добавление встроенных наборов ключевых слов

Для создания наборов ключевых слов и вариантов шейдера можно использовать ярлыки директивы шейдера Unity. Например, в следующем примере добавлены ключевые слова и варианты SHADOWS_DEPTH и SHADOWS_CUBE:

#pragma multi_compile_shadowcaster

Горячие клавиши директивы шейдера

Ярлык ключевые слова шейдера Unity добавляет Unity добавляет шейдерный вариант со всеми ключевыми словами Пропуск шейдера, использующий варианты шейдера
multi_compile_fog FOG_LINEAR, FOG_EXP, FOG_EXP2 Да Туман
multi_compile_fwdadd POINT DIRECTIONAL SPOT POINT_COOKIE DIRECTIONAL_COOKIE Нет PassType.ForwardAdd
multi_compile_fwdadd_fullshadows POINT, DIRECTIONAL, SPOT, POINT_COOKIE, DIRECTIONAL_COOKIE, SHADOWS_DEPTH SHADOWS_SCREEN SHADOWS_CUBE SHADOWS_SOFT SHADOWS_SHADOWMASK, LIGHTMAP_SHADOW_MIXING Нет PassType.ForwardAdd. Добавлена возможность для светильников иметь тени в реальном времени.
multi_compile_fwdbase DIRECTIONAL, LIGHTMAP_ON, DIRLIGHTMAP_COMBINED, DYNAMICLIGHTMAP_ON, SHADOWS_SCREEN, SHADOWS_SHADOWMASK, LIGHTMAP_SHADOW_MIXING, LIGHTPROBE_SH Нет PassType.ForwardBase.
multi_compile_fwdbasealpha DIRECTIONAL, LIGHTMAP_ON, DIRLIGHTMAP_COMBINED, DYNAMICLIGHTMAP_ON, LIGHTMAP_SHADOW_MIXING, VERTEXLIGHT_ON, LIGHTPROBE_SH Нет PassType.ForwardBase
multi_compile_instancing INSTANCING_ON. Также добавляет PROCEDURAL_ON, если ваш проект использует процедурное экземплярование. Да Инстансинг
multi_compile_lightpass POINT, DIRECTIONAL, SPOT, POINT_COOKIE, DIRECTIONAL_COOKIE, SHADOWS_DEPTH, SHADOWS_SCREEN, SHADOWS_CUBE, SHADOWS_SOFT, SHADOWS_SHADOWMASK, LIGHTMAP_SHADOW_MIXING Нет Все проходы, которые рисуют свет и тени в реальном времени, за исключением Light Probes.
multi_compile_particles SOFTPARTICLES_ON Да Particle System проходит.
multi_compile_prepassfinal LIGHTMAP_ON, DIRLIGHTMAP_COMBINED, DYNAMICLIGHTMAP_ON, UNITY_HDR_ON, SHADOWS_SHADOWMASK, LIGHTPROBE_SH Да PassType.Deferred
multi_compile_shadowcaster SHADOWS_DEPTH, SHADOWS_CUBE Нет PassType.ShadowCaster
multi_compile_shadowcollector SHADOWS_SPLIT_SPHERES, SHADOWS_SINGLE_CASCADE Да Экранно-пространственные тени.

Удалить варианты

Вы можете использовать директиву skip_variants для удаления ключевых слов, которые вы не используете.

Например, в следующем примере добавлены ключевые слова для набора multi_compile_fwdadd, но удалены варианты POINT и POINT_COOKIES.

#pragma multi_compile_fwdadd
#pragma skip_variants POINT POINT_COOKIE

Подробнее об удалении вариантов см. в Варианты шейдера полосы.

Дополнительные ресурсы