Skip to content

Uber Shader

MochiesCode edited this page Sep 30, 2026 · 2 revisions

The Uber Shader (Mochie/Uber) is a feature-rich shader for VRChat avatars. It combines toon-style shadows with PBR materials, and adds lighting controls, dual matcaps, outlines, subsurface scattering, refraction, flipbooks, AudioLink, near-clip culling, and mirror-specific behavior. Screen space reflections require the Depth Light prefab in Assets/Mochie/Unity/Prefabs.

πŸ“Œ Variants

Variant Description
Mochie/Uber The core avatar shader.
Mochie/Uber (Outline) Adds an inverted-hull outline pass and the Outline section.
Mochie/Uber X Adds the geometry-shader Special Features.
Mochie/Uber X (Outline) Uber X with the outline pass.

The X variants are more expensive than the non-X versions by default. If you don't use anything from Special Features, use the regular Uber shader instead; there's no visual difference.

Base

The Standard button in this section's header applies preset values that visually match Unity's Standard shader: smooth directional ambient lighting, environment reflections, and GGX specular highlights.

  • Shading: Enables or disables all lighting and shading. With it off, the material is unlit and shows its colors at full brightness, which can give a huge performance boost if you aren't using any shading features. The Textures and Shading sections only appear while it's on.
  • Blending Mode: How the material handles transparency.
    • Opaque: The default. The surface is fully solid and ignores alpha.
    • Cutout: Pixels with alpha below Cutout are removed, giving hard-edged holes. Edges are smoothed with alpha to coverage when MSAA is on.
    • Dithered: Removes pixels in a fine dither pattern based on alpha, which mimics the semi-transparency of Fade while still sorting correctly like Cutout.
    • Fade: Smooth transparency that fades everything, including reflections and highlights, based on alpha.
    • Transparent: Smooth transparency that keeps reflections and specular highlights visible on transparent areas, so it behaves like real glass.
  • Mirror Behavior: How the material appears in VRChat mirrors.
    • Default: Displays normally everywhere.
    • Only Reflection: Only displays the material in mirror reflections. Useful for things only you should see in a mirror.
    • Textured Reflection: Displays an alternative base color texture in mirror reflections.
    • No Reflection: Only displays the material outside of mirror reflections.
  • Main Texture Type: Where the base color comes from.
    • 2D: The default base color texture.
    • Cubemap: Uses a cubemap for the base color, sampled by view direction, so the surface looks like a window into another space. Looks neat when combined with shading.
    • Combined: Uses both a cubemap and a 2D texture for the base color, blending between them with a mask or slider.
  • Alpha Source (non-opaque modes): Where transparency comes from.
    • Base Color Alpha: The alpha channel of the base color texture.
    • Alpha Mask: A separate alpha mask texture, set below.
  • Alpha Strength (non-opaque modes): How much the alpha affects transparency. At 0 the material is fully opaque even in a transparent mode; at 1 alpha is used as-is.
  • Cutout (Cutout mode): The alpha threshold. Pixels below this value are removed.

Textures in this section

  • Base Color: The unshaded color of the surface, with a color tint multiplied over it. Includes tiling, offset, scrolling, and Rotation (in degrees).
  • Tint Clamp (with Shading on): Clamps the material's maximum brightness to the base color plus reflections, specular, and subsurface scattering. This stops bright world lighting from washing the colors out to white.
  • Base Color (Mirror) (Textured Reflection): The base color texture that appears in mirrors instead of the regular one.
  • Cubemap (Cubemap and Combined): The base color cubemap, with a color tint.
    • Rotation: Rotates the cubemap on each axis, in degrees. With Auto Rotate on, these values become rotation speeds.
    • Auto Rotate: Continuously rotates the cubemap.
  • Blend (Combined): How much the cubemap shows over the 2D texture. Assign a texture to control it with a mask (red channel) instead of the slider.
  • Blending (Combined): How the cubemap combines with the 2D texture: Add, Sub, Mul, Mulx2, Overlay, Screen, or Lerp.
  • Alpha Mask (when Alpha Source is Alpha Mask): A separate texture that controls transparency, with a channel selector, tiling, and offset. Black is transparent and white is opaque.
  • Vertex Color: How much the mesh's vertex colors tint the base color. At 0 they're ignored; at 1 the base color is fully multiplied by them.

Textures

Only shown with Shading on.

