Skip to Content
DocumentationShader ReferenceKeywords Reference

Keywords Reference

Genesis uses URP-compatible shader_feature keywords for every optional code path. The inspector and the Material API set these for you — you rarely touch them by hand — but you need to know they exist to debug variant explosion, batching breaks, and shipped build size.

Keyword listing

Inspector labelShader propertyTypeDefaultDescription
Normal Map_NORMALMAPKeywordSample _BumpMap and apply tangent-space perturbation.
Mask Map_MASKMAPKeywordSample packed metallic/AO/detail/smoothness mask.
Cel Shading_CEL_SHADING_ONKeywordEnable cel shading; pairs with _CEL_MODE_* sub-keywords.
Cel Mode: Stepped_CEL_MODE_STEPPEDKeywordMulti-band cel. Mutually exclusive with _CEL_MODE_RAMP.
Cel Mode: Ramp_CEL_MODE_RAMPKeywordRamp-texture cel. Costs one extra sample.
Rim Lighting_RIM_ONKeywordFresnel-driven rim lighting.
MatCap_MATCAP_ONKeywordSample MatCap by view-space normal.
Specular_SPECULAR_ONKeywordStylized specular highlight.
Translucency_TRANSLUCENCY_ONKeywordWrap-style back-light approximation.
Triplanar_TRIPLANAR_ONKeywordWorld-space triplanar projection. 3x sample multiplier.
Stochastic Sampling_STOCHASTIC_ONKeywordRandomized triplanar variant. 9x sample multiplier.
Layer Textures_LAYER_TEX_ONKeywordEnable layer textures with blend modes.
Height Gradient_HEIGHT_GRADIENT_ONKeywordWorld-Y-driven color gradient.
Outline_OUTLINE_ONKeywordInverted-hull outline pass.
Dissolve_DISSOLVE_ONKeywordNoise-driven clip with edge glow.
Hologram_HOLOGRAM_ONKeywordScan lines + flicker + edge fresnel.
Hit Effect_HIT_EFFECT_ONKeywordColor flash blend driven by _HitEffectAmount.
Vertex Animation_VERTEX_ANIM_ONKeywordEnable vertex animation; specific type set by _VertexAnimType float.
UV Animation_UV_ANIM_ONKeywordEnable UV animation stack.
Stutter_STUTTER_ONKeywordQuantize material updates to _StutterFPS.
Depth Color_DEPTH_COLOR_ONKeywordTint by linear depth — useful for water and fog.

Multi-compile vs shader_feature

Genesis uses shader_feature (not multi_compile) for everything except the URP plumbing keywords. This means unused variants are stripped at build time — toggling a feature off in the inspector also strips its variant if no material in your project uses it.

Want to toggle a keyword at runtime that you never set in any material? Use multi_compile_local or pre-create a material variant with that keyword on.

Setting keywords via material.EnableKeyword instantiates the material and breaks batching. See Scripting Materials for safe patterns.

Last updated on