FireRatShader V1.1.0 Documentation

Introduction

Welcome to the documentation for FireRatShader. This shader is designed to be a powerful but efficient Uber shader that works in VR, Android, Mobile, Windows, and Unity 6 across both render pipelines: Built-in Render Pipeline Universal Render Pipeline

Both pipeline versions share the exact same 828 properties, inspector layout, and feature sets in 100% lockstep parity.

Pipeline Variants & Master Shaders

  • Renderer Requirement: BRP The Built-in RP version only works in projects using the Built-in Render Pipeline. URP The URP version only works in projects using the Universal Render Pipeline.
  • Master Shader Pairs:
    • Master Uber: FireRat/FireRatShader BRP and FireRat/FireRatShader_URP URP — Full-featured master shader for characters, clothing, and props.
    • Two-Pass Transparency: FireRat/FireRatShader_TwoPass BRP and FireRat/FireRatShader_URP_TwoPass URP — Dual-pass rendering (backface depth prepass + frontface) for eliminating alpha sorting artifacts on complex transparent meshes.
    • Shell Fur Extrusion: FireRat/FireRatShader_Fur BRP and FireRat/FireRatShader_URP_Fur URP — Multi-pass vertex shell extrusion (1–8 layers) with wind sway, gravity vectors, and strand noise thinning for furry avatars and plush fabrics.

Use the navigation on the left to jump to a specific feature section. Each section corresponds to a foldout in the material inspector.

VRChat Avatar Setup

The FireRat Shader Avatar Setup tool is a powerful utility designed to automatically generate the necessary VRChat assets (FX Controller, Expressions Menu, and Parameters) to control the shader's features in-game. This saves you the time and effort of manually creating animations and menu toggles.

How to Use

  1. Open the Tool: Navigate to Tools > FireRat Shader > Avatar Setup from the top menu bar in Unity.
  2. Select Your Avatar: In the setup window, select your avatar's descriptor from the "Avatar" object field. The tool will automatically find all Skinned Mesh Renderers on your avatar.
  3. Choose Target Meshes: By default, all found renderers are selected. You can uncheck any renderers that you do not want the generated animations to affect.
  4. Select Features: Use the toggles in the "Feature Selection" area to choose which shader features you want to create menu controls for.
    • Each feature has a master toggle to enable or disable the entire group.
    • Within each group, you can select individual controls (e.g., just an "Enable" toggle, or also a "Width" puppet) to save parameter memory.
    • The "Total Parameter Cost" display at the bottom shows how much of your VRChat parameter budget your selections will use.
  5. (Optional) Merge Controllers: If you are using another system that has its own FX Controller (like GoGo Loco), you can select it in the "Base FX Controller" field. The tool will merge its animations into a copy of that controller instead of the VRChat default.
  6. Generate Assets: Click the "Generate and Merge Assets" button. The tool will create a new folder in Assets/FireRatShader/Generated/[YourAvatarName] containing all the necessary menus, parameters, and animations. It will then automatically assign these to your avatar descriptor.

Important: Two-Step Feature Enablement

For an expression menu control to work in-game, the corresponding feature must be enabled in two places:

  1. In the Material Inspector: You must enable the feature on the material itself (e.g., check the "Enable" box for "Outline").
  2. In the Avatar Setup Window: You must select the corresponding control(s) for that feature (e.g., check "Outline Menu Controls").

This is because the shader is heavily optimized. If a feature is not enabled on the material, its code is completely removed from the shader to save performance. If you generate a menu control for a feature that is disabled on the material, the menu option will appear in-game but will do nothing, because the shader code it's trying to control doesn't exist.

Saved Settings

The tool automatically saves your feature and mesh selections for each avatar. When you select an avatar, it will remember the last configuration you generated for it, making it easy to make small changes without starting from scratch.

Material Inspector Tools

The top of the material inspector provides a toolbar with workflow tools that apply to the whole material. Each foldout section in the inspector also has its own Copy, Paste, and Reset buttons.

Material Locking

Materials can be locked to prevent accidental edits. When locked, every control in the inspector is grayed out and read-only, and the toolbar shows a red 🔒 Material Locked (Click to Unlock) button. Use 🔑 Lock Material on an unlocked material to lock it again.

  • Load Preset and section Paste are disabled on locked materials.
  • Lock state is stored on the material itself (a hidden _MaterialLocked property and override tag), so it persists across saves and applies to all targets when editing multiple materials at once.

Locking Can Optimize Your Shader: Since V1.0.5, locking a material for a specific target (Avatar, World, or Standalone Build) also runs the Material Lock Shader Optimizer. It analyzes which features are actually in use and strips the rest, for example removing the Outline or Refraction passes and dead keyword variants when those features are disabled. This produces a smaller, faster shader variant tuned exactly to your material — ideal for VRChat avatar and world uploads.

Material Presets

Presets let you save the entire material state to a JSON file and load it back onto other materials, making it easy to share or reuse a look across your project.

  • Save Preset... Exports all of the material's float, range, color, vector, and texture properties (including texture tiling and offset) to a JSON file in your project.
  • Load Preset... Imports a previously saved JSON preset onto the selected material. Properties that don't exist on the current shader are skipped. Disabled while the material is locked.
  • Curated Preset Library: A selection of ready-made master presets ship with the package as starting points you can load via Load Preset....

Section Copy / Paste / Reset

Every foldout section in the inspector has Copy, Paste, and Reset buttons in its header.

  • Copy: Copies all properties in that section (floats, colors, vectors, and textures with their tiling/offset) to the shader's clipboard.
  • Paste: Applies the copied section values to the selected material(s). It is only enabled for the same section the values were copied from, and is disabled on locked materials.
  • Reset: Restores the selected section's properties to their shader defaults.

Live Property Search

The inspector toolbar includes a search field that live-filters all material properties by name or label as you type. Matching sections auto-expand so you can immediately see (and edit) every hit, making it fast to locate a specific control among the shader's hundreds of properties. Fuzzy matching tolerates typos and partial words, and clearing the box restores the normal foldout layout.

Performance

Performance Level

This setting provides a master control to quickly set a performance baseline for different platforms without needing to toggle dozens of individual checkboxes. It adjusts the shader's complexity by disabling the most performance-intensive features at lower levels.

  • High: All features are available to be enabled. This is the default setting and offers the highest visual quality.
  • Medium: Disables features that are moderately to highly expensive, providing a good balance between visuals and performance. The following features are disabled:
    • Parallax Mapping
    • Anisotropic Reflections
    • Subsurface Scattering (SSS)
  • Low: Disables a wider range of effects, forcing simpler lighting models and disabling all but the most basic features. This setting is ideal for less powerful hardware or for ensuring maximum performance. In addition to the features disabled in Medium, the following are also disabled:
    • Toon and Stylized PBR lighting modes
    • Crystal and Glitter surface styles
    • Intersection Effect
    • Ripple Effect
    • Vertex Distortion

When a feature is disabled by a performance level, its controls in the material inspector will be grayed out.

Distance LOD Start

Automatically simplifies the shading as the object moves away from the camera. Setting Distance LOD Start to a non-zero distance will progressively disable expensive per-pixel lighting and shading work at that range, trading a little visual fidelity for a large frame-time saving on distant objects. A value of 0 keeps the full-quality shading at every distance (disabled).

Main Settings

Render Mode

Controls the fundamental rendering behavior of the material.

  • Render Mode: Sets the transparency type. Opaque is fastest. Cutout uses an alpha threshold for hard-edged transparency. Transparent allows for soft, blended transparency. Additive adds its color to what's behind it, useful for bright effects. Multiply darkens what's behind it (useful for shadows and tint overlays). Premultiplied blends using premultiplied alpha, giving correct edges for glow/particle-like textures without dark halos.
  • Queue Offset: Offsets the render queue relative to the selected Render Mode.
  • Force Depth Write (ZWrite): Manually controls if the material writes to the depth buffer. Useful for transparent objects that need to occlude others.
  • Alpha Cutoff: The alpha value at which pixels are discarded in Cutout mode.
  • Shadow Cutoff Override: When enabled, uses the Shadow Cutoff value for the shadow-casting pass instead of the material's Alpha Cutoff, so the shadow silhouette can be independently tuned (e.g. tighter or softer than the visible cutout).

Base Appearance

  • Use Base Color: Toggles a solid base color for the material.
  • Color: The main color of the material. Can be hue-shifted.
  • Use Vertex Colors: Tints the material using colors painted onto the model's vertices. Vertex Color Mode selects how they combine with the base color: Replace uses the vertex color outright, Multiply tints the base color, and Add brightens it.
  • Enable Back Face Color: Uses a separate Back Face Color for the back-facing sides of the mesh, letting you color the reverse side differently (useful for thin meshes like wings or clothing). The color can be hue-shifted.
  • Use Base Texture: Toggles the main texture of the material. Tiling and Offset can be adjusted in the texture inspector.

Queue Offset

Fine-tunes the material's render queue position relative to its base render mode. This is essential for resolving z-sorting issues with layered transparent materials like hair, clothing overlays, and accessories.

  • Queue Offset: Shifts the render queue by the specified amount (range: -50 to +50). A higher value renders later (on top), a lower value renders earlier (behind). Default is 0.

Alpha-to-Coverage Sharpening & Mip Scaling

When using Alpha to Coverage in Cutout mode with MSAA enabled, this feature controls the sharpness and distance stability of the anti-aliased edge at the cutout boundary — ideal for hair cards and foliage in VR.

  • A2C Edge Sharpening: Controls the gradient width at cutout edges. 0 uses standard alpha-to-coverage. Higher values produce sharper, crisper cutout edges using screen-space fwidth() derivatives.
  • A2C Mip Scale: Multiplies the derivative divisor across texture mipmap levels to prevent cutout edges from unnaturally thinning out or disappearing at medium-to-far viewing distances in VR headsets.

These controls appear when Render Mode is set to Cutout and Alpha to Coverage is enabled.

Advanced Backface Rendering

Extends the existing Back Face Color feature with support for a completely separate texture and independent emission on back-facing triangles. This is ideal for jacket interiors, capes, double-sided curtains, or any mesh where the inside should look different from the outside.

  • Use Backface Texture: When enabled, samples a separate texture for back-facing triangles instead of using the flat Back Face Color.
  • Backface Texture: The texture applied to back-facing geometry. Uses its own UV tiling and offset controls.
  • Backface Emission Color: An independent emission color applied only to back faces.
  • Backface Emission Strength: Controls the intensity of the backface emission (range: 0–10).

This feature incurs zero cost when disabled. The keyword _BACKFACE_TEX_ON is only compiled into the shader when the toggle is active.

Video Player Mode

Enables compatibility with Unity's Video Player component and AVPro Video. Video textures often require special handling for gamma correction and UV coordinate flipping that standard textures do not need.

  • Video Player Mode: Master toggle that enables video texture handling.
  • Is AVPro: When enabled, applies AVPro-specific corrections: flips the texture's Y coordinate (AVPro outputs upside-down) and applies gamma-to-linear correction (pow(color, 2.2)) since AVPro outputs in gamma space.