Primary Maps

  • Workflow: How the PBR textures are set up.
    • Metallic: Separate metallic and roughness maps.
    • Specular: A specular map defines the color of reflections, with a separate smoothness map.
    • Specular (Alpha Smoothness): A specular map with smoothness in its alpha channel, as in Unity's Standard (Specular setup) shader.
    • Packed Metallic: Metallic, roughness, occlusion, and height packed into the channels of one texture.
  • Normal: Determines how light behaves on the surface. Mainly used to fake small details or smooth bevels on sharp edges without adding geometry. The value sets its strength; negative values invert it.
  • Metallic (Metallic): How metallic the surface looks. Higher values reduce the visibility of the base color in favor of reflective color, simulating metal. Lower values look more like plastic. The value is used when no texture is set.
  • Roughness (Metallic): How rough or smooth the surface looks. Rougher surfaces scatter more light instead of reflecting it like a mirror, giving blurrier reflections and broader highlights. The value is used when no texture is set.
  • Specular Map (Specular modes): The color and brightness of reflections, with a color used when no texture is set. Bright, colored values look metallic; dark gray values look like plastic.
  • Smoothness (Specular): A smoothness map (red channel) with a strength multiplier. White is smooth and black is rough.
  • Smoothness (Specular (Alpha Smoothness)): A multiplier for the smoothness in the specular map's alpha.
  • Packed Texture (Packed Metallic): One texture containing the PBR maps.
    • Metallic, Roughness, Occlusion, and Height: Which channel holds each value.
    • Occlusion Strength: How strongly the packed occlusion darkens the surface.
    • Height Strength: Enables parallax height mapping from the height channel, and sets how deep it looks.
    • Height Offset and Height Samples (with height enabled): See Height below.
  • Occlusion (non-packed): Extra shading that simulates contact shadows in crevices and corners where less light reaches. Darker areas of the map get darker shading. The value sets how strong it is.
  • Height (non-packed): Uses parallax occlusion mapping to make the surface look like it has real depth. White is high and black is low. The value sets how deep it looks.
    • Parallax Offset: Moves the whole height map up or down to hide artifacts.
    • Parallax Samples: How many steps are used to trace the height. More samples look smoother, especially at sharp angles, but cost more.
  • Pack Textures (Metallic): Packs the separate Occlusion, Roughness, Metallic, and Height maps into a single new texture, then switches the workflow to Packed Metallic with the channels set up automatically.

Detail Maps

A second set of textures, usually tiled smaller, layered over the primary maps to add close-up detail.

  • UV Set: Which UV channel the detail maps use: UV0, UV1, or UV2.
  • Base Color: A detail color texture, with strength and blend mode.
  • Normal: A detail normal map combined with the primary one, with strength.
  • Metallic and Roughness (Metallic and Packed Metallic): Detail maps, each with strength and blend mode.
  • Occlusion: A detail occlusion map, with strength and blend mode.
  • Tiling, Offset, Scrolling, and Rotation (once a detail map is set): Shared by all detail maps.

Blend modes:

  • Add: Adds the detail on top, brightening.
  • Alpha: Blends the detail over the base using the detail texture's alpha.
  • Mul: Multiplies, darkening.
  • Mulx2: Multiplies by double the detail, so mid-gray leaves the base unchanged, lighter areas brighten, and darker areas darken. The usual mode for grayscale detail textures.
  • Overlay: Increases contrast, brightening light areas and darkening dark ones.
  • Screen: Brightens, without blowing out as quickly as Add.
  • Lerp: An even 50/50 mix of the base and the detail.

Masks

Limit individual features with masks. Darker parts of a mask reduce the masked effect; lighter parts leave it at full strength.

  • Mode:
    • Off: No masks.
    • Separate: Each mask is a separate texture sample. This can get very expensive when using a lot of them.
    • Packed: Packs all masks into 4 textures for a significant performance boost.
  • Enable Transforms (Separate): Enables tiling, offset, and scrolling for all masks. Keep this off unless you really need it, as it can be expensive.
  • Separate masks:
    • Reflections: Where reflections appear.
    • Specular Highlights: Where specular highlights appear.
    • Specular Blend: Where the Combined specular mode uses GGX (white) versus anisotropic (black) highlights.
    • Primary Matcap and Secondary Matcap: Where each matcap appears.
    • Shadows: Where shadows appear. Black areas stay fully lit.
    • Basic Rim and Enviro. Rim: Where each rim appears.
    • Diffuse: Where the Disney Term and Spherical Harmonics shading apply.
    • Subsurface: Where subsurface scattering appears.
    • Detail Maps: Where the detail maps appear.
    • Emission: Where emission appears.
    • Emission Pulse: Where the emission pulse applies. Black areas glow steadily.
    • Filtering: Where color filtering applies.
    • Refraction: Where refraction appears.
    • Outline Thickness (Outline variants): Scales the outline thickness. Black areas have no outline.
  • Packed masks:
Texture Red Green Blue Alpha
Mask 1 Reflections Specular Primary Matcap Secondary Matcap
Mask 2 Shadows Diffuse Shading Subsurface Detail Maps
Mask 3 Basic Rim Environment Rim Refraction Specular Blend
Mask 4 Emission Emission Pulse Filtering Outline Thickness

With Shading off, a top-level Masks section appears instead, with only the Emission, Emission Pulse, Filtering, and Outline Thickness masks (or Mask 4 when packed).

Metallic Filter

Metallic and Packed Metallic workflows. Adjusts the metallic map without editing the texture.

  • Preview: Displays the filtered map on the material in grayscale, so you can see the result while adjusting.
  • Remap: Remaps the map's black and white points. Raising the minimum makes dark areas more metallic; lowering the maximum makes bright areas less metallic.
  • Lightness: Adds to or subtracts from the whole map.
  • Intensity: Boosts brighter areas proportionally, without lifting black areas.
  • Contrast: Pushes values away from (above 1) or toward (below 1) middle gray.

