Outlines | Poiyomi Shaders (2024)

The Outlines feature creates outlines using a simplified pass with the mesh offset by a small amount. This is also known as an "Inverted Hull" outline.

For smooth meshes, the inverted hull technique works well, but for hard-edged models, it can have noticeable seams. To correct this, you can bake a version of the mesh with smoothed normals baked into the vertex color, using the Poi Vertex Color Baker. This will overwrite other vertex color data, and will create a unique version of the mesh.

Changes in 9.0

All Outline features have been reintroduced to the main Shader variant as of version 9.0 and newer. There is no need to select a separate variant in order to use Outlines.

Example of the inverted hull Outline technique on two Material Spheres.

Mode

  • Type: Dropdown, Options: Basic/Rim Light/Directional/Drop Shadow
    • Default: Basic

Changes the mode of the outline.

Basic

Default mode. The width of the outline is constant around the model.

Rim Light

Rim Light actually uses the direction of the light to determine the width of the outline. Outlines will be thicker in the direction of the light. The color of the outline will be tinted with a value between the direct light color and the base color, according to the Rim Light Blend.

Rim Light Blend

  • Type: Float, Range: 0.0 - 1.0

How much to blend between the base color and the direct light color as the tint of the outline. At 0, the outline will be tinted with the base color. At 1, the outline will be tinted with the direct light color.

Only available when mode is set to Rim Light.

Directional

Directional is similar to Rim Light in that it biases the outline to a specific direction, but the Directional Offset directly specifies what direction to use.

Directional Offset X Y

  • Type: Vector4 (Only X/Y used)

Direction to use for the outline. Calculated from only the X (horizontal) and Y (vertical) values.

Drop Shadow

Drop Shadow is similar to Directional in that it biases the outline to a specific direction, but drop shadow moves the outline in X, Y, and Z, instead of specifying a direction to bias the thickness.

In Drop Shadow mode, the Width is not used.

Drop Direction X Y

  • Type: Vector4 (Only X/Y/Z used)

How much to offset the outline in the X, Y, and Z directions, in unity base units.

Space

  • Type: Dropdown, Options: Local/World
    • Default: Local

Determines where the size of the Outlines should assume the initial scale units from. Influences the Outline Size.

  • Local renders the Size based on the Scale Units of your Avatar.
  • World renders the Size based on World Units.

info

If you choose the Space to be World, the Outline Size will remain the same regardless of your Avatar Scale. Keep this in mind when choosing this option.

Outline Size

  • Type: Float

Thickness of the Outline, in Unity base units (scaled down by 100).

Outline Size Mask

  • Type: Data Texture (sRGB: OFF)

Mask Texture in Grayscale that determines the thickness of the Outline in various places on the model. Areas in darker Grayscale will reduce the thickness based on the initial Outline Size value set.

Examples:

  • If your Outline Size is 0.5 and a section of your Texture is 50% Gray, it will reduce the thickness in that area to about 0.25 thickness, which is half of your Outline Size.
  • If a section of your Texture is Black, it will reduce the thickness all the way down to 0 thickness.
    • If Clip 0 Width is enabled in this scenario, the Outline will be clipped entirely.

note

This determines the Outline Width per-vertex, not per-pixel.

Outline Texture

  • Type: Data Texture (sRGB: ON)

Texture to use for the Outline. Will be tinted based on the Color Adjust settings.

Color

  • Type: Color

Base Color of the Outline. Can be mixed in various ways depending on the Mode settings.

Outline Emission

  • Type: Float, Range: 0.0 - 20.0

How much Emission the Outline should have. Creates a glowing effect, especially in Worlds with Post Processing Bloom.

MainTex Blend

  • Type: Float, Range: 0.0 - 1.0

How much the Outline Color should be blended with your Texture.

UTS2 style Blend

  • Type: Checkbox

Determines if you want the Outlines to blend in a way that is similar to Unity-Chan Toon Shader 2 (UTS2).

Color Adjust

  • Type: Checkbox

Enables the ability to modify the Outline Color in a similar fashion to Color Adjust. This is applied directly after the main Outline Color, and will not affect other sections that modify the base Outline Color.

Hue

  • Type: Float, Range: 0.0 - 1.0

How much to shift the Outline Color around the Hue Circle.

Saturation

  • Type: Float, Range: 0.0 - 2.0

Adjusts the saturation of the Outline Color.

  • A value of 0 will make the Oultine Color fully desaturate (Grayscale).
  • A value of 1 will not alter the color at all.
  • A value greater than 1 will increase the Saturation of the outline Color.

Value

  • Type: Float, Range: 0.0 - 2.0

Adjusts the influence of the HSV Color Model.

Gamma

  • Type: Float, Range: 0.0 - 2.0

Adjusts the Brightness of the Color.

Shift Speed

  • Type: Float

