Shaders: Difference between revisions

From VRChat Wiki
DAG-XR (talk | contribs)
m Usr 8ee44c1a-f905-4e08-bb61-e1cd34e09fc0 moved page Shader to Shaders: Changed article name to 'shaders'; Manual of Style for article names
~Pausbe (talk | contribs)
Corrected sentence about render pipeline
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Stub}}
{{Noticebox/Official}}{{Stub}}


A Shader is a program in the Unity Game Engine that is used to create the appearance of a Material.
'''Shaders''' are components within [[wikipedia:Unity_(game_engine)|Unity]], and the [[VRChat SDK]], that is used to create the appearance of a material.


The usage of Shaders in VRChat are one of the main fundamental aspects of [[Avatars|Avatar]] and [[Worlds|World]] creation. A Shader program defines the look and appearance of the Material consisting of various special effects, which are used on an Avatar's mesh or a World object. Additionally, anything you see when you play VRChat (Avatars, the [[Main Menu]], [[HUD]], the World) are all rendered using a Shader.
== Overview ==
The usage of shaders in VRChat are practical for both [[Avatars|avatar]] and [[Worlds|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 [[HUD|HUDs]], all have different rendered forms of shaders.


===Types 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.
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, which VRChat is rendered on.
Shaders are coded through various methods in Unity for the Built-in Render Pipeline, which VRChat is rendered on.


===VRChat Shaders===
===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.
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====
====Standard Lite====
Line 20: Line 21:
There are a few different things with Standard Lite however, such as:
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)
*'''Specular Lightprobe Hack:''' When enabled, will instead use light probes as light sources for specularity. (Default)
*'''MonoSH Support:''' Used for Worlds that is using the Bakery Lightmapper.
*'''MonoSH Support:''' Used for worlds that are using Bakery's lightmapper.


====Toon Lit====
====Toon Lit====
<code>VRChat/Mobile/Toon Lit</code>
<code>VRChat/Mobile/Toon Lit</code>


Toon Lit is a very basic flat Shader consisting of one feature. There is no shading performed whatsoever and is instead rendered Flat.
Toon Lit is a very basic flat shader consisting of one feature: no shading is performed, whatsoever and is instead rendered flat.


====Supersampled UI====
====Supersampled UI====
<code>VRChat/Mobile/Worlds/Supersampled UI</code>
<code>VRChat/Mobile/Worlds/Supersampled UI</code>


The Supersampled UI shader is primarily used in Worlds containing interactive User Interface elements. The main difference however is that it provides better sampling of Text in the 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, you most commonly see these elements in "Settings" panels for the World you are in.
In many worlds, it is common to see these elements in the "Settings" panels for the world you are in.
 
===Creating Shaders===
For guaranteed compatibility, it is recommended to target no higher than shader model 4.5 (although apparently 5.0 should also generally work even on Quest).
 
== Official resources ==
 
* [https://docs.unity3d.com/Manual/Shaders.html Unity - Manual: Shaders] on ''unity3d.com''
** [https://docs.unity3d.com/550/Documentation/Manual/SL-Reference.html Shader Reference] on ''unity3d.com''
** [https://docs.unity3d.com/550/Documentation/Manual/ShaderTut2.html Shaders: vertex and fragment programs] on ''unity3d.com''
* [https://creators.vrchat.com/worlds/udon/vrc-graphics/#vrcshader VRCShader] on ''creators.vrchat.com''
* [https://creators.vrchat.com/worlds/udon/vrc-graphics/vrchat-shader-globals/ VRChat Shader Globals] on ''creators.vrchat.com''
* [https://creators.vrchat.com/avatars/avatar-optimizing-tips/#use-optimized-shaders Avatar Optimization - Use Optimized Shaders] on ''creators.vrchat.com''

Latest revision as of 22:57, 26 February 2026

V · EThis is an official VRChat information page!
It is reviewed and approved by the VRCWiki Team. Learn how to contribute to this page by reading the Contribution Guide.
V · EThis page is a stub.
You can help the VRChat Wiki by improving it.
[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 Render Pipeline, 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.

Creating Shaders

For guaranteed compatibility, it is recommended to target no higher than shader model 4.5 (although apparently 5.0 should also generally work even on Quest).

Official resources