Roughness Filter

Metallic and Packed Metallic workflows. Adjusts the roughness map, with the same Preview, Remap, Lightness, Intensity, and Contrast controls as the Metallic Filter.

Smoothness Filter

Specular workflows. Adjusts the smoothness map, with the same controls as the Metallic Filter.

Occlusion Filter

Adjusts the occlusion map.

  • Preview, Remap, Lightness, Intensity, and Contrast: The same controls as the Metallic Filter.
  • Tint: A color (with an optional texture) applied to occluded areas instead of black, for colored shading in crevices.

Height Filter

Adjusts the height map used for parallax, with the same controls as the Metallic Filter.

Base Color Dissolve

Dissolves between the base color and a second base color using a noise texture, for effects like a skin being burned away to reveal another beneath.

  • Base Color 2: The second texture, with a tint, tiling, and offset.
  • Dissolve Map: The noise pattern that controls the transition, with tiling and offset. Dark areas of the map switch to Base Color 2 first. The value sets the dissolve amount: at 0 only the base color shows, and at 1 only Base Color 2 shows.
  • Rim Color: The HDR color of the glowing edge along the transition.
  • Rim Width: How wide the glowing edge is.

Shading

Only shown with Shading on.

Lighting

General

  • Static Direction: Uses a fixed light direction (XYZ) for shading instead of the scene's. Useful for keeping toon shadows consistent in worlds with odd lighting.
  • Direct Occlusion: Applies ambient occlusion to direct lighting. Requires an occlusion map.
  • Indirect Occlusion: Applies ambient occlusion to indirect ambient lighting. Requires an occlusion map.

Diffuse Shading

  • Disney Term: A rim lighting effect calculated from the light in the scene and the roughness of the surface. Rough surfaces get a subtle brightening at glancing angles.
  • Spherical Harmonics: How much ambient lighting follows the direction of the light probes. At 0, ambient light is flat and even, for a clean toon look. At 1, it shades like Unity's Standard shader.
  • Nonlinear SH: Uses a different, non-linear method of calculating spherical harmonics shading, which keeps more contrast in probe lighting.

Realtime Light

Used when the world has a realtime light.

  • Direct Intensity: Strength of the direct lighting from realtime lights.
  • Indirect Intensity: Strength of realtime ambient (probe) lighting.
  • Vertex Intensity: Strength of vertex lights (aka non-important lights).
  • Additive Intensity: Strength of realtime point and spot lights.
  • Clamp Additive: Clamps the brightness of each individual point/spot light affecting the material. This is not an overall brightness clamp, meaning if you have two lights, each will be clamped, then added together for the total brightness.

Baked Light

Used when the world has no realtime light. The shader builds its lighting from the baked light probes instead, and takes the light direction from them so shadows still form.

  • Direct Intensity: The portion of the probe lighting used as direct light, which casts the toon shadows.
  • Indirect Intensity: The portion of the probe lighting used as ambient light, which fills in the shadows.

Shadows

  • Mode: How shadows are drawn.
    • Off: No toon shadows; the surface is lit evenly.
    • Manual Blend: A shadow edge you shape with sliders.
    • Ramp: A ramp texture that maps lighting to color, for fully custom shadow gradients.
  • Conditions: When shadows are drawn.
    • Always: In all lighting.
    • Realtime Lighting Only: Only when the world has a realtime light.
    • Baked Lighting Only: Only when the world has no realtime light.
  • Detail Shadow Map: Forces shadows to be rendered anywhere the texture is not white. Use it to paint permanent shading, like under hair or clothing folds.
  • Tint (Manual Blend): The color of shadowed areas.
  • Ramp 1 (Manual Blend): The softness of the first shadow edge. Low values give a sharp toon edge.
  • Ramp 2 (Manual Blend): The softness of a second shadow edge.
  • Ramp Blend (Manual Blend): Blends between Ramp 1 and Ramp 2, so you can mix a sharp edge with a soft one.
  • Offset (Manual Blend): Moves the shadow edge across the surface. Higher values bring the shadow further into the lit side.
  • Ramp (Ramp): The shadow ramp texture. Its left side is used for fully shadowed areas and its right side for fully lit areas. You can also build a ramp with the gradient editor below it and click Apply to save it as a texture in Assets/Mochie/Unity/Textures/Ramps.
  • Strength: How dark shadows get. At 0 there are no shadows.
  • Dithering: Blends the shadow edge with a dither pattern, for a stylized, halftone-like transition.
  • Directional Light Shadows: Receives shadows cast by realtime directional lights. These can be ugly because Unity calculates them at a fairly low resolution.
  • Smooth Attenuation: Attempts to smooth out the attenuation value to avoid sharp artifacts in realtime shadows.