How much to constantly shift the hue with time.

For reference, a value of 1 will result in a full Hue Shift cycle every 20 seconds.

Distance Alpha

  • Type: Checkbox

When enabled, Distance Alpha can modify the Alpha value of the Outlines based on the distance from the Camera to the Object or Pixel.

Requires Transparency

Distance Alpha requires Transparency in order for it to work.

Pos To Use

  • Type: Dropdown, Options: Object Position/Pixel Position

Which position to use to calculate distance.

  • Object Position will calculate distance relative to the origin of the Outline, resulting in the whole Outline having a uniform alpha change. This is useful for making an entire Outline change alpha based on the distance from the Outline itself.
  • Pixel Position will calculate distance relative to the position of each pixel on the Outline. This means different parts of an Outline can have different levels of alpha. This is useful for making parts of an Outline appear or disappear based on distance without the whole Outline being affected.

Min Distance Alpha

  • Type: Float, Range: 0.0 - 1.0

The alpha multiplier that will be applied at the Min Distance.

Max Distance Alpha

  • Type: Float, Range: 0.0 - 1.0

The alpha multiplier that will be applied at the Max Distance.

Min Distance

  • Type: Float

The distance (in meters) at which the Min Distance Alpha multiplier will be applied.

Max Distance

  • Type: Float

The distance (in meters) at which the Max Distance Alpha multiplier will be applied.

Fixed Size Over Distance

  • Type: Checkbox
    • Default: true

Enables a fixed screen-space size for outlines. This can allow control of the outlines to not get smaller when moving away from the model.

Fixed Width

  • Type: Float, Range: 0.0 - 1.0
    • Default: 0.5

The width of the fixed outline size.

Fixed Size Max Distance

  • Type: Float
    • Default: 1

How far away from the model to use the fixed size outlines in Unity Base Units. Beyond this distance, the outlines will properly scale accordingly.

Avoid the "Thick Outlines" Problem

Keep your Max Distance value at a small number in order to ensure they scale correctly without blocking your Avatar's visibility when viewed at a far distance!

Lighting

  • Type: Checkbox
    • Default: true

Enables lighting for the Outline. This darkens the outline color in shadowed areas.

Shadow Strength

  • Type: Float, Range: 0.0 - 1.0

Shadow intensity of the Outlines.

Vertex Colors

Vertex Color Normals

  • Type: Checkbox

Use the vertex colors of the model, if they've been specially prepared. The (smoothed) vertex colors are used as the normal data.

Vertex Color Mask

  • Type: Dropdown, Options: Off/R/G/B/A

Choose which Color channel to use in your Mask for the Vertex Colors.

Rendering Options

Clip 0 Width

  • Type: Checkbox

Enables clipping of the outline if a vertex has 0 outline thickness.

tip

If using an Outline Size Mask, all areas that are marked in Black will be clipped when this option is enabled. This can be useful for certain areas of your Avatar that have inverted normals, such as the Eyes.

Override Base Alpha

  • Type: Checkbox

Sets the base fragment Alpha to the Outline's Alpha value.

Cam Z Offset

  • Type: Float
    • Default: 0

How much to offset the Camera Z Position when Rendering the Outlines. This is useful for giving control over the clipping of the Outlines.

Cull

  • Type: Dropdown, Options: Off/Front/Back
    • Default: Front

Which faces to cull. For the inverted hull technique, this should be set to Front.

ZTest

  • Type: Dropdown, Options: Disabled/Never/Less/Equal/LessEqual/Greater/NotEqual/GreaterEqual/Always
    • Default: LessEqual

Sets how the Outline Stencil should test the depth buffer. By default, the depth buffer is tested, and if the depth value is not less than or equal to the current value, the Outline is discarded.

AudioLink

info

This section allows control of the Outlines through AudioLink. It will only be exposed when AudioLink is activated on the Material.

Demonstration of the Bass Band controlling the Outline Size, Emission, and Color via AudioLink.

Size Band

  • Type: Dropdown, Options: Bass/Low Mid/High Mid/Treble/Volume

Which Band to use for the Outline Size adjustment.

Size Mod

  • Type: Vector2

How much to add to or subtract from the Outline Size with Audio.

ModifierFunction
MinAmount changed to Outline Size with No Audio in Size Band
MaxAmount changed to Outline Size with Max Audio in Size Band

Emission Band

  • Type: Dropdown, Options: Bass/Low Mid/High Mid/Treble/Volume

Which Band to use for Outline Emission adjustment.

Emission Mod

  • Type: Vector2

How much to add to or subtract from the Outline Emission Intensity with Audio.

ModifierFunction
MinAmount changed to Outline Emission with No Audio in Emission Band
MaxAmount changed to Outline Emission with Max Audio in Emission Band

Color

  • Type: Checkbox