When Is AVPro is disabled, the shader assumes a standard Unity Video Player texture which requires no special correction.

Global UV Controls

These controls affect all textures and UV-based effects on the material.

  • Use Ping-Pong Scroll: Animates UVs back and forth instead of in one direction. Provides Speed and Range controls.
  • Scroll Speed X/Y: Scrolls all UVs at a constant speed.
  • Rotation: Rotates all UVs around the center (0.5, 0.5) of the UV space.
  • Projection Mode & UV Set: Many textures in the shader offer two extra selectors. Projection Mode chooses how the texture is mapped onto the model (UV, World Space triplanar, Local Space triplanar, Screen Space, Planar, Spherical, Cylindrical, Biplanar, Panosphere (Equirectangular 360), or Polar Coordinates). A UV Set selector instead picks between UV0 and UV1 for that texture. These appear next to the affected texture's controls.

UV Flow (Pathing)

Animates textures along a vector flow map using two seamlessly crossfading phases, creating continuous directional motion without visible looping — ideal for rivers, conveyor belts, wind streaks, and magic trails.

  • Enable UV Flow (Pathing): Master toggle.
  • Flow Map: RG channels encode direction vectors (0.5 = neutral), with a UV Set selector.
  • Flow Speed / Flow Strength: Animation speed and the magnitude of UV displacement along the flow vectors.
  • Cycle Rate: Frequency of the dual-phase crossfade cycles that keep the motion seamless.

UV Tile Discard

Discards geometry per tile of a 4×4 UV grid (0–1 mapped to each 0.25 tile), letting you toggle clothing parts, accessories, or hair pieces on and off from one mesh without blendshapes. Applied consistently across every pass (main color, outline, shadow, depth).

  • Enable UV Tile Discard: Master toggle.
  • UV Tile Grid (4×4): Clickable grid of 16 tiles; toggled tiles are discarded. Rows map to the texture's V axis (Row 0 at the bottom).

UV Distortion

Warp the UV coordinates using a texture, creating effects like heat haze or water ripples.

  • Distortion Map: A texture whose Red and Green channels control the X and Y offset of the UVs.
  • Strength: The intensity of the distortion.
  • Scroll Speed X/Y: Scrolls the distortion map to animate the effect.

Flipbook Animation

Animates the main texture by treating it as a grid of frames (a spritesheet).

  • Mode: Playback mode (Loop, PingPong, Random).
  • Columns (X) / Rows (Y): The number of frames in the spritesheet grid.
  • Speed (FPS): Animation speed in frames per second.
  • Start Frame: The initial frame of the animation, allowing for an offset.

Stochastic Texture Sampling

Procedurally blends randomized texture samples across triangular lattices to completely eliminate repetitive tiling patterns on large surfaces (floors, walls, terrain).

  • Enable Stochastic Sampling: Master toggle enabling procedural lattice sampling.
  • Stochastic Scale: Controls the scale multiplier for the triangular blending distribution.

Emission (Slots 1 – 4)

Makes the material glow with up to 4 independent emission layers. Requires a Bloom post-processing effect in your scene to see the full effect.

  • Strength: Brightness of the primary glow. Values greater than 1 will bloom.
  • Use Vertex Color for Strength: Modulates emission strength using the model's vertex color (Green channel).
  • Use Emission Mask: Uses a texture to define which parts of the surface emit light. The mask has its own UV Set, Projection Mode, and Mask Scroll Speed X/Y controls.
  • Use Texture Alpha for Emission: Uses the main texture's alpha channel as an emission map. Alpha Emission Strength controls the brightness of this emission.
  • AudioLink Band: When a band other than Off is selected, the emission strength is modulated by that audio band. AudioLink Strength controls how strongly.
  • AudioLink Blink: When a band other than Off is selected in the AudioLink Blink Band selector, the emission stroboscopically blinks with the music.
  • Enable Emission Bloom Clamp: Clamps the maximum perceived HDR luminance of the emission output using a smooth $C^1$-continuous soft-knee compression curve. This prevents high-intensity AudioLink volume spikes or overexposed emission maps from producing blinding whiteouts in VRChat and HDR post-processing bloom pipelines.
  • Max Luminance: The upper luminance threshold ceiling (range: 0.1–50.0).
  • Soft Knee: Controls the softness of the shoulder transition into the luminance clamp (0.0 = hard linear clamp, 1.0 = maximum smooth roll-off).
  • Second / Third / Fourth Emission: Independent secondary, third, and fourth emission maps, each equipped with its own HDR Color tint, Strength multiplier, independent X/Y scrolling animation, and dedicated AudioLink frequency band reactivity.

Fluorescence Emission

Makes the material glow in response to scene light levels — the less light hits it, the more it glows. Perfect for glow-in-the-dark accents, UV-reactive paint, or emergency-lights that only appear in dark rooms.

  • Enable Fluorescence: Master toggle.
  • Fluorescence Map (RGB): Texture defining where the glow appears, with a UV Set selector.
  • Color: HDR color tint of the glow.
  • Strength: Glow brightness.
  • Light Threshold: Light level below which fluorescence activates.
  • Hardness: Transition sharpness between dark and lit states.
  • Glow Only in Dark: When enabled, the glow is restricted to low-light environments (classic glow-in-the-dark).

Transparency

  • Enable Transparency: Makes the object uniformly transparent.
  • Amount: The overall transparency (0=Invisible, 1=Opaque).
  • Enable Fresnel Transparency: Makes the object more transparent in the center and opaque at the edges, based on the viewing angle.
  • Power: Controls the falloff of the fresnel effect.
  • Edge/Center Alpha: Sets the transparency at the grazing edges and the center, respectively.

Enable Dithered Transparency (sorting-free screen-door transparency) and Enable Near Camera Fade are documented in the Transitions section, where they appear in the material inspector.

Procedural Textures

Procedural Texture Generation

This feature allows you to replace the standard base texture with a procedurally generated pattern. This can reduce texture memory usage and allow for dynamic, animated effects without external texture files.

  • Enable Procedural Texture: Toggles the entire feature on or off. When enabled, it overrides the Base Texture and Base Color settings.
  • Mode: Selects the pattern to generate.
    • Noise: A classic, smooth value noise pattern (similar to Perlin noise).
      • Octaves: Adds layers of noise at different scales to create much more detailed and natural patterns (like clouds or marble instead of just a soft blur).
      • Lacunarity: Controls how the frequency of the noise changes with each octave.
      • Gain: Controls how the amplitude of the noise changes with each octave.
    • Voronoi: A cellular pattern, like cracked earth or biological cells.
      • Style: Controls the visual style of the Voronoi pattern.
        • Distance: The current smooth gradient effect.
        • Color: Assigns a random solid color to each cell.
        • Edges: Draws only the borders between the cells for a classic "cracked" look.
    • Stripes: Parallel lines that can be animated or static.
    • Dots: A grid of circles. The Thickness property controls their radius.
    • Checkerboard: A classic alternating square pattern.
    • Bricks: A running bond brick pattern with offset rows.
    • Hexagons: A honeycomb pattern of hexagonal shapes.
    • Squares: A grid of square shapes.
    • Triangles: A triangular grid pattern.
    • Chevrons: A zigzag pattern of V-shapes.
    • Crosshatch: Intersecting diagonal lines.
    • Barcode: Vertical bars of varying widths.
    • Polka Dot Scallop: Overlapping semi-circles in a polka dot arrangement.
    • Rounded Squares: Squares with rounded corners.
    • Woven: A pattern resembling woven fabric or chain-link.
    • Plaid: Intersecting lines of different thicknesses, creating a tartan look.
    • Houndstooth: A classic checker pattern with broken checks.
    • Argyle: A diamond pattern with overlapping circles.
    • Scales: Overlapping semi-circles resembling fish scales.
    • Diagonal Stripes: Diagonal lines across the surface.
    • Herringbone: A pattern of interlocking V-shapes, common in flooring.
    • Sierpinski: The Sierpinski triangle fractal pattern.
    • Box Fractal: A fractal pattern based on repeated squares.
    • Truchet Tiles: A pattern of quarter-circle arcs with random orientations.
    • Truchet Lines: Connected line segments in a maze-like pattern.
    • Spirals: Archimedean spirals emanating from the center.
    • Radar: Concentric circles and radial spokes, like a radar screen.
    • Sine Waves: Horizontal sine wave patterns.
    • Cross Fractal: A fractal pattern based on repeating crosses.
    • Mandelbox: A 2D slice of the 3D Mandelbox fractal.
  • Color 1 / Color 2: The two colors used to create the pattern. The generated value is used to blend between them.
  • Color Shift

    • Color 1 Shift: Toggles hue shifting for Procedural Color 1. The speed is controlled by the global Animation Speed in "Global Color Animation" (Color Controls).
    • Color 2 Shift: Toggles hue shifting for Procedural Color 2. The speed is controlled by the global Animation Speed in "Global Color Animation" (Color Controls).
  • Scale: Controls the size or tiling of the generated pattern.
  • Speed: Controls the speed of the pattern's animation.
  • Coordinate Space: Controls whether the pattern uses UV coordinates or world space positioning.
  • Direction: Controls the animation direction as a 2D vector (X, Y).
  • Thickness: Controls line thickness for patterns, or dot radius for dot patterns. Not applicable to Sierpinski or Checkerboard patterns.
  • Density: Controls the size of pattern elements. Higher values make elements larger.
  • Sparsity: Controls the spacing between elements. Higher values increase spacing.
  • Rotation: Rotates the entire pattern. A value of 0.125 equals 45 degrees.

Procedural Texture Target

This feature allows you to use the generated procedural texture as a mask or input for other shader features, instead of just using it as the base color. This is a powerful way to create complex, dynamic effects by combining procedural patterns with other material properties.

  • Target: Selects where the procedural texture output will be sent.
    • Base Color: (Default) The procedural texture is used as the main albedo/color of the material, overriding the standard Base Texture and Base Color.
    • Emission Mask: The procedural texture controls the intensity of the Emission. The generated pattern will define the glowing parts of the material.
    • Metallic/Gloss Mask: The procedural texture's Red channel controls the Metallic property, and the Green channel controls the Smoothness property. This allows for creating surfaces with procedurally animated metallic or shiny patterns.
    • Detail Mask: The procedural texture acts as a mask for the Detail Texture, controlling where the detail texture is visible.
    • Dissolve Mask: The procedural texture is used as the pattern for the Dissolve effect, allowing you to create animated, procedural dissolve transitions without needing a separate texture map.

Advanced Animation Controls