Reflections

  • Mode: Where reflections come from.
    • Off: No reflections.
    • Environment: The world's reflection probes. Supports box projection and blending between two probes.
    • Cubemap: A cubemap you provide, used everywhere.
  • Cubemap (Fallback Cubemap in Environment mode): The reflection cubemap. In Environment mode, it's only used in worlds without reflection probes.
    • Apply Lighting: Scales the brightness of the cubemap reflections with the lighting in the environment, so they don't glow in dark worlds.
  • Tint: A color multiplied over the reflections.
  • Strength: Brightness of the reflections.
  • Fresnel: Makes reflections stronger at glancing angles, the way real surfaces reflect more when viewed edge-on. The value sets how strong the effect is.
  • Manual Roughness: Uses a fixed roughness for reflections instead of the surface's roughness.
  • Stepping: Posterizes reflections into the set number of brightness steps, for a toon look. Rough areas are affected less.
  • Specular Occlusion: Darkens reflections inside shadowed areas of the material.
  • Screen Space Reflections: Adds sharp reflections of whatever is visible on screen, on top of the other reflections.
    • Strength: How strongly SSR replaces the other reflections.
    • Max Steps: The maximum number of steps each reflection ray takes. More steps reach further but cost more.
    • Step Size: How far each step moves. Larger steps reach further with fewer steps but are less precise.
    • Intersection (L): How close a ray must pass to a surface to count as a hit during the initial search. Larger values find more reflections but can cause artifacts.
    • Intersection (S): How close a ray must pass to a surface during the refinement steps. Smaller values are more precise.
    • Edge Fade: How far from the edge of the screen SSR fades out, masking edges with no screen information.

SSR requires a render queue of 2501 or above and can only be used on one material per scene or avatar. It's very expensive, so use it sparingly.

Specular Highlights

  • Mode: The type of specular highlight.
    • Off: No highlights.
    • GGX: Standard, round highlights.
    • Anisotropic: Highlights stretched along the direction of the mesh's UVs, like on hair or brushed metal. For hair, UVs should run along the strands.
    • Combined: Both, blended with the Specular Blend mask in the Masks section.
  • Tint: The color of the highlights.
  • Strength (GGX Strength and Aniso Strength in Combined): Brightness of the highlights.
  • Manual Roughness (GGX): Uses a fixed roughness for highlights instead of the surface's roughness.
  • Manual Bias (GGX): Manually controls the specularity bias. This tints the specular highlight based on either the base color, or the light color.
  • Stepping: Posterizes the highlights into the set number of brightness steps, for a toon look. In Combined mode, set GGX Steps and Aniso Steps separately.
  • Realtime Light Only: Only applies specular highlights when a realtime light is present in the scene.
  • Ignore Environment: The brightness and color of the specular highlight will be calculated solely based on the strength and tint properties above, rather than the environment lighting in the scene.
  • Layer 1 Thickness (Anisotropic and Combined): How thick the main anisotropic highlight is.
  • Layer 2 Thickness (Anisotropic and Combined): How thick a second, softer highlight layer is.
  • Layer Blend (Anisotropic and Combined): How strongly the second layer shows.
  • Lerp Blend (Anisotropic and Combined): Blends the two layers together instead of adding them, which keeps the highlight from getting too bright where they overlap.
  • Hair Strength (Anisotropic and Combined): How strongly strand variation breaks up the highlight, like individual strands of hair catching the light.
  • Hair Density (Anisotropic and Combined): How many strands the variation creates. Higher values give finer, denser strands.
  • Hair Intensity (Anisotropic and Combined): How much the strands vary in brightness.
  • Hair Continuity (Anisotropic and Combined): Blends between choppy, segmented strands (0) and smooth, continuous ones (1).

Matcap

Two matcap layers: Primary Matcap and Secondary Matcap. A matcap is a texture of a lit sphere, mapped onto the surface by its normals, to fake lighting and reflections cheaply. Each layer has:

  • Matcap: The matcap texture, with an HDR color, tiling, and Blending:
    • Add: Adds the matcap on top.
    • Alpha: Adds the matcap using its alpha as a mask.
  • Normal: By default the matcap uses the normal maps from the Textures section. This overrides them with its own normal map, with strength, tiling, offset, and scrolling.
  • Mix Normals: Mixes the normal maps from the Textures section into this normal map.
  • Strength: Brightness of the matcap.
  • Manual Roughness: Blurs the matcap by a roughness value. When off, it's blurred by the surface's roughness.
  • Unlit: The matcap ignores scene lighting and always shows at full brightness.
  • No Depth in VR: Uses the center point between the eyes for the matcap in VR, so both eyes see the same image instead of slightly different ones.

Subsurface Scattering

Simulates light passing through thin or translucent areas like ears, fingers, and fabric, so they glow when lit from behind.

  • Thickness Map: How thick the surface is. White is thick and blocks light; black is thin and lets light through. The value is a power that sharpens or softens the map.
  • Color: The color of scattered light, with an optional texture.
    • Base Color Tint: Tints the scattered light with the base color.
  • Direct Strength: The brightness of light shining through from behind.
  • Indirect Strength: A constant amount of scattering added regardless of the light's direction, for a softer, always-present glow.
  • Power: How closely the viewer has to look toward the light to see the glow. Higher values give a tighter glow.
  • Normal Strength: How much the surface's normals bend the light passing through. Higher values spread the glow across more of the surface.
  • Wrapping Factor: How far light wraps around the surface into the shadowed side.

