Main Render Settings: Difference between revisions

From Warren's Fast Fur Shader
Jump to navigation Jump to search
Line 87: Line 87:


=== Decal Positioning / Sizing ===
=== Decal Positioning / Sizing ===
The decal coordinates specify the centre of the decal. Rotation and scaling are applied while keeping the centre of the decal fixed.
The decal UV coordinates specify the centre of the decal. Rotation and scaling are applied while keeping the centre of the decal fixed.


Although the decal's position can be set manually, it is much easier to zoom-in to where you want the decal to be, then click the "Click here to set decal position" button. Note, however, that this uses Unity's raycasting, which does not always work reliably (I'm not sure why). If it does not work, move or rotate the camera slightly and try again.
Although the decal's position can be set manually, it is much easier to zoom-in to where you want the decal to be, then click the "Click here to set decal position" button. Note, however, that this uses Unity's raycasting, which does not always work reliably (I'm not sure why). If it does not work, move or rotate the camera slightly and try again.

Revision as of 21:31, 8 July 2023

Main Render Settings.jpg

Fast Fur Render Pipeline

This determines how the shader works internally:

  • Fallback Pipeline - Slow
  • Turbo Pipeline - Fast <- This is always the recommended option
  • Super Pipeline - Very Fast

The Super Pipeline is currently unavailable due to AMD driver bugs. For more details about each option, consult the Fast Fur Render Pipeline options page.

Render Mode

If the shader is set to "Cutout", then any areas where the Albedo Map's Alpha channel is lower than the "Alpha Cutoff" value will be see-through. "Opaque" disables this feature.

An example of a visible black UV seam caused by insufficient overpainting.

Aggressively Hide Albedo UV Seams

Hair combing works by shifting texture sample UV coordinates. For the albedo map, this allows the shader to colour each hair to match the colour at the hair's root.

However, if a sample location is adjacent to a UV island edge, this may cause the sample to be taken from a location that is outside of the visible mesh. If the texture does not have enough "overpainting", then the sample may be black or some other incorrect colour.

The ideal fix is to add more overpainting to the albedo map using Substance Painter, Blender, or whichever program originally created the textures. If this is not possible, then "Agressively Hide Albedo UV Seams" can be used to disable the UV texture shifting for the albedo map. The downside of this feature is that the individual hairs will no longer be consistently coloured, but rather they will change colour along their lengths as the albedo map changes colour below them.

Albedo Hue Shift

Allows the albedo map's colour to be "rotated", so that Red -> Green -> Blue -> Red.

If the "Albedo Hue Shift Cycling" is set to use an AudioLink channel, then the hue will shift whenever the matching AudioLink band is active, with stronger sounds rotating faster. When the sound stops, the rotation will stop, and it will remain on the colour it has stopped at until another matching sound plays.

Smoothness

Smoothness currently only affects the skin. The fur has simplified lighting, and does not currently support it.

Smoothness determines how sharp or diffuse light reflections are. There are 2 possible sources for the Smoothness strength: the albedo texture alpha channel, or the metallic texture alpha channel. If the metallic texture alpha texture is selected, but no metallic texture is provided, then the Smoothness will be directly settable with a slider instead

Metallic

The metallic map is a single channel map (ie. red) that determines how metallic the surface it.

Metallic surfaces reflect light rather than absorbing and re-emitting it. Because of this, if the material is set to be metallic, but "Reflections" are turned off, the material will appear to be very dark because there is nothing to reflect except the lights in the scene.

Note that the fur uses a simplified approximation of metallic lighting, and will not match the appearance of the skin which uses Unity's standard lighting functions. The fur only takes metallic texture samples at each vertex, which are then averaged across the surface of each triangle.

Occlusion Map

The occlusion map is a single channel map (ie. red) that determines how much light is able to reach the surface.

Currently, the occlusion map is also used by the fur "Touch Response" feature, to selectively turn responsiveness off and prevent it from triggering falsely in body crevices.

Reflections

If a world does not have reflection probes, then this option will do nothing.

The fur will only reflect if it is metallic, since it currently does not support smoothness. The skin will reflect if it is metallic and/or smooth.

Show/Hide in Mirror

This feature is specific to VR Chat mirrors. Determines if the shader will only render in mirrors, not render in mirrors, or always render.

AudioLink and Luma Glow Master Controls

AudioLink.jpg

Master Enable / Strength

The Master controls affect all AudioLink effects:

  • Decals
  • Emission Map
  • Albedo Hue Cycling
  • Hair Vibration

These individual AudioLink effects must also be enabled and configured separately, in their respective shader settings.

Note: Furality's "Luma Glow" effects are based on AudioLink. The shader handles both similarly.

Dynamic Layers

A close-up of my ear, showing the dynamic layers in action (recorded using the Super Pipeline).

Dynamic layers apply AudioLink effects as a moving layer, starting at the hair's roots and moving outwards towards the tips.

Because the number of fur layers being rendered decreases with distance, the dynamic layer effect is most pronounced at closer distances when lots of layers of fur are being rendered. At further distances the effect will tend to strobe, rather than appear to be moving.

"Dynamic Layers Filtering" will interpolate and blend incoming AudioLink data, causing the effect to fade out more slowly.

Static Layers

A close-up of my ear, showing the static layers in action (recorded using the Super Pipeline).

Static layers apply AudioLink effects in 4 blended layers: skin, roots, middle, and tips.

The effect does not move; all layers light up at the same time.

"Static Layers Filtering" will use interpolated AudioLink data, causing the effect to fade in and out more slowly.

Decals

Decals.jpg

Decal Positioning / Sizing

The decal UV coordinates specify the centre of the decal. Rotation and scaling are applied while keeping the centre of the decal fixed.

Although the decal's position can be set manually, it is much easier to zoom-in to where you want the decal to be, then click the "Click here to set decal position" button. Note, however, that this uses Unity's raycasting, which does not always work reliably (I'm not sure why). If it does not work, move or rotate the camera slightly and try again.

If tiling is on, the decal will repeat. Otherwise it will only appear in one location.

Decal Albedo

The decal will be applied as though it is part of the fur's albedo colour.

Decal Emission

The decal will give off its own light.

Note that if you intend the decal to only light up when AudioLink is active, you should leave this off.

Decal Hue Shift

Allows the decal map's colour to be "rotated", so that Red -> Green -> Blue -> Red.

If the "Decal Hue Shift Cycling" is set to use an AudioLink channel, then the hue will shift whenever the matching AudioLink band is active, with stronger sounds rotating faster. When the sound stops, the rotation will stop, and it will remain on the colour it has stopped at until another matching sound plays.

AudioLink Reactive

When an AudioLink band is active, the decal will give off additional emission. This can be applied as static layers, dynamic layers, or both.

Each of the 4 AudioLink bands can be assigned to light up with its own colour, which will be multiplied by the decal's colour. Typically this means you would want to use white decals for AudioLink effects, so that the actual colour can then be determined by the AudioLink band colour.

In the screen grab above, I have configured a heart decal on my chest to light up the dynamic layers in red whenever a bass note plays.

Luma Glow

Luma Glow allows a world to broadcast colour data directly, rather than as a reaction to music.

"Zones" will be applied as a consistent emission colour along the entire length of the hairs, using the AudioLink static layer skin, root, middle, and tips strength settings.

"Gradients" will be applied as a gradient of emission colours, changing along the length of the hairs.

The differences between the various zones and gradients is determined by the world's authour.