These controls enable shader-driven animation of time-based effects, offering more precise control than Unity's default time variables.

  • Enable Advanced Animation Controls: Toggles the custom time system. When disabled, the shader uses Unity's default _Time variable.
  • Animation Time Scale: Multiplies the speed of all time-based animations in the shader.
  • Play Mode: Controls how the animation time progresses. Loop cycles from 0 to 1 and repeats. PingPong cycles from 0 to 1 and then back to 0.
  • Animation Offset: Adds a static offset to the animation time, useful for synchronizing multiple animated materials or starting an animation at a specific point.
  • Enable Network-Synced Time: Synchronizes shader continuous animation clocks across network clients via AudioLink / Udon chronological time, completely preventing animation drift between players in VRChat.
  • Photosensitivity Strobe Clamp: Safety feature that limits maximum strobe/flash frequency in Hz across pulse, flicker, and glitch animations to safeguard against epileptic seizures.

Color Controls

A set of controls that affect the final look of the material.

Global Color Animation

This setting controls how all colors with "Animate Hue" enabled will change over time.

  • Enable Global Auto Color Shift: Master toggle that continuously animates every color with a shift control enabled. When disabled, shift sliders hold static or externally animated values.
  • Animation Mode: Can be set to Hue Shift (the default rotating rainbow effect) or Gradient.
  • Animated Gradient: When in Gradient mode, you can provide a texture (like a long, thin gradient) that all animated colors will scroll through. This gives you precise control over the color palette of your animations.
  • Ping-Pong Animation: (Gradient Mode Only) Animates the gradient back and forth instead of looping.
  • Use Vertical Scroll: (Gradient Mode Only) Scrolls the gradient from top to bottom instead of left to right.
  • Animation Speed: Controls the speed of the selected animation mode (rotation speed for Hue Shift, scroll speed for Gradient).

Color Adjustments

  • Hue Shift: Rotates the final color's hue around the color wheel. Combined with "Enable Global Auto Color Shift", this drives the rainbow animation; combined with AudioLink it becomes audio-reactive.
  • Saturation: Multiplies the color saturation (0=Grayscale, 1=Default, 2=Vibrant).
  • Value (Brightness): Scales the HSV value (brightness) of the final color.
  • Desaturation: Blends the final color towards grayscale.
  • Invert Color: Inverts the final color.
  • Final Color Tint: Multiplies a color over the final result, useful for tinting or grading.

RGBA Color Masking & Global Mask Routing

Enables 4 independent color zones and emissive channels driven by the RGBA channels of a single mask texture, allowing complete outfit recoloring and cross-module routing from one material.

  • RGBA Color Mask: The mask texture isolating 4 distinct zones in R, G, B, and A channels.
  • Red / Green / Blue / Alpha Tint: Multiplicative color tint applied to geometry where that channel is active.
  • Red / Green / Blue / Alpha Emission: Independent HDR emission color applied to each zone.
  • Global Mask Channel Routing: Routes individual mask channels (R, G, B, or A) to modulate secondary shader features:
    • MatCap Mask Route: Selects a mask channel to modulate MatCap intensity.
    • Rim Mask Route: Selects a mask channel to isolate Rim lighting.
    • Glitter Mask Route: Selects a mask channel to restrict Glitter sparkles.
    • Dissolve Mask Route: Selects a mask channel to bias or control the Dissolve transition progression.
  • OKLab Color Blending: Enables Björn Ottosson's perceptually uniform OKLab color space blending for color tints, theme colors, and mask transitions. Eliminates the muddy desaturation and dirty gray intermediate colors inherent to naive sRGB/linear lerping.

Global Theme Colors

Defines 4 global master colors that drive a unified theme across multiple materials on an avatar or prop, so base color, outlines, rim, and emission can all pull from the same shared palette modulated by a single source — much like AudioLink's world theme system, but authored on your own materials.

  • Theme Color 1 / 2 / 3 / 4: The four master color slots.
  • Modulation Mode: How the theme colors are animated beyond their static values:
    • Direct: The theme colors are used as-is.
    • AudioLink: A selectable AudioLink Band hue-shifts the theme colors with the music; AudioLink Strength controls the intensity.
    • HueShift: Continuously rotates the theme colors through the color wheel at Hue Shift Speed.
  • Theme Target Mask: A 4-component weight vector routing theme influence to each module — R = Base Color, G = Outlines, B = Rim, A = Emission. Setting a component to 0 keeps that module at its local color; 1 fully drives it from the theme palette.

Color Correction

  • Brightness, Contrast, Gamma: Standard color correction controls.

Pixel Effects

Applies screen-space effects to create retro or stylized looks.

  • Pixelation: Creates a blocky, low-resolution effect. The Amount controls the number of 'pixels' across the texture.
  • Posterization: Reduces the number of colors in the material, creating a "posterized" look. Levels controls the number of color steps per channel.

Color Mask

Uses a texture to mask the material's alpha (visibility), cutting out parts of the surface or restricting the material to specific regions.

  • Color Mask (RGBA): The mask texture. Use its Tiling/Offset to position it, and the UV Set selector to pick between UV0 and UV1.
  • Alpha Source: Selects which channel of the mask drives the alpha: None, R, G, B, or A. The chosen channel is multiplied into the final transparency.

Lighting

Controls how the material reacts to lights in the scene. This section is disabled if a Surface Style like MatCap (only when its Blend Mode is Override), Skybox, or Galaxy is chosen, as they provide their own lighting.

Lighting Modes

  • Unlit: The material is not affected by scene lighting.
  • Basic: A simple Lambertian lighting model.
  • Toon: A two-tone "cel-shaded" look with a hard shadow edge.
  • Stylized PBR: A simplified Physically Based Rendering model for metallic and smooth surfaces.
  • Standard PBR: An industry-standard Physically Based Rendering model using GGX microfacet distribution, reflection probes, and lightmap support.

Properties

  • Shadow Color: The color of the unlit areas of the model. (Applies to Basic and Toon modes).
  • Use Ambient Lighting: Toggles sampling of scene ambient light and reflection probes. Makes lighting more consistent across different worlds. (Applies to Basic, Toon, and Stylized PBR modes). While enabled, two extra selectors appear: Ambient Fallback Mode chooses the fallback lighting model (Flat or Gradient) used when High Quality Ambient (SH) is disabled or unavailable, and Shadowmask Fallback selects how baked shadowmask attenuation is applied (Ambient or Shadow Color).
  • Enable Environment Reflections: Samples reflection probes to add environmental reflections even in Basic/Toon modes, giving surfaces a subtle shiny response to the scene. Strength controls how visible the reflections are, and Roughness controls how blurry they are. (Disabled on Medium/Low performance levels).
  • Enable Custom Cubemap Reflection: Adds a user-provided Custom Cubemap that substitutes or supplements the scene's reflection probes, ideal for local reflections on props or as a fallback in probe-less worlds. Cubemap Tint colors the reflection, Roughness drives its blur (sampled as a mip level), and Blend Mode selects how it combines: Override Probes always adds the cubemap reflection, Fallback When Probes Dark only adds it where the existing probe contribution is nearly black, and Additive stacks it on top unconditionally. Intensity scales the reflection brightness.
  • Enable LTCGI (Area Light GI): Receives real-time Linearly Transformed Cosines (LTC) area-light global illumination from LTCGI-compatible VRChat worlds, letting the material react to polygonal area lights and video screens. Intensity scales the area-light diffuse and specular contribution, and Roughness Multiplier widens/blurs the specular highlight response. (Disabled on Medium/Low performance levels).
  • Unity 6 URP Adaptive Probe Volumes (APV): URP The shader compiles PROBE_VOLUMES_L1 / PROBE_VOLUMES_L2 fragment variants so ambient lighting automatically participates in Unity 6 / URP 17+ Adaptive Probe Volumes, replacing a dense grid of light probes with a single volume that is refined where it matters. No inspector control is required — it activates automatically when APV is enabled in the scene. BRP Not applicable in the Built-in pipeline.
  • Override Scene Light: Ignores the scene's main light and uses custom values instead. Useful for making the material look consistent regardless of the world's lighting. Light Direction sets the direction the light comes from, Light Color tints the light, Light Intensity controls its brightness, and Shadow Strength sets the darkness of the shadowed areas.
  • Min Light Brightness / Max Light Brightness: Clamp the environment and light brightness, so models never become pitch black in dark rooms (Min Light Brightness) or overexposed in bright worlds (Max Light Brightness).
  • Shade Shift Map: A grayscale texture (with a UV Set selector and Strength) that biases the shadow threshold per-pixel, letting you fix clothing folds, muscle creases, and baked ambient occlusion that would otherwise be washed out by toon lighting.
  • Monochrome Lighting: Desaturates scene lighting color so accurate skin tones are preserved regardless of strongly colored world lighting.
  • As-Unlit Lighting: Blends lighting towards a uniform unlit floor in dark environments, keeping the character readable when scene light falls below useful levels.
  • OpenLit Harmony Mode: Switches the diffuse calculation to the OpenLit CC0 standard half-Lambert formula, so your avatar's lighting matches other OpenLit-based avatars (lilToon, Poiyomi) in photo and cross-avatar worlds.
  • VRC Light Volumes: Samples REDSIM's VRCLightVolumes v2 for per-pixel voxel ambient lighting in supported worlds, including their analytic point/spot/area lights. Falls back to standard light probes elsewhere; forced OFF in Medium/Low performance levels.
  • VRSL (VRC Studio Lighting) GI: Real-time reception module for DMX stage fixtures, moving heads, lasers, and club lighting in VRSL-compatible VRChat worlds. Features controls for GI Intensity, Direct Light Intensity, and Specular Highlight Reception.
  • Light Layers: URP Evaluates fragment-level lighting masks matching Unity URP's Rendering Layers (Light Layers). Lights in URP only illuminate geometry whose Mesh Renderer shares at least one matching layer bit. BRP In the Built-in pipeline, all lights illuminate all layers normally.

Toon Mode

  • Threshold/Hardness: Controls the size and sharpness of the shadow edge.
  • 2nd Shadow Tier (Dual-Step Anime Cel Shadows): Adds a second, softer shadow layer beneath the first for multi-tone anime shading. 2nd Shadow Color tints the intermediate shadow band, 2nd Toon Threshold places its boundary, and 2nd Toon Hardness controls how sharp its edge is.
  • Toon Ramp: An optional gradient texture (shadow on the left, light on the right) that defines the exact shading ramp. If no ramp is set, the shader uses flat tone bands instead.
  • Tone Count: The number of lighting bands when not using a ramp texture (TwoTone, ThreeTone, or FourTone).
    • Mid-Color / Mid Threshold: (3+ tones) The color and boundary of the midtone band.
    • Highlight Color / Highlight Threshold: (4 tones) The color and boundary of the brightest band.
  • Step Specular: Turns the specular highlight into a hard, cartoon-style step. Step Specular Threshold places the highlight boundary and Step Specular Hardness controls its edge sharpness.
  • Shadow Border: Offsets the Toon shadow line boundary, letting you grow or shrink the lit area without touching the threshold ramp.
  • Shadow Blur: Softens the Toon shadow step for smoother cel transitions.
  • AO Shadow Modulation: Uses the mesh's ambient occlusion map to push crevices and folds into shadow, grounding the cel shading.