Basic Rim

A glow around the edges of the mesh, facing away from the viewer.

  • Color: The rim's HDR color, with an optional texture, tiling, offset, and scrolling.
  • Blending: How the rim combines with the surface: Add, Sub, Mul, Mulx2, Overlay, Screen, or Lerp.
  • Strength: How strongly the rim shows.
  • Width: How far the rim extends in from the edges.
  • Sharpness: How hard the rim's inner edge is. Higher values give a crisp band.
  • Unlit: The rim ignores scene lighting and always shows at full brightness.

Environment Rim

A rim that shows the world's reflections around the edges of the mesh, which helps the avatar blend into its surroundings.

  • Blending: How the rim combines with the surface: Add, Sub, Mul, Mulx2, Overlay, Screen, or Lerp.
  • Tint: The HDR color multiplied over the rim.
  • Strength: How strongly the rim shows.
  • Width: How far the rim extends in from the edges.
  • Sharpness: How hard the rim's inner edge is.
  • Manual Roughness: Uses a fixed roughness to blur the rim's reflections, instead of the surface's roughness.

Refraction

Shows a distorted view of what's behind the mesh, like looking through glass or water. Requires a render queue of 2501 or above.

  • Tint: A color multiplied over the refracted image.
  • IOR: Index of refraction. How strongly the view bends; 1 is no bending, and higher values bend more.
  • Opacity: How much of the original surface shows on top of the refraction. At 0 the surface is fully see-through.
  • Chromatic Abberation: Separates the red, green, and blue channels of the refraction, creating colored fringes. The value sets how far apart they spread.
  • Blur: Blurs the refracted image, for frosted glass. The value sets how blurry it gets.
    • Use Roughness: Scales the blur by the surface's roughness, so rougher areas are blurrier.
  • Unlit: The refraction ignores scene lighting.
  • Dissolve Mask: A texture that limits the refraction, with tiling, offset, and scrolling. The value is a threshold: areas of the mask darker than it refract, so raising it spreads the refraction.

Iridescence

A shifting rainbow sheen on reflections and specular highlights, like soap bubbles or oil. It only appears on metallic areas.

  • Mode:
    • Hue Shift: Shifts the hue of reflections based on viewing angle.
    • Color Ramp: Colors reflections using a ramp texture based on viewing angle.
  • Mask: Limits where iridescence appears.
  • Ramp (Color Ramp): The color ramp. Its left side is used where the surface faces the viewer and its right side at the edges. You can also build one with the gradient editor and click Apply to save it.
  • Strength: How strongly the iridescence shows.
  • Width (Hue Shift): How far the color shift spreads in from the edges.
  • Sharpness (Hue Shift): How hard the color shift's inner edge is.

Normals

  • Hard Edges: Uses flat, faceted normals instead of smooth ones, for a low-poly look.
  • Clearcoat Mode: Reflections and specular will be calculated using the mesh normals, and shadows will be calculated using normal maps. This makes the surface look like it has a glossy coating over it.
  • Specular Antialiasing: Increases the roughness on rounded corners of normals to hide sparkly artifacts from specular lighting.

Light Volumes

Support for VRChat Light Volumes, which provide higher quality, more localized baked lighting than Unity's light probes. Enabled by default.

  • Strength: How much light volumes replace regular light probe lighting.
  • Specular Highlights: Specular highlights derived from VRC Light Volumes. The value sets their brightness.
  • Bias: Offsets the sampling position of the light volume along the surface normal to help avoid light leaking.

Emission

Emission adds color after all lighting calculations, so the surface appears to glow.

  • Emission Map (two layers): Each layer has a texture, HDR color, and Intensity, plus its own tiling, offset, and scrolling. The two layers are added together.

Light Reactivity

Makes emission fade out in bright environments, so glowing details only show up in the dark.

  • Include Shadows: Counts shadows on the avatar when measuring brightness, so emission can glow in shadowed areas even in a bright world.
  • Crossfade Mode: While the environment lighting is brighter than the threshold value, emission will be off. As lighting gets darker, crossing the threshold value, it fades on and reaches maximum brightness. When off, emission instead fades gradually across the whole brightness range.
  • Threshold (Crossfade Mode): The lighting brightness threshold that determines when emission will be on or off.
  • Strength (Crossfade Mode): The value above and below the threshold where emission fades off or on. Higher values give a more gradual transition.

Pulse

Makes the emission brightness pulse over time.

  • Waveform: The shape of the pulse.
    • Sine: A smooth rise and fall.
    • Square: Switches between fully on and fully off.
    • Triangle: A steady rise and a steady fall.
    • Saw: A steady rise, then an instant drop.
    • Reverse Saw: An instant rise, then a steady fall.
  • Strength: How much the pulse dims the emission. At 1 the emission fades all the way out at the low point.
  • Speed: How fast the pulse repeats.

Filtering

