Shaders


[Reason: You can contribute by expanding and proofreading this article, in accordance with the Manual of Style.]
Shaders are components within Unity, and the VRChat SDK, that is used to create the appearance of a material.
Overview
The usage of shaders in VRChat are practical for both avatar and world design. A shader can define the look, and appearance of a material consisting of various special effects, which are applied on an avatar's mesh or a world object. Additionally, any visual data when using VRChat, from avatars, worlds, menus, and HUDs, all have different rendered forms of shaders.
Types of shaders
In VRChat, there are a large number of various different shading styles seen in the game. They can have the appearance of flat colors in a cartoony style, or have a realistic appearance where rounded areas having a dimmed appearance when reacting to certain lighting conditions.
Shaders are coded through various methods in Unity for the built-in Rendering Pipeline (URP), which VRChat is rendered on.
VRChat Shaders
The VRChat SDK includes a few shaders, created by the developers for usage in both avatar and world creation. Many of them are designed to be optimized for mobile platforms, such as on the Meta Quest.
Standard Lite
VRChat/Mobile/Standard Lite
The Standard Lite shader is based off of Unity's default Standard Shader, but with a few improvements. It's mainly designed to be lightweight and easy for the game to render on mobile platforms. The features of Standard Lite closely match with Unity Standard's features.
There are a few different things with Standard Lite however, such as:
- Specular Lightprobe Hack: When enabled, will instead use light probes as light sources for specularity. (Default)
- MonoSH Support: Used for worlds that are using Bakery's lightmapper.
Toon Lit
VRChat/Mobile/Toon Lit
Toon Lit is a very basic flat shader consisting of one feature: no shading is performed, whatsoever and is instead rendered flat.
Supersampled UI
VRChat/Mobile/Worlds/Supersampled UI
The supersampled UI shader is primarily used in worlds containing interactive User Interface elements. The main difference, however, is that this shader provides better sampling of text in the UI.
In many worlds, it is common to see these elements in the "Settings" panels for the world you are in.
Official resources
- Unity - Manual: Shaders on unity3d.com
- Shader Reference on unity3d.com
- Shaders: vertex and fragment programs on unity3d.com
- VRCShader on creators.vrchat.com
- VRChat Shader Globals on creators.vrchat.com
- Avatar Optimization - Use Optimized Shaders on creators.vrchat.com