Stylized PBR Mode

  • Normal Map/Strength: Adds surface detail using a normal map texture. The Normal UV Set selector chooses between UV0 and UV1 for the normal map, and Flip Normal Map Y inverts the Green channel to convert between DirectX and OpenGL normal map formats.
  • Detail Normal System (1–4 Layers + Bicubic): Micro-surface detail normal stacking supporting up to 4 independently scrolled and scaled detail normal layers:
    • Bicubic Normal Filtering: 5-tap Catmull-Rom bicubic spline filtering eliminating bilinear texel grid diamond artifacts at close inspection distances in VR.
    • Detail Layers (1 to 4): Dynamically enables independent layers 1 through 4 with individual strength scales, UV coordinate sets (UV0/UV1), and continuous UV scroll velocities.
    • Normal Blend Mode: Selects between standard Whiteout / UDN blending and high-fidelity Reoriented Normal Mapping (RNM).
    • Detail Normal Distance Fade: Automatically attenuates high-frequency detail normal strength across distance to suppress shimmering and temporal aliasing in VR headsets.
  • Metallic/Smoothness: Controls the metal-like and shiny properties. These can be set with sliders or controlled by a Metallic/Gloss Map, where the Red channel controls metallic and the Alpha channel controls smoothness.
  • Workflow: Switches between the Metallic workflow (Metallic/Smoothness sliders and Metallic/Gloss Map) and the Specular workflow, which uses a Specular Color and a Specular Gloss Map (RGB = specular color, A = smoothness) instead.
  • Enable Clear Coat: Adds a transparent protective layer over the surface, like clear coat paint. Strength controls how visible the coat is and Roughness how blurry its highlight is.

Standard PBR Mode

  • Normal Map/Strength: Adds surface detail using a normal map texture. The Normal UV Set selector chooses between UV0 and UV1 for the normal map, and Flip Normal Map Y inverts the Green channel to convert between DirectX and OpenGL normal map formats.
  • Detail Normal System (1–4 Layers + Bicubic): Identical 4-layer detail normal chaining with bicubic Catmull-Rom reconstruction and RNM blending.
  • Metallic: Controls the metal-like properties of the surface.
  • Workflow: Switches between the Metallic workflow and the Specular workflow, which uses a Specular Color and a Specular Gloss Map (RGB = specular color, A = smoothness) instead of metallic.
  • Roughness Map/Roughness: Controls the roughness of the specular reflections. A higher roughness creates a broader, more blurry reflection. If no roughness map is set, it falls back to the inverse of the Metallic/Gloss Map's Alpha channel (smoothness).
  • Occlusion Map/Occlusion Strength: Simulates self-shadowing in crevices using an occlusion map.
  • Detail Mask: A mask texture to control where the secondary Detail Texture is applied.
  • Use High Quality Ambient (SH): Enables vertex-evaluated Spherical Harmonics ambient lighting for high-quality indirect diffuse light. When disabled, a fast sky-ground gradient fallback is used instead. Automatically supports lightmap sampling on static objects.
  • Enable Clear Coat: Adds a transparent protective layer over the surface, like clear coat paint. Strength controls how visible the coat is and Roughness how blurry its highlight is.
Subsurface Scattering (SSS)

Simulates light passing through and scattering within thin or translucent objects, like skin, wax, or leaves. This adds a soft, glowing look from behind the object.

  • Enable Subsurface Scattering: Toggles the effect on or off.
  • SSS Scale: The overall strength of the SSS effect.
  • SSS Radius: Controls how far light scatters within the material. Larger values create a softer, more diffuse look.
  • SSS Tint: The color tint applied to the scattered light.
  • Enable Thickness Map: Uses a grayscale texture to control how much light passes through different areas, simulating thin parts (ears, leaves, fabric) glowing more. Thickness Strength scales the effect.
Anisotropic Reflection

Creates stretched or elongated specular highlights, common on surfaces with a grain or direction, like brushed metal, hair, or vinyl records.

  • Enable Anisotropic Reflection: Toggles the effect on or off.
  • Mode: Switches between Ward (a general model) and Stretched-Blinn (which uses a Tangent Map for more precise control).
  • Roughness U / V: Controls the roughness (and thus the highlight size) independently along two perpendicular directions (U and V). The difference between these values creates the stretching.
  • Specular Strength: The overall brightness of the anisotropic highlight.
  • Tangent Map: (Stretched-Blinn mode only) An optional texture map that defines the direction of the surface grain, giving precise control over the highlight's orientation.

Dedicated Shading Models

Specialized shading models for organic surfaces. These apply regardless of the selected lighting mode.

  • Enable Eye Iris Parallax: Simulates the depth and refraction of a pupil and iris beneath a transparent cornea. Iris UV Tiling scales the iris texture, Iris Depth Offset controls the simulated refraction depth, and Pupil Scale controls the size of the pupil.
  • Enable Internal Parallax (Gems / Eye Layers): Simulates layered interior depth beneath glass, lenses, crystals, and anime irises by ray-offsetting a texture in tangent space across multiple sample steps, creating believable "thickness" under a transparent surface. Internal Layer Texture is the interior depth texture (with its own tiling/offset), Layer Color tints the interior layer and supports the global color-shift timeline, Depth Scale controls how deep the simulated interior sits, Sample Steps sets how many layers of light are traced through it (1–10), Layer Strength scales the layer's opacity, and Emissive Boost adds an internal glow to make the interior surface appear self-lit.
  • Enable Skin Diffuse Wrap: Softens the lighting on curved organic surfaces by wrapping light around the shadow terminator, reducing harsh shadow lines. Wrap Amount controls how much light wraps around.
  • Enable Hair Specular (Kajiya-Kay): Adds anisotropic highlights styled specifically for hair strands, producing bright streaks aligned with the hair direction. Specular Color tints the highlights, Primary/Secondary Exponent control the sharpness of the two highlight streaks, Specular Strength controls brightness, and Specular Shift moves the highlights along the hair direction.
SDF Face Shadows

Clean, stable anime face shadows using a Signed Distance Field map instead of geometric normals — the standard technique for preventing messy shadow artifacts on stylized faces as the light direction changes.

  • Enable SDF Face Shadows: Master toggle.
  • Face Shadow Map (SDF): The SDF face shadow texture encoding light threshold gradients (the same maps used by other anime shaders).
  • Face Shadow Offset: Offsets the front/back shadow threshold angle.
  • Face Shadow Softness: Softens the SDF shadow edge boundary.
  • Invert Face Shadow: Inverts the SDF shadow gradient for maps authored with opposite conventions.

Geometric Specular Anti-Aliasing

Reduces specular shimmer, flickering, and firefly artifacts on dense meshes and detailed normal maps. This is especially valuable in VR headsets where high-frequency specular highlights cause distracting visual noise. Based on the Kaplanyan 2016 technique used in AAA game engines.

  • Geometric Specular AA: Master toggle to enable the effect.
  • Variance: Controls how aggressively the specular lobe is widened based on screen-space normal variation. Higher values produce smoother specular but may lose fine detail. Default: 0.15.
  • Threshold: Caps the maximum roughness adjustment to prevent over-blurring on extremely dense geometry. Default: 0.2.

This control only appears when the Lighting Mode is set to Stylized PBR or Standard PBR. It has zero cost when disabled.

Surface Style

Defines the fundamental appearance of the surface, often overriding standard lighting. Only one style can be active at a time.

Crystal

Simulates a refractive, crystalline material. It distorts the view of the texture behind it and can add chromatic aberration for a more stylized look. This effect works best with a base texture enabled.

  • Refraction Noise Map: A noise texture used to control the pattern of the distortion.
  • Refraction Strength: Controls how strongly the texture is distorted.
  • Chromatic Aberration: Simulates color separation by offsetting the red and blue color channels, creating colored fringes at the edges of the distortion.

Galaxy

Renders a texture that appears to have depth and moves independently of the object's rotation, creating a "window into space" effect. This style disables standard scene lighting.

  • Galaxy Map: The texture to display inside the object.
  • Depth: Creates a 2D parallax effect based on view angle, making the texture appear to have depth.
  • Rotation Speed: Rotates the galaxy texture over time.

Skybox

Reflects a cubemap from the inside of the object, making it look like a portal or a window into another environment. This style disables standard scene lighting.

  • Skybox Cubemap: The cubemap texture to display.
  • Rotation Speed: Rotates the reflected skybox around the vertical axis over time.

Tri-Planar Mapping

Projects a texture onto the model from the top, front, and side, then blends them together. This is an effective way to texture complex models without needing perfect UV maps, as it avoids stretching and seams.

  • Tri-Planar Texture: The texture to project onto the model.
  • Scale: Controls the size (tiling) of the projected texture.
  • Blend Sharpness: Controls how sharply the textures from the three different projections blend into one another. Higher values create a harder edge.

MatCap (Material Capture)

A lighting technique that uses a special "material capture" texture to define an object's complete lighting and reflection information. It's a very fast way to get complex, stylized lighting effects. This style disables standard scene lighting.

  • MatCap Texture: The texture that defines the object's appearance. It's typically a sphere rendered with the desired lighting.
  • Intensity: A multiplier to control the brightness of the MatCap effect.
  • Blend Mode: How the MatCap combines with the material's base color. Override fully replaces it, Multiply tints it, Additive brightens it, and Screen gives a softer brightening.
  • MatCap Mask (R): An optional texture whose Red channel restricts where the MatCap is visible. White areas show the MatCap, black areas fall back to the base color. Its UV Set selector picks between UV0 and UV1.

MatCap 2 (Secondary Layer)

A second, independently controlled MatCap layer blended on top of the first for multi-layer material capture looks (e.g. a stylized base layer plus a glossy rim layer).

  • Enable MatCap 2: Toggles the secondary MatCap layer.
  • MatCap 2 Texture / Intensity / Blend Mode: The same controls as the primary MatCap (blend modes: Add, Multiply, Replace, Lighten, Overlay).
  • MatCap 2 Mask (R): An optional texture whose Red channel restricts where the second layer is visible, with its own UV Set selector.
  • MatCap Normal Perturbation: How strongly the surface normal map perturbs the MatCap sampling direction, letting baked normal detail affect the captured lighting.
  • MatCap Perspective Correction: When enabled, corrects the MatCap UVs for per-view perspective so the capture stays stable when viewed from an angle, improving VR comfort.

Iridescence

Creates a rainbow-like effect where the color shifts based on the viewing angle, similar to a soap bubble or an oil slick. This effect is blended over the existing surface color and lighting.

  • Color Scale: Controls the frequency of the color shifting across the surface. Higher values create more, tighter rainbow bands.
  • Strength: Controls how strongly the iridescent color is blended with the base color.

Glitter