Color adjustments for the material. The Filtering mask limits where they apply.

  • Color Masking: Recolors areas of the base color using a color mask texture. Each channel of the mask (red, green, blue, and alpha) is tinted by its own color, which is useful for making color variations of one texture.
  • Post Filtering: Filtering will be applied to the final output color instead of the base color, so it also affects lighting, reflections, and emission.
  • Invert: Inverts the colors, like a photo negative.
  • Hue Mode: The method used to shift hue.
    • HSV: Standard hue shift.
    • Oklab: A more subtle, less saturated hue shift that better preserves perceived brightness.
  • Mono Tint: Forces all colors to the same hue (set by Hue), varying only in brightness and saturation.
  • Auto Hue Shift: Continuously cycles the hue over time at the set Shift Speed. When off, Hue shifts every color around the color wheel by a fixed amount; 0 and 1 are both the original colors.
  • RGB Multiplier: Multiplies the red, green, and blue channels separately.
  • Saturation: Color intensity. 0 is grayscale, 1 is unchanged, and higher values oversaturate.
  • Brightness: Multiplies the brightness. 1 is unchanged.
  • Contrast: Pushes colors away from (above 1) or toward (below 1) middle gray. 1 is unchanged.
  • HDR: Blends toward a gamma-decoded version of the colors, which darkens midtones and deepens the image. 0 is off.
  • ACES: Cheap approximated ACES tonemapping, for a filmic look.
  • Color Mask (Color Masking): The mask texture that defines the recolored areas.
    • Red Channel, Green Channel, Blue Channel, and Alpha Channel: The color applied to the areas marked by each channel of the mask.

Flipbook

Two layers: Primary Layer and Secondary Layer, for animated textures like screens, tattoos, or eyes. Each has:

  • Mode: The type of animation.
    • Flipbook: A texture array. Convert GIFs with Tools > Mochie > Convert to Flipbook Asset.
    • Sprite Sheet: A grid of frames in one texture.
  • Flipbook Asset or Sprite Sheet: The animation, with an HDR color and Blending (Add, Sub, Mul, Mulx2, Overlay, Screen, or Lerp). The animation's alpha controls where it appears.
  • Brightness: Multiplies the brightness of the animation.
  • Unlit: The animation ignores scene lighting and always shows at full brightness.
  • Use Alpha: Replaces the material's alpha with the animation's alpha, so transparent areas of the animation become transparent on the mesh.
  • Columns / Rows (Sprite Sheet): How many frames across and down the sprite sheet has.
  • Frame Size (Sprite Sheet): Crops the edges of each frame. Adjust it if neighboring frames bleed into view.
  • Clip Edge (Flipbook): Clips a small border around the edge of the flipbook to remove lines from the edge of the frame. Most obvious when the flipbook is scrolling.
  • Position: Moves the animation across the UVs.
  • Scale: Resizes the animation. Higher values make it larger.
  • Scrolling: Scrolls the animation continuously across the UVs.
  • Rotation: Rotates the animation, in degrees.
  • Speed: How many frames per second the animation plays at.
  • Frame: When enabled, holds the animation on a specific frame instead of playing it. Manual scrubbing doesn't work correctly with a sprite sheet whose columns and rows are both 0.

Outline

Uber (Outline) and Uber X (Outline) only. Draws an outline by rendering a slightly expanded copy of the mesh behind it. Requires the Opaque, Cutout, or Dithered blending mode.

  • Apply Shading: Applies lighting brightness and shadows to the outline. This will also enable light reactivity with the outline emission.
  • Apply Emission: Applies settings from the emission tab to the outline. This will only apply the emission colorpicker tint, however if Base Color Tint is also checked, the emission map will be applied as well.
  • Base Color Tint: Tints the outline with the base color texture. This will also enable the emission map if Apply Emission is checked.
  • Stencil Mode: Will only display the outline outside the mesh, hiding it where it would overlap the mesh itself.
  • Ignore Filter Mask: Filtering will be applied to the entire outline, rather than just the areas allowed by the Filtering Mask.
  • Vertex Color Thickness: Multiplies outline thickness by the mesh vertex colors. The darker the color, the thinner the outline. Black vertices have no outline.
  • Color: The outline's HDR color, with an optional texture, tiling, offset, and scrolling.
    • Use Alpha (Cutout and Dithered): Uses the outline texture's alpha for transparency instead of the base color's.
  • Thickness: How thick the outline is.
  • Multiplier: Multiplies the thickness, for outlines thicker than the slider allows.
  • Min Range: Parts of the outline closer to the camera than this value will not be rendered. Useful for hiding the outline on your own body in first person.

UV Distortion

Warps the texture coordinates of selected features, for effects like heat haze, flowing liquid, or wobbly toon textures.

  • Style: How the distortion is generated.
    • Off: No distortion.
    • Normal Map: A normal map drives the distortion.
    • Simplex: Animated simplex noise drives the distortion.
  • Targets: Which features are distorted:
    • Main: The base color and the other primary maps.
    • Detail: The detail maps.
    • Emission: The first emission map.
    • Rim: The Basic Rim texture.
    • Primary Matcap and Secondary Matcap: The matcaps.
  • Mask: Limits where the distortion applies.
  • Normal Map (Normal Map): The normal map that drives the distortion. The value sets its strength. Includes tiling, offset, and scrolling, which is what animates the distortion.
  • Octaves (Simplex): How many layers of noise are combined. More octaves add finer detail.
  • Strength (Simplex): How far the coordinates are pushed.
  • Speed (Simplex): How fast the noise changes over time.
  • Scale (Simplex): The size of the noise. Higher values give smaller, busier distortion.