Enables the ability to change the Outline Color with Audio.

Color Options

Band

  • Type: Dropdown, Options: Bass/Low Mid/High Mid/Treble/Volume

Which Band to use to change the Outline Color with Audio.

Replace

  • Type: Vector2

How much to replace the Outline Color with Audio.

ModifierFunction
MinAmount of Outline Color replaced with No Audio in Color Band
MaxAmount of Outline Color replaced with Max Audio in Color Band

Color

  • Type: Color

Which color to replace the current Outline Color with Audio.

Outlines | Poiyomi Shaders (2024)

FAQs

Is Poiyomi Pro worth it? ›

Poiyomi Pro offers additional features and functionality, and always has the latest developments. It contains everything in the free version, plus features like: Grabpass shading effects, like Refraction and Blur. Fur shader, supporting all of the main shader's feature plus fluffy fur.

Does Poiyomi work on Quest? ›

Quest and Android hardware is underpowered and doesn't support features that Poiyomi Shaders need to work properly. Even if you managed to upload an avatar with unsupported shaders on it, the VRChat client will override them at runtime.

How to apply poiyomi shader? ›

Download & Install
  1. Join the Poiyomi Discord Server and download the latest . unitypackage posted in #free-shader channel. ...
  2. Import the Unity Package into your Unity Project from the Menu Bar via Assets > Import Package > Custom Package .
  3. Click Import when prompted.
  4. Done! Enjoy using Poiyomi Shaders.
Jul 24, 2024

What shader to use for quest avatars? ›

VRChat's shaders, mainly Standard Lite and Toon lit, are required for use on Quest Avatars.

How do you unlock shaders in Poiyomi? ›

At the top of a shader, there's a button labeled Lock In Optimized Shader . Pressing this will lock the shader, graying out any options that have not been marked for animation. This may take a few seconds to complete. To unlock the shader, just press the button again.

How to fix avatar uses unsupported shaders? ›

Replace the Shaders
  1. Use the Avatar Shader Converter.
  2. Replace the Shaders on Your Own. Find the Material That Is Using Incorrect Shaders. Replace the Shaders.

How do you upgrade poiyomi shaders? ›

To upgrade the shader, delete the _PoiyomiShaders folder in your assets. If you've changed import settings for any included textures, you can delete everything but the Textures folder in _PoiyomiShaders . Sometimes when updating, your locked materials may get stuck in the locked state.

Is poiyomi open source? ›

The current publicly accessible version of Poiyomi Toon Shader (also known as the Free Version) is licensed under the MIT Open Source License. The MIT License is one of the most straightforward and permissive licenses used for software.

How do you get toon shaders in Unity? ›

The Unity Toon Shader is a preview/experimental package and Installing the package requires the following steps.
  1. Make sure git is installed in the system.
  2. Open Package Manager window.
  3. Click the + button, and choose Add package from git URL.
  4. Type in com. unity. toonshader and click the Add button.

How do I convert shaders to URP shaders in Unity? ›

Migrating built-in shaders to the Universal Render Pipeline
  1. Open your project in Unity.
  2. Go to Window > Package Manager.
  3. In the Packages dropdown list, select Unity Registry. ...
  4. From the list of packages, select Universal RP.
  5. Click Install. ...
  6. Go to Edit > Render Pipeline > Universal Render Pipeline.

How to create PBR shader Unity? ›

In Unity a Shader Graph Asset appears as a normal shader. To create a Shader Graph Asset you click the create menu in the Project Window and select Shader from the dropdown. From here you can create either a PBR or Unlit Shader Graph Asset. This will create a Shader Graph Asset in the project.

Does poiyomi shader work on quest? ›

Sadly Poi or any custom shaders can't be imported strait up in quest. You have some improvements that are being made to mobile shaders, but you won't be able to do much outside of this.

How do I use Oculus shader? ›

In-game, navigate to Options > Video Settings > Shader Packs... Open the Shaders Folder, and move your desired shader pack into it. Back in Minecraft, enable shaders and select your desired shader pack; Click Apply.

What is a good VRChat shader? ›

One of the most popular shader for VRChat avatars is the free Poiyomi Shader as has an extensive list of features for your avatar.

References

Top Articles
Latest Posts
Article information

Author: Aracelis Kilback

Last Updated:

Views: 5643

Rating: 4.3 / 5 (64 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Aracelis Kilback

Birthday: 1994-11-22

Address: Apt. 895 30151 Green Plain, Lake Mariela, RI 98141

Phone: +5992291857476

Job: Legal Officer

Hobby: LARPing, role-playing games, Slacklining, Reading, Inline skating, Brazilian jiu-jitsu, Dance

Introduction: My name is Aracelis Kilback, I am a nice, gentle, agreeable, joyous, attractive, combative, gifted person who loves writing and wants to share my knowledge and understanding with you.