Adds an animated, sparkling glitter effect to the surface. This effect is applied after lighting.

  • Blend Mode: Controls how the glitter is blended with the underlying surface color. Additive can get very bright. Lerp replaces the base color (emissive). Max ensures it's never darker than the glitter color.
  • Color: The color of the glitter sparkles. Can be animated with "Animate Hue".
  • Scale: Controls the size of the glitter noise pattern. Higher values mean smaller, finer sparkles.
  • Sparsity: Controls how many sparkles appear. Higher values mean fewer, more sparse sparkles.
  • Shape: Selects the sparkle shape: Random (the default noise-based sparkles), Circle, Square, or Star. The shape-based options render a tiled grid of that shape instead of random sparkles.
  • Use Screen Space: Bases the glitter pattern on screen coordinates instead of the model's UVs. This makes the glitter appear to "swim" across the surface as the camera or object moves.
  • Use Scrolling Animation: Changes the animation from sparkles "popping" in and out to a smooth, scrolling noise pattern.
  • Pop/Scroll Speed: Controls the speed of the chosen animation style.

Psychedelic

Applies domain-warped fractal Brownian motion (FBM) noise that creates flowing, organic color patterns. The effect is linked to the Global Color Shift timeline for synchronized color animation.

  • Coordinate Space: Controls whether the pattern uses world space, screen space, or UV coordinates.
  • Hue Shift Scale: Multiplier for how strongly the psychedelic pattern shifts colors.
  • Flow Speed: Speed at which the psychedelic noise flows across the surface.

3D Fractal

Renders a volumetric fractal using raymarching techniques. This creates complex, infinite 3D structures that appear to extend infinitely into the object. This style disables standard scene lighting and uses a custom raymarching renderer.

Performance Warning: 3D Fractal uses computationally intensive raymarching. Use low iteration counts (4-8) on mobile/VR platforms. Higher iterations can cause significant frame rate drops.

Fractal Types

  • Mandelbulb: The 3D extension of the Mandelbrot set. Creates bulbous, organic shapes with variable power parameter.
  • Menger Sponge: A 3D fractal based on repeatedly removing cubes from a larger cube. Creates intricate, sponge-like structures.
  • Kaleidoscopic IFS: Iterated Function System with kaleidoscopic symmetry. Creates complex, mirrored patterns.
  • Mandelbox: A fractal based on box folding and sphere folding operations. Creates blocky, crystalline structures.
  • Julia Set 3D: A complex number extension of the Julia set in 3D space with coupling between dimensions.
  • Sierpinski Tetrahedron: The 3D Sierpinski fractal based on tetrahedron subdivision.
  • Apollonian Gasket: A fractal based on mutually tangent circles/spheres.
  • Burning Ship: A variation of the Mandelbrot set using absolute values, creating "ship-like" structures.
  • Tricorn: The conjugate of the Mandelbrot set, creating different symmetry patterns.
  • Mandelbulb Power 2: Standard Mandelbulb with fixed power of 2 and higher iteration count.
  • Mandelbulb Power 8: Mandelbulb with fixed power of 8, creating more detailed, spiky structures.
  • Quaternion Julia: A true 4D quaternion Julia set for mathematically correct quaternion fractals.
  • IFS Tetrahedron: Iterated Function System based on tetrahedron vertices.
  • Octahedron: Platonic solid fractal based on octahedron symmetry.
  • Dodecahedron: Platonic solid fractal based on dodecahedron symmetry with golden ratio proportions.
  • Icosahedron: Platonic solid fractal based on icosahedron symmetry with golden ratio reflections.
  • Cubic Fractal: Simple fractal based on repeated cube subdivision.
  • Hybrid Box-Bulb: Combination of Mandelbox and Mandelbulb techniques for unique hybrid structures.

Core Properties

  • Fractal Type: Selects which fractal algorithm to use from the list above.
  • Repetition Mode: Controls how the fractal repeats in space.
    • Single Instance: One fractal object, fastest performance.
    • Repeated (Clipped): Fractal repeats in a grid but is clipped to prevent infinite computation.
    • Endless: True infinite fractal, most computationally expensive.
  • Scale: Controls the overall size of the fractal structure.
  • Animation Mode: How the fractal animates over time.
    • None: Static fractal.
    • Yaw: Rotates around the Y-axis.
    • Pitch: Rotates around the X-axis.
    • Roll: Rotates around the Z-axis.
    • Tumble: Complex rotation combining multiple axes.
    • Sway: Gentle oscillating motion.
    • Pulsate: The fractal appears to inflate and deflate.
  • Animation Speed: Controls how fast the chosen animation plays.

Fractal-Specific Properties

These properties change based on the selected fractal type:

  • Mandelbulb Power: Controls the power parameter (typically 2-8) for bulb-like fractals.
  • Iterations: Number of fractal iterations. Higher values = more detail but slower performance. Most fractals work well with 4-12 iterations.
  • Box Scale (Mandelbox): Scale factor for box folding operations. Negative values (-2 to -1.5) create interesting visuals.
  • Hybrid Scale (Hybrid Box-Bulb): Scale factor for the hybrid fractal. Try values between 1.5 and 3.0.
  • Angles (Kaleidoscopic IFS): Rotation angles for the kaleidoscopic IFS symmetry.
  • Julia C Constant: The complex/quaternion constant that defines the Julia set shape. Try small values like (-0.2, 0.6, 0.2, 0.2) and animate for morphing effects.

Color Properties

  • Fractal Depth Hue Shift: Shifts colors based on raymarching depth for rainbow effects.
  • Auto Hue Shift: Automatically animates the color shifting over time.
  • Auto Shift Speed: Speed of the automatic color animation.

Overlays

These effects are drawn on top of the base surface.

Grid

Overlays a procedural geometric pattern on the surface. This is a powerful feature for creating sci-fi, holographic, or abstract visuals. It has many properties to customize its appearance and animation.

Core Properties

  • Pattern: Selects the geometric pattern from the list below. Each pattern may have unique behaviors or properties. The pattern library is shared with the Procedural Texture feature.
  • Color: The color and transparency of the grid pattern. Can be hue-shifted.
  • Coordinate Space: A projection selector that maps the pattern onto the model: UV sticks to the surface, World Space (Triplanar) makes it appear to "swim" over the surface as the object moves, and additional local, screen, planar, spherical, cylindrical, and biplanar projections are available.
  • Grid Tiling X/Y: Independent horizontal and vertical tiling multipliers for the pattern.
  • Density: Controls the tiling or frequency of the pattern. Higher values mean a denser pattern.
  • Sparsity: Controls the spacing between pattern elements. Higher values increase the spacing.
  • Thickness / Size / Fill: This property's function changes based on the selected pattern. It can control line thickness, dot radius, or the fill amount for certain patterns.
  • Rotation: Rotates the entire grid pattern.
  • Use Fill Style: For patterns like Squares, Triangles, and Hexagons, this toggles between an outline and a filled shape. For fractal patterns, it can have a more complex effect on the final look.

Pattern Descriptions

  • Noise: A smooth value noise pattern with Octaves, Lacunarity, and Gain controls.
  • Voronoi: An organic, cell-like pattern with a selectable style (Distance, Color, Edges). Can be animated to morph over time.
  • Stripes: Parallel lines that can be animated or static.
  • Dots: A grid of circles. The Thickness property controls their radius.
  • Checkerboard: A standard checkerboard pattern. This is a binary fill pattern (Thickness does not apply).
  • Bricks: A classic running-bond brick pattern.
  • Hexagons: A honeycomb pattern of hexagonal shapes. Can be outlines or filled.
  • Squares, Triangles: Classic tessellating geometric shapes. Can be outlines or filled.
  • Chevrons: A pattern of V-shapes.
  • Crosshatch: Intersecting diagonal lines. Can be outlines or filled diamonds.
  • Barcode: Vertical bars of varying widths.
  • Polka Dot Scallop: Overlapping semi-circles in a polka dot arrangement. The Thickness property controls dot size.
  • Rounded Squares: Squares with rounded corners.
  • Woven: A pattern that resembles a woven basket or chain-link fence.
  • Plaid: Intersecting lines of different thicknesses, creating a plaid or tartan look.
  • Houndstooth: A classic checker pattern with broken checks.
  • Argyle: A diamond pattern with overlapping circles.
  • Scales: A pattern of overlapping semi-circles, like fish scales.
  • Diagonal Stripes: A simple pattern of diagonal lines.
  • Herringbone: A pattern of interlocking V-shapes, common in flooring and textiles.
  • Sierpinski: The Sierpinski Carpet fractal. This is a fill-only pattern (Thickness does not apply).
  • Box Fractal: A fractal pattern based on repeating squares. Has its own Use Fill Style toggle.
  • Truchet Tiles: A pattern of quarter-circle arcs with random orientations, creating complex, maze-like visuals.
  • Truchet Lines: Connected line segments in a maze-like pattern.
  • Spirals: Archimedean spirals emanating from the center of the coordinate space.
  • Radar: Concentric circles and radial spokes, like a classic radar screen.
  • Sine Waves: A pattern of horizontal sine waves.
  • Cross Fractal: A fractal based on repeating crosses.
  • Mandelbox: A 2D slice of the 3D Mandelbox fractal, creating intricate blocky structures. Has its own Use Fill Style toggle.

Animation

  • Pulse Mode: Animates the grid. Intensity pulses the grid's transparency between a defined min/max range. Color pulses the grid's color towards its hue-shifted variant.
  • Enable Scrolling: Animates the grid by scrolling it across the surface. For radial patterns like Spirals and Radar, this controls radial (in/out) and angular (spin) motion.

Depth-Based Color

When Use Depth-Based Color is enabled, the grid will change its color when it gets close to another object's surface. This requires scene depth information and may not work with all rendering setups. Depth Color sets the target color, and Depth Range controls the distance of the effect.

Grid Mask

Allows you to use a texture to mask the grid effect, controlling where it appears on your model. This is useful for restricting the pattern to specific areas without needing to create separate materials.

  • Use Grid Mask: Toggles the masking feature on or off.
  • Grid Mask: The texture used to mask the grid. The grid pattern will only appear where this texture is white (based on the red channel).
  • Invert Mask: Inverts the mask, so the grid pattern appears where the mask texture is black.

Detail Texture

Blends a secondary texture over the base material. This is a powerful way to add high-frequency detail, like fabric weaves, scratches, or grunge, without needing a high-resolution base texture.

  • Detail Texture: The secondary texture to overlay. It's often a small, tileable grayscale texture.
  • Blend Mode: How the detail texture combines with the base color: Overlay, Multiply, Additive, or Soft Light.
  • Intensity: How strongly the detail texture is blended with the base material.

Scanlines

Simulates the look of a retro CRT monitor by overlaying a pattern of dark, scrolling lines. This screen-space effect is great for holographic displays, computer terminals, or retro-futuristic aesthetics.

  • Color: The color and transparency of the scanlines. Typically black with some transparency.
  • Density: How many scanlines appear on screen.
  • Speed: How fast the scanlines scroll.
  • Thickness: The thickness of the scanlines.
  • Direction: The direction of the scanlines (Vertical or Horizontal).