Vertex Manipulation

Moves the mesh's vertices in the shader.

  • Expansion: Pushes vertices outward (or inward, with negative values) along their normals, separately on each axis, to inflate or shrink parts of the mesh.
    • Mask: Limits where expansion applies.
    • Clamp Direction: Only pushes vertices in the positive direction on each axis, instead of along their normals in both directions.
  • Position Rounding: Snaps vertices to a grid for a low-poly, jittery look. The value blends between the original and snapped positions.
    • Mask: Limits where rounding applies.
    • Precision: The grid resolution, in steps per meter. Lower values give larger, chunkier snapping.
  • Rotation: Rotates the mesh around its pivot on each axis, in degrees.
  • Position: Moves the mesh on each axis.

Audio Link

Drives effects from VRChat AudioLink frequency bands (Bass, Low Mids, Upper Mids, Highs).

Oscilloscope

Draws the live audio waveform onto the material, like an oscilloscope screen.

  • Strength: Brightness of the waveform.
  • Color: The waveform's HDR color.
  • Margin Left/Right: The horizontal range of the UVs the waveform is drawn in.
  • Margin Top/Bottom: The vertical range of the UVs the waveform is drawn in.
  • Scale: Stretches the waveform.
  • Offset: Moves the waveform.
  • Rotation: Rotates the waveform, in degrees.

Rim

Drives the Basic Rim.

  • Width: How much the rim width reacts to the music.
  • Pulse Strength: Adds extra rim brightness that pulses with the beat. Each pulse ripples outward toward the edges of the mesh.
  • Pulse Remap: The range of the pulse's response to the music.
  • Pulse Width: How easily the pulse is triggered. Higher values let quieter sounds trigger it.
  • Pulse Sharpness: How abruptly the pulse switches on and off.

Triangle Offset πŸ”’

Pushes triangles outward along their normals with the music.

  • Style:
    • Pulse: Each beat travels along the axis from the start position to the end position, popping triangles outward as it passes.
    • Levels: The louder the band, the further along the axis the offset band moves, like a level meter.
  • Axis: The mesh axis the effect travels along: X, Y, or Z.
  • Mask: Limits which triangles move, with tiling, offset, and scrolling.
  • Strength: How far triangles move.
  • Remap: The range of the effect's response to the music.
  • Start Position and End Position: Where the effect starts and ends along the axis, in the mesh's local units.
  • Size (Levels): How wide the band of offset triangles is.

Wireframe πŸ”’

Lights up the mesh's wireframe with the music.

  • Style, Axis, and Mask: The same as Triangle Offset.
  • Strength: How brightly the wireframe lights up.
  • Remap, Start Position, End Position, and Size: The same as Triangle Offset.
  • Color: The HDR color of the lit wireframe.

The AudioLink subsections for Emission, Base Color Dissolve, UV Distortion, Outline, Vertex Manipulation, and Dissolve each have a Band, Strength, and Remap that drive the matching feature.

Special Features πŸ”’

Several features include Clones Only, which applies the effect only to the Clones, leaving the original mesh unaffected.

Distance Fade

Fades the mesh out with distance from the viewer. Requires a non-opaque blending mode.

  • Mode:
    • Off: No fade.
    • Clip: Parts of the mesh further than the range are cut away, with a glowing rim along the cut.
    • Noise: The mesh dissolves with noise between the min and max ranges.
  • Clones Only.
  • Range (Clip): The distance from the viewer, in meters, beyond which the mesh is cut away.
  • Rim Color (Clip): The HDR color of the glowing edge along the cut.
  • Intensity (Clip): How strongly the rim color shows.
  • Width (Clip): How wide the rim is.
  • Min Range (Noise): The distance where the mesh starts dissolving.
  • Max Range (Noise): The distance where the mesh is fully gone.

Dissolve

  • Style:
    • Off: No dissolve.
    • Texture: A texture controls the dissolve pattern. Requires a non-opaque blending mode.
    • Simplex: Animated 3D noise controls the dissolve pattern. Requires a non-opaque blending mode.
    • Geometry: Splits the mesh apart into triangles that fly away.

Texture and Simplex settings:

  • Strength: The dissolve amount. At 0 the mesh is whole; at 1 it's fully dissolved.
  • Flow (Texture): Animates the dissolve pattern so it flows over time, with speed.
  • Generation Speed (Simplex): How fast the noise pattern changes.
  • Noise Scale (Simplex): The size of the noise on each axis. Higher values give smaller, busier holes.
  • Clones Only.
  • Mask: Limits where the dissolve can happen. Black areas never dissolve.
  • Dissolve Map (Texture): The dissolve pattern. Darker areas dissolve first. Includes tiling, offset, and scrolling.
  • Rim Color: The HDR color of the glowing edge along the dissolve.
  • Rim Width: How wide the glowing edge is.

Geometry settings:

  • Axis: The direction the dissolve sweeps across the mesh: X, Y, Z, or Point to Point.
  • Invert Axis (X, Y, and Z): Reverses the sweep direction.
  • Apply Wireframe: Shows the wireframe on triangles as they break away.
  • Clamp Offset Direction: Makes triangles only fly in the positive direction on each axis, instead of along their normals.
  • Clones Only.
  • Clip Position: Where the dissolve front is along the axis. Animate it to sweep the dissolve across the mesh.
  • Falloff Size: How wide the transition region is, where triangles are partway through breaking away.
  • Point 1 and Point 2 (Point to Point): The start and end points that define the sweep direction.
  • Offset Amount: How far triangles fly on each axis.
  • Offset Clip: How far past the dissolve front triangles travel before they disappear.
  • Offset Filter: Only offsets every Nth triangle, so only some break away while the rest disappear in place.

Screenspace

Pins the mesh in front of the camera of anyone within range of the object, like a HUD.

  • Range: How close a viewer must be to the object, in meters, to see the effect.
  • Position: X and Y move the mesh on screen, and Z scales it.
  • Rotation: Rotates the mesh on each axis, in degrees. The button next to these resets them.

Clones

Renders up to 8 copies of the avatar at offsets from the original.

  • Enable: How visible the clones are. As the value approaches 1, clones slide in from the Offset Direction into their positions.
  • Offset Direction: The direction clones slide in from as they appear.
  • Clamp Offset Direction: Makes clones only slide in the positive direction on each axis.
  • Pattern Preset: Arranges the clones in a preset layout: Diamond, Pyramid, or Stack.
  • Clones: The position of each of the 8 clones, relative to the original, each with its own toggle.

Glitch

Makes the mesh jitter and spike along its normals, like a digital glitch.

  • Clones Only.
  • Instability: A constant, subtle jitter.
  • Intensity: How far the occasional glitch spikes reach.
  • Frequency: How often glitch spikes happen.

Shatter Culling

Breaks the mesh apart into triangles as the viewer gets close, and removes them entirely up close. Useful for stopping others from clipping into your avatar.

  • Clones Only.
  • Spread: How far triangles fly apart.
  • Min Range: The distance where triangles are fully spread.
  • Max Range: The distance where triangles start spreading.
  • Culling Range: The distance inside which triangles are removed.

Wireframe

Overlays the mesh's wireframe.

  • Clones Only.
  • Pattern: Triangle shows every edge; Quad hides the diagonal edges so quads look like quads.
  • Color: The HDR wire color.
  • Wire Opacity: How visible the wires are.
  • Fill Opacity: How much the faces between the wires are filled with the wire color.
  • Use Alpha (transparent modes): Makes the faces between the wires transparent, so only the wireframe shows.

Render Settings

General

  • Render Queue: When the material draws relative to other objects. Refraction and SSR need 2501 or above.
  • Culling:
    • Off: Renders both back and front faces at all times. Only use this if absolutely necessary.
    • Front: Culls front faces, only displaying back faces.
    • Back: Culls back faces, only displaying front faces.
  • ZWrite: Whether the material writes to the depth buffer. Usually on for opaque materials and off for transparent ones.
  • ZTest: How the material is depth tested against other objects. LessEqual is the default; Always draws it on top of everything.
  • Fallback Shader: The shader VRChat shows when your shaders are blocked by someone's safety settings: Unlit, Toon, Particle, Matcap, Standard, DoubleSided, or Hidden.
  • Invisible: Hides the mesh entirely. Useful for toggling visibility with an animation.

Near Clipping

  • Enable: Clips pixels closer to the camera than the specified range. Useful for keeping your own head or hair out of view in first person. Doesn't apply in mirrors.
  • Mask: Limits which areas get clipped. White areas clip; black areas never do.
  • Range: The clipping distance from the camera, in meters.

Stencil

Advanced settings for the stencil buffer, which lets materials mask each other. A reset button in this section's header restores the defaults.

  • Reference Value: The stencil value this material reads and writes.
  • Pass Operation: What happens to the stencil buffer when the material draws.
  • Fail Operation: What happens when the stencil test fails.
  • Z Fail Operation: What happens when the stencil test passes but the depth test fails.
  • Compare Function: How the stencil buffer is compared with the reference value to decide whether to draw.
  • Reapply Outline Configuration (Outline variants with Stencil Mode on): Restores the stencil settings the outline's Stencil Mode needs.

πŸ”’ = Patrons only


Avatar Shaders

Uber
Uber X πŸ”’
Uber X (Outline) πŸ”’
Taken πŸ”’
Avatar Props πŸ”’

Environment Shaders

Standard
Water
Water (Tessellated) πŸ”’
Underwater Visuals
Glass
Splat Mapping πŸ”’
LED Screen

Special Effects Shaders

Particles
Particles X πŸ”’
Screen FX
Screen FX X πŸ”’
Corruption πŸ”’

Links

Clone this wiki locally