Interlacing

A simple but effective screen-space effect that darkens every other horizontal row of pixels on the screen. This mimics the look of old interlaced video signals, adding a subtle retro or lo-fi quality to the material.

  • Intensity: How dark the interlaced lines are. A value of 1 will make them completely black.

Noise/Grain

Adds a layer of animated noise over the final color, similar to film grain or digital sensor noise. This screen-space effect can be used to add texture, break up smooth gradients, or enhance a lo-fi or cinematic aesthetic. The animation is stepped, not smooth, to better simulate digital noise.

  • Color: The color of the noise particles. Can be a solid color or hue-shifted.
  • Intensity: The strength of the noise effect.
  • Animation Speed: The 'frames per second' of the noise animation. Lower values look like slow-updating static, while higher values resemble fast film grain.

Wetness

Simulates a wet surface by darkening the material, boosting its smoothness, and optionally adding animated rain ripples. Great for rainy scenes, recently drenched props, or watery creatures.

  • Wetness Strength: The overall intensity of the wet look.
  • Darkening: How much the surface darkens when wet.
  • Wet Smoothness: The smoothness boost applied to wet areas, sharpening specular highlights.
  • Rain Ripple Map: A normal map used for the rain ripple animation. The ripples use the map's normal data to distort reflections.
  • Ripple Scale: The size of the rain ripple pattern.
  • Ripple Speed: How fast the ripples animate.

Decal

Overlays up to three independent textures onto the surface like stickers or painted emblems, without needing a separate decal projection setup. Each decal layer has its own texture, UV set, blend mode, strength, and rotation, and can be enabled or disabled individually.

  • Enable Decal 1/2/3: Toggles each decal layer on or off.
  • Decal Texture: The texture to overlay. Use its Tiling/Offset to position it.
  • Decal UV Set: Selects the coordinate channel (UV0 or UV1) for the decal.
  • Blend Mode: How the decal blends with the base color (Alpha Blend, Multiply, Additive, Lighten, or Overlay).
  • Strength: The overall opacity/strength of the decal.
  • Rotation: Rotates the decal around the center of the UV space (0–360 degrees).
  • AudioLink Band / Strength: Each decal has an AudioLink band selector and strength multiplier, letting the decal pulse or fade with the music (e.g. a beat-synced logo or muzzle flash).

PBR Decals

Each of the shader's three decal layers now supports PBR (Physically Based Rendering) overrides. When enabled, a decal can modify the surface's normal map, metallic, and smoothness values in addition to its base color — allowing physically accurate decals like metallic bolts, bumped scars, leather patches, or glossy stickers.

  • Affects PBR: Per-decal toggle that enables the PBR properties below.
  • Decal Normal Map: A tangent-space normal map applied in the decal's UV region. Blended with the surface normal using the decal's alpha as the blend factor.
  • Normal Strength: Controls the intensity of the decal's normal map (range: 0–2).
  • Metallic: Overrides the surface metallic value within the decal region (range: 0–1).
  • Smoothness: Overrides the surface smoothness within the decal region (range: 0–1).

The PBR overrides are blended using the decal texture's alpha channel multiplied by the decal strength, so they naturally fade at the decal's edges. This feature is available on all three decal layers independently.

Hologram

Simulates a sci-fi holographic projection with animated scanlines, a glowing edge rim, and subtle flicker. It is layered over the existing surface color and lighting, making it ideal for projected displays, force-field emitters, and holographic avatars.

  • Hologram Color: The color tint of the hologram projection. Can be hue-shifted.
  • Scanline Tiling: The density of the horizontal hologram scanlines.
  • Scanline Speed: How fast the scanlines sweep across the surface.
  • Rim Power: The falloff sharpness of the hologram's edge glow.
  • Hologram Strength: How strongly the hologram blends over the base surface.
  • Alpha Modulation: Modulates the material's transparency with the scanline pattern, adding a flickering, translucent quality.

Effects

A collection of miscellaneous visual effects.

Rim Glow

Adds a glow to the edges of the object based on the viewing angle (a Fresnel effect). This is great for highlighting silhouettes.

  • Use Gradient: If enabled, uses a gradient texture to color the rim glow instead of a solid color.
  • Color / Gradient: The color or texture ramp for the rim glow.
  • Power: Controls the falloff of the rim effect. Higher values create a tighter, sharper rim.
  • Intensity: The brightness of the rim glow.
  • Rim Mode: Switches between Outer (glow on the outer silhouette edge) and Inner (inverted, glowing toward the interior).
  • Rim Depth Mode: Switches the rim response between Fresnel (based on viewing angle) and Depth (based on scene depth, highlighting where the object is close to other geometry). Rim Depth Width controls the width of the depth-based rim band. Depth mode requires scene depth information.
  • Environmental Rim: Tints and modulates the rim glow using ambient spherical harmonics and reflection probes, so the rim reacts to the surrounding environment instead of a fixed color.

Intersection Effect

Creates a visual effect where the material's surface interacts with other objects in the world. This is ideal for force fields, liquid surfaces, or soft proximity indicators. This effect requires the material's Render Mode to be set to Transparent or Additive.

  • Mode: Selects the effect's behavior. Color fades to a specified color at the intersection point. Alpha fades out the object's transparency at the intersection point, creating a soft blend.
  • Color: The color that appears at the point of intersection (only in Color mode).
  • Distance: The distance from an intersection over which the effect will fade in.

Pulse

Adds a pulsing animation to the material's emission strength, creating a "heartbeat" effect.

  • Speed: How fast the emission pulses.
  • Intensity: How bright the pulse is.

Outline

Renders a solid outline around the object. The outline will be correctly hidden by effects like Dissolve and Clipping Mask.

Performance Impact: Outlines can be expensive as they require an additional rendering pass.

  • Color: The color of the outline.
  • Outline Space: Chooses between Screen Space (constant screen pixel width), Local Space (scales with both distance and object scale), and World Space (scales with distance, independent of object scale).
  • Width: The width of the outline.
  • Use Vertex Color for Width: Uses the mesh's vertex colors (Red channel) to control the outline width, allowing for artistic variation.
  • Outline Min Width / Max Width: Clamp the outline width so it never grows past Max Width at close range or shrinks below Min Width in the distance, preventing outlines from overwhelming or disappearing at different camera distances.
  • Outline Normal Source: Selects which vertex stream supplies the smoothed normals used to push the outline out: Mesh Normals, Vertex Colors, UV2, or UV3. Picking a baked vertex stream (Vertex Colors / UV2 / UV3) eliminates the split-normal seams common on low-poly meshes.
  • Outline Noise Scale / Speed / Strength: Applies an animated noise jitter to the outline vertices for a lively, hand-drawn or burning edge effect. Scale sets the noise frequency, Speed its animation rate, and Strength how far the vertices jitter.
  • Outline Pulse Speed / Strength: Makes the outline "breathe" by oscillating its width over time. Pulse Speed sets the oscillation rate and Pulse Strength sets the amplitude of the pulsing.

Outline Texture & Gradient

  • Outline Texture: An optional texture that tints and modulates the outline color. Its UV Set selector picks between UV0 and UV1, and Scroll Speed X/Y scroll the texture across the outline.
  • Enable Outline Gradient: Tints the outline from a Gradient Top Color to a Gradient Bottom Color based on the vertical position on the object, for a two-tone gradient outline.

Outline Stencil Buffer Controls

Allows independent stencil testing and writing specifically during the inverted-hull outline pass. This is crucial for preventing outlines from overlapping or dirtying inner face meshes, hair strands, or layered clothing.

  • Stencil Ref: The reference stencil value for the outline pass (0–255).
  • Read / Write Mask: Bitmasks controlling which bits of the stencil buffer the outline pass reads or writes.
  • Comparison (Comp): Stencil comparison function against the current buffer (e.g. NotEqual to skip drawing outlines over interior surfaces stamped with matching stencil IDs).
  • Pass / Fail / ZFail: Stencil buffer operations performed on pass, test failure, or depth test failure.

Shell Fur Extrusion

Available when using the FireRat/FireRatShader_Fur BRP or FireRat/FireRatShader_URP_Fur URP master shader variants. Extrudes up to 8 concentric shell layers along vertex normals to render volumetric fur, velvet, and plush textures.

  • Shell Layers: Number of active extruded shell passes (1 to 8). Inactive passes collapse to zero vertices with 0% rasterization cost.
  • Length: Physical extrusion distance of the fur strands in object/world units.
  • Fur Mask Texture: Grayscale noise map controlling strand distribution and density across the surface.
  • Density: Tiling frequency of the fur strand noise pattern.
  • Tip Thinning: Progressively sharpens strand alpha thresholds toward outer shell layers.
  • Gravity Vector: Direction and magnitude of physical gravity pulling fur tips downward.
  • Wind Speed & Strength: Procedural wave oscillation simulating breeze rustling through fur.
  • Root & Tip Colors: Two-tone vertical color gradient from strand base to outer tip.
  • Root AO Shadowing: Simulates ambient occlusion darkening at the base of the fur coat.

Ripple Effect

Creates a concentric ripple effect that distorts vertices and color, emanating from a point in the object's UV space.

  • Center (UV): The origin of the ripples in UV space (X,Y).
  • Ripple Count: The number of concentric ripple rings.
  • Fadeout Radius: The distance from the center at which the ripples fade out completely.
  • Width: The width of each individual ripple ring.
  • Color: The color of the ripples.
  • Strength: The brightness of the ripple color.
  • Distortion Strength: How much the ripple displaces the model's vertices along their normals.
  • Progress / Animate: Manually control or automatically animate the ripple's phase.

Vertex Animation Texture (VAT)

Applies pre-baked vertex animation from a texture instead of a Skinned Mesh Renderer. Each row of the texture is a frame of the animation. Useful for pre-baked cloth, fluids, destruction, or any heavily animated mesh that needs to stay performant.

  • Position Texture: The VAT texture containing the position offsets. Each row is a frame.
  • Frame Count: The total number of animation frames in the texture.
  • Speed: The playback speed of the vertex animation.
  • Bounds Min / Bounds Max: The bounds used to remap the packed vertex positions back to world space. These must match the bounds used when baking the animation.

PS1 Retro Vertex Snapping

Quantizes vertex positions to a coarse grid to emulate the classic wobbly PlayStation 1 aesthetic. Great for retro-styled avatars and worlds, especially combined with pixelation and affine-style textures.

  • Enable PS1 Vertex Snapping: Master toggle.
  • Snap Resolution: The grid resolution vertices snap to (higher = finer wobble).
  • Snap Space: Chooses between Screen Space (classic console look) and Object Space snapping.

LookAt Billboarding

Dynamically rotates mesh vertices so the object always faces the active camera — useful for sprites, eye highlights, floating companions, and particles that should never be seen edge-on. Applied consistently in shadow, depth, and motion-vector passes.

  • Enable LookAt Billboarding: Master toggle.
  • Mode: Full 3D faces all axes toward the camera; Y-Axis Only rotates horizontally while staying upright.
  • Strength: Blends between normal orientation and full billboarding (0–1).

Screen-Space Refraction

URP Only Provides true screen-space refraction for glass, water, and crystal-like materials by sampling the camera's opaque texture with UV offsets derived from the surface normal. This creates realistic distortion of the background scene visible through transparent geometry.

  • Screen Refraction: Master toggle to enable the effect.
  • Refraction Strength: Controls the intensity of the UV distortion (range: 0–1). Higher values produce more pronounced refraction.
  • Index of Refraction (IOR): The refractive index of the simulated material (range: 1.0–2.0). Water is approximately 1.33, glass is approximately 1.5.

URP Only: This feature uses URP's _CameraOpaqueTexture and is not available in the Built-in Render Pipeline. The BRP variant has the properties for material compatibility but the effect is a no-op. Ensure "Opaque Texture" is enabled in your URP Renderer Settings.

Emission Pulse

Animates the emission intensity over time using various waveform patterns, creating pulsing, breathing, or flashing glow effects without requiring any animation controllers or scripts.

  • Emission Pulse: Master toggle to enable pulsing emission.
  • Pulse Speed: The frequency of the pulse animation.
  • Pulse Min / Max: The range of emission intensity to pulse between.
  • Pulse Mode: Selects the waveform shape: Sine (smooth), Square (on/off), Triangle (linear ramp), Sawtooth (ramp up, snap down).

Outline Width Map

Allows per-vertex control over the outline thickness using a texture map. This enables artistic effects like thicker outlines on silhouette edges and thinner outlines on interior details.

  • Outline Width Map: A grayscale texture where white = full outline width and black = zero outline width. Multiplied with the global Outline Width value.

This control appears within the Outline settings when Outline is enabled.

Glitches

Effects designed to create digital distortion and glitch aesthetics.

Vertex Distortion

Displaces the model's vertices in various patterns to create a glitchy shape animation. Each mode has unique properties for Strength, Speed, and other controls.

  • Sine X/Z: Creates a sine wave that travels along an axis.
  • Ripple: Creates a circular ripple emanating from the object's center.
  • Noise: Randomly displaces vertices for a chaotic, noisy look.
  • Swirl/Twist: Rotates vertices around the object's Y-axis.
  • Texture: Displaces vertices based on the R/G channels of a texture map.
  • Stretch/Pulse/Inflate: Scales the model along an axis or uniformly.
  • Shear: Skews the model along an axis.
  • Wind: Simulates a gentle, wave-like wind blowing across the surface.
  • Wobble/Vortex: Creates more complex, chaotic motions.
  • Flap/Butterfly Flap: Creates a wing-flapping motion, with options to pivot from UV edges for precise control.
  • Strength: How far the vertices are displaced.
  • Speed: The speed of the distortion animation.

Glitch Flicker

Applies a flickering effect to the material's color using different patterns. Strength controls how dark the flicker gets.

  • Random/Pulse: Simple flickering patterns.
  • Scanlines: A dark line that scrolls across the screen.
  • Blocky: Divides the screen into blocks that flicker randomly.
  • Channel Shift: Causes individual R, G, or B color channels to flicker out.
  • Interference: Simulates horizontal interference lines, like a bad TV signal.
  • Signal Loss: Occasionally replaces the image with digital static.
  • Speed: The speed of the flicker.
  • Intensity: The strength of the flicker (how dark it gets).
  • Scanline Mode Extras: When the Scanlines mode is selected, additional controls appear: Reverse Scroll reverses the scanline direction, Direction switches between vertical and horizontal lines, Density sets how many lines appear, and Thickness sets the line width. In Blocky mode, Block Size controls the size of the flickering blocks.

Transparency Glitch

Causes the Glitch Flicker effect to also affect the material's transparency, creating see-through glitches. This is a sub-option of Glitch Flicker.

  • Strength: How much the flicker affects transparency.

Transitions

Effects used to make a material appear or disappear.

Proximity Effects

Triggers visual surface transformations when approaching or moving away from a reference position (the active VR camera / player head, the object pivot, or a custom world position).

  • Enable Proximity Effect: Master toggle.
  • Proximity Mode: Selects the reference position:
    • Camera / Player: Distance is calculated to the VR camera / player's head.
    • Object Pivot: Distance is calculated to the object's transform origin.
    • Custom World Position: Distance is calculated to a fixed (X,Y,Z) world coordinate set in Custom Position.
  • Proximity Action: Visual response applied as proximity factor increases:
    • Glow / Emission: Adds an emissive glow (Proximity Color).
    • Dissolve / Fade: Fades out alpha transparency smoothly.
    • Dither Transparency: Clips surface pixels using a screen-door dither pattern.
    • Color Tint: Blends surface albedo toward Proximity Color.
  • Radius: Maximum distance threshold at which proximity begins.
  • Softness: Soft-edge transition falloff as a percentage of the radius.
  • Invert Proximity: Inverts distance response so the effect triggers when moving far away instead of close.
  • Proximity Color / Animate Hue: HDR color with full support for the Global Color Shift timeline.

Dithered Transparency

Fades the object out with a Bayer-matrix screen-door stipple instead of alpha blending. Dithered cutouts behave like opaque geometry, so they avoid transparency sorting artifacts — ideal for transparent fabrics, hair, and cross-fades in VR.

  • Dither Strength: Controls how aggressively the pattern dissolves the surface (0 = sharp cutout, 1 = full stipple).

Chroma Key

Masks out a specific color from the final output, creating a green-screen or blue-screen effect. Useful for live streaming overlays, video production, or creative transparency effects.

  • Chroma Key: Master toggle to enable chroma keying.
  • Key Color: The color to remove from the output.
  • Threshold: Controls how closely a pixel must match the key color to be removed. Lower values create a tighter key (more precise), higher values remove a broader range of similar colors.

Distance Fade

Fades the object out based on its distance from the camera. Useful for level-of-detail (LOD) systems.

  • Start Distance: The distance from the camera where the fade begins.
  • Range: How quickly the object fades out over distance.

Near Camera Fade

Fades the object out when the camera gets too close, preventing transparent materials from filling the view or clipping through the player's head in VR.

  • Near Camera Fade: Toggles the proximity fade.
  • Near Camera Fade Radius: The distance from the camera at which the fade begins.
  • Near Camera Fade Range: The distance over which the object fully fades out.

Dissolve

Makes the object appear or disappear using a procedural pattern, often with a glowing edge.

Common Properties

  • Amount: The progress of the dissolve effect (0-1).
  • Edge Width: The width of the glowing edge on the dissolve line.
  • Edge Color / Gradient: The color or texture ramp for the glowing edge.
  • Animate: Automatically animates the dissolve amount over time. You can choose between a simple Ping-Pong/Loop mode or an Advanced Timing mode that gives you full control over the animation cycle.

Mode-Specific Properties

  • Mode: The pattern of the dissolve effect (Noise, Wave, Spherical, Glitch).
  • Noise Mode: Uses a Dissolve Map texture to control the pattern.
  • Wave Mode: Uses a Direction vector and a Scale value to control a directional wipe.
  • Spherical Mode: Uses a world-space Origin point and a Scale value to control a spherical reveal. Can be set to use the object's center.
  • Glitch Mode: Uses a Block Size to create a blocky, digital dissolve. The block pattern is hashed in world space, so it stays perfectly stable and VR-safe (consistent across both eyes) regardless of camera movement.

Planar Wipe

Reveals the object with a smooth, directional wipe across its surface. Great for dramatic entrances.

  • Direction: The direction the wipe travels across the object.
  • Progress: The progress of the wipe effect.
  • Hardness: The sharpness of the wipe's edge.
  • Animate: Automatically animates the wipe progress over time. You can choose between a simple Ping-Pong/Loop mode or an Advanced Timing mode that gives you full control over the animation cycle.

Vertex Collapse

Animates the model's vertices collapsing into its center point, as if being sucked into a black hole.

  • Amount: The progress of the collapse effect (0=Normal, 1=Collapsed).
  • Animate: Automatically animates the collapse amount over time. You can choose between a simple Ping-Pong/Loop mode or an Advanced Timing mode that gives you full control over the animation cycle.

Effect Distance LOD

Automatically disables expensive shader effects when the object is far from the camera, providing a significant performance boost for distant objects without requiring Unity LOD Groups. The transition is smooth and configurable.

  • Effect LOD Start Distance: The camera distance at which effects begin to fade out.
  • Effect LOD End Distance: The camera distance at which effects are fully disabled.

Effects controlled by the LOD system include procedural textures, overlays, surface styles, and other expensive per-pixel operations. Core rendering (base texture, lighting, normal maps) is always preserved regardless of distance.

Advanced Settings

Low-level controls for rendering and performance.

Parallax Mapping

Uses a height map to create the illusion of depth and relief on a flat surface. This can add significant detail without extra geometry, but can be performance-intensive.

  • Height Map: A grayscale texture where white is high and black is low.
  • Strength: How deep the parallax effect appears.
  • Enable Parallax Occlusion Mapping (POM): Upgrades the effect to multi-step height tracing for a much higher quality depth result with proper self-occlusion. Performance-intensive and only available on the High performance level. Max Steps is the step limit used at steep angles, and Min Steps the reduced step count used at glancing angles.

Clipping Mask

Uses a texture to perform a hard clip on the material, making parts of it invisible. Unlike transparency, this is an all-or-nothing effect that works in any render mode.

  • Clipping Mask: The texture used for clipping.
  • Mask Scroll Speed X/Y: Scrolls the mask texture to create animated effects.
  • Mask Channel: Selects which color channel (R, G, B, or A) of the texture to use for the mask.
  • Invert Mask: Inverts the mask logic, making visible areas invisible and vice-versa.

Render States

  • Culling: Controls which faces of the mesh are rendered (Back, Front, or Off for double-sided).
  • Shadow Culling: Independent cull mode for the ShadowCaster pass. Back (default) is faster for closed meshes; use Off for double-sided shadows on hair, cloth, or foliage.
  • Polygon Offset Factor / Units: Applies a depth bias to resolve z-fighting between co-planar surfaces (e.g. decals, blush overlays, layered clothing).
  • Source/Destination Blend: Low-level control over how colors are blended in Transparent mode. The Additive render mode sets these automatically. Only change if you know what you're doing!

Camera & Mirror Visibility

Controls from which cameras the material is rendered. Useful for hiding parts from mirrors, showing elements only in VR headset eyes, or creating desktop/stream-exclusive effects. Enforced consistently across the main pass as well as shadow, depth-normals, depth-only, and motion-vector passes.

  • Visibility Mode: Show Always, Hide In Mirrors, Show Only In Mirrors, VR Headset Eyes Only, or Desktop Stream Spectator Only.
  • Mirror Detection Method: How mirror/reflection cameras are identified: Auto Oblique And Inverted Transform (recommended), Oblique Matrix Only, or Inverted Transform Only.
  • Custom Camera Filter: A layer mask for fully custom per-camera control.

Stencil Buffer

The Stencil Buffer is an invisible GPU "mask layer" for your screen. Think of it like painter's masking tape applied pixel-by-pixel onto the screen.

Out of the box, the default settings (Comp = Always, Pass = Keep) do nothing—the shader simply renders normally on every pixel. But when configured, it allows materials on different objects to communicate with each other visually without touching C# code.

Common Use Cases (Why It's There)

  1. Portals & Magic Windows
    • Object A (The Portal Doorframe): Draws an invisible mask by setting Ref = 1 and Pass = Replace. It "stamps" the number 1 onto the screen pixels where the door is.
    • Object B (The Fantasy World inside): Sets Ref = 1 and Comp = Equal. It will ONLY render on pixels that have the number 1 stamped on them. From any other angle or outside the doorframe, Object B is completely invisible!
  2. X-Ray & Wall See-Through Effects
    • The main character writes Ref = 2, Pass = Replace when visible.
    • An X-Ray outline material sets Ref = 2, Comp = NotEqual. When occluded behind a wall, it draws the glowing silhouette only where the main body isn't directly visible.
  3. Decal & UI Masking: Restrict complex geometric effects (like a holographic grid or glowing scanline) so they only show up inside a specific 3D volume, badge, or lens on an avatar.

What Each Inspector Setting Means (In Plain English)

Setting Analogy / Meaning Default
Stencil Ref The ID Tag (0–255): The number stamp you want to write or look for (e.g. 1). 0
Comparison (Comp) The Rule: When should this pixel render?
Always — Render everywhere (default).
Equal — Render ONLY where screen pixel ID matches Ref.
NotEqual — Render ONLY where screen pixel ID is different.
Never — Never render.
Always
Pass Action on Render Success: What to do to the screen pixel ID when this object draws.
Keep — Leave screen pixel ID untouched (default).
Replace — Overwrite screen pixel ID with our Ref number.
Zero — Reset screen pixel ID to 0.
Keep
Fail / ZFail What to do if the stencil test fails (Fail) or depth/wall test fails (ZFail). Keep
Read / Write Mask Bitwise masks (advanced, usually left at 255). 255

Quick Example Setup (Portal / Magic Window)

If you want to create a magic portal window:

  1. Mask Material (Door Window):
    • Render Mode: Opaque or Cutout
    • Stencil Ref: 1
    • Pass: Replace
    • Comparison: Always
  2. Hidden Object Material (Object inside):
    • Stencil Ref: 1
    • Comparison: Equal
    • Pass: Keep

Render State Overrides

Advanced hardware-level rendering controls for specialized effects and workflows. These settings directly control GPU pipeline state and should be used with care.

  • Depth Test (ZTest): Controls when a pixel passes the depth test. Default is LEqual (standard rendering). Set to Always to render through walls (useful for VR overlays, HUD elements, X-ray glasses). Other options: Less, Greater, GEqual, Equal, NotEqual, Never.
  • Color Write Mask: Controls which color channels are written to the framebuffer. Default is RGBA (all channels). Set to 0 to create invisible geometry that only writes to the stencil or depth buffer. Individual channels (R, G, B, A) can be toggled independently.

Warning: Changing ZTest to anything other than LEqual can cause objects to render in unexpected order or appear through walls. Use with care, especially in VR.

VRChat Fallback Tag

Sets the material's VRCFallback override tag, which controls which standard shader VRChat swaps in when custom shaders are blocked by safety settings (e.g. when a viewer hides custom shaders or on incompatible platforms).

  • VRChat Fallback Tag: Selects the fallback shader (Toon, Standard, Unlit, VertexLit, Cutout, Transparent, and more).

Picking a fallback that matches your render mode keeps the avatar looking reasonable instead of flashing white for users with custom shaders hidden.

HSV Mask

A texture-driven mask that controls where HSV (Hue, Saturation, Value) color adjustments are applied. This allows selective color grading on specific parts of the material while leaving other areas untouched.

  • HSV Mask Texture: A grayscale texture where white areas receive the full HSV adjustment and black areas are unaffected.

Shader Diagnostic & Debug View HUD

Enables real-time in-viewport inspection of intermediate lighting and shading buffers for debugging material setups and spotting rendering issues.

  • Enable Shader Debug View: Master toggle enabling diagnostic buffer isolation.
  • Debug View Mode: Selects which diagnostic channel is rendered directly to the screen:
    • Off — Standard final color output.
    • BaseColor — Unlit albedo color.
    • Normal — Tangent-space perturbed normal vector.
    • WorldNormal — World-space geometric/shading normal.
    • Smoothness — Surface smoothness value.
    • Metallic — Surface metallic value.
    • DirectShading — Direct scene light attenuation and cel shadow mask.
    • Roughness / GI — Surface roughness and indirect diffuse irradiance.
    • Emission — Isolated HDR emissive buffer.
    • AudioLink — Live AudioLink 4-band spectrum diagnostic visualization.
    • TexelDensity — World-space UV texel density checkerboard to identify stretching or over/under-sampling.
    • Complexity — Heatmap visualization of active feature complexity.
  • Material Performance & Stats HUD: Displays live counts of active shader keywords, total exposed properties, current render queue, and shader variant names directly at the bottom of the inspector foldout.

Creator Tools & Utilities

FireRatShader includes a comprehensive suite of workflow and optimization tools accessible from the Unity Editor top menu under Tools > FireRat Shader.

Re-sync All Material Keywords

Menu Location: Tools > FireRat Shader > Re-sync All Material Keywords (or FireRat > Re-sync All Material Keywords)

Purpose & Workflow:

  • In Unity, shader variants and features are enabled via shader keywords (e.g. _METALLICGLOSSMAP_ON, _USE_EMISSION_ON, _RENDER_MODE_CUTOUT). When materials are imported from external .unitypackage files, upgraded across shader versions, or animated by Unity Animation Clips and VRChat FX layers, serialized keywords in .mat files can become stale or desynchronized from the actual material properties.
  • Running Re-sync All Material Keywords scans every material in your project that uses FireRat/FireRatShader or FireRat/FireRatShader_URP and invokes SetAllKeywords to cleanly synchronize all keywords with assigned textures and property values.
  • When to run: Run this anytime you upgrade FireRatShader versions, import new avatar packages, or notice a material rendering unexpectedly after script modifications.

Texture Channel Packer & Material Baker

Menu Location: Tools > FireRat Shader > Texture Channel Packer & Baker

Purpose & Workflow:

  • Material Color & Mask Baker: Bakes material base color, HSV hue/saturation/value adjustments, 4-channel RGBA color masks, and decal overlays directly into a single consolidated Albedo texture. With Auto-Assign Baked Tex enabled, the tool automatically assigns the baked texture back to the material and resets redundant runtime features, saving substantial fragment shader math and reducing VRChat APRS texture memory.
  • RGBA Channel Packer: Packs 4 individual grayscale textures or constant slider values into a single linear texture (R: Metallic/Mask, G: Ambient Occlusion, B: Detail/Thickness, A: Smoothness/Roughness), with individual per-channel invert toggles.

Smoothed Normal Baker

Menu Location: Tools > FireRat Shader > Smoothed Normal Baker (or right-click GameObject > FireRat Shader > Bake Smoothed Normals)

Purpose & Workflow:

  • Averages vertex normals across split UV seams and hard mesh edges, and bakes the resulting smooth vector stream into Vertex Colors (RGB), UV2, or UV3.
  • In the shader inspector under Effects > Outline, setting Outline Normal Source to the baked stream completely eliminates the broken seams and corner gaps common on anime avatar outlines.

Material Migration Converter

Menu Location: Tools > FireRat Shader > Material Migration Converter

Purpose & Workflow:

  • Automates converting avatar materials from Poiyomi (Free/Pro), lilToon, Unity Standard, and UTS shaders to FireRatShader.
  • Automatically remaps diffuse albedo, bump/normal maps, metallic/smoothness/roughness, primary & secondary emission maps, toon shade thresholds, ramp textures, and inverted-hull outline settings.
  • Supports converting individual materials or batch-converting an entire avatar hierarchy, with optional non-destructive backup copy creation.

Multi-Material Batch Editor

Menu Location: Tools > FireRat Shader > Multi-Material Batch Editor

Purpose & Workflow:

  • Scans any avatar or scene hierarchy and aggregates all unique FireRat materials into a single batch inspector.
  • Allows editing common properties simultaneously across clothing, accessories, body, and hair (e.g. bulk performance level toggling, light mode adjustments, render mode changes, and batch material locking/optimizing).
  • Provides a 1-click batch pipeline converter to instantly switch all avatar materials between BRP and URP master variants.

Sprite Sheet & Flipbook Importer (with Animated GIF Converter)

Menu Location: Tools > FireRat Shader > Sprite Sheet & Flipbook Importer

Purpose & Workflow:

  • Animated GIF (GIF89a) Importer: Decodes multi-frame animated GIFs using a pure C# engine, extracts frame delays, auto-computes the optimal grid arrangement, and bakes an optimized power-of-two GPU texture atlas with 1-click material assignment.
  • Frame Sequence Packer: Automatically packs loose image sequences (PNG/JPG frames) into power-of-two sprite sheets and configures material flipbook columns, rows, FPS, and playback modes.
  • Sprite Sheet Configurator: Inspects existing spritesheet textures to automatically calculate optimal column and row division grids and assign them to target texture slots (Base, Emission, Decal).

VRChat Quest Fallback Baker

Menu Location: Tools > FireRat Shader > VRChat Quest Fallback Baker

Purpose & Workflow:

  • Bakes high-end PC avatar shader composites (diffuse, decals, recolor masks, glitter, matcaps, and emission) down into lightweight mobile textures.
  • Automatically creates a duplicate Quest avatar material set targeting mobile-optimized shaders or FireRat Low tier with 100% texture consistency.

Inspector Localization

The material inspector is localized via community-maintained JSON translation packs in Assets/FireRatShader/Languages/. A language dropdown at the top of the inspector switches all section headers, property labels, and tooltips instantly.

  • 15 languages are included out of the box (English, Japanese, Korean, Simplified/Traditional Chinese, French, German, Spanish, Portuguese, Russian, Polish, Italian, Thai, Vietnamese, and template), with automatic English fallback for missing entries.
  • Hot-reloading: Language files are watched on disk — edit a JSON pack while Unity is open and the inspector refreshes immediately. You can also force a refresh via Tools > FireRat Shader > Developer > Reload Language Files.
  • Community contributions: Anyone can add or improve a language by copying template.json, translating the values, and saving it as e.g. nl-NL.json. Your language choice is remembered per-project via EditorPrefs.