mirror of
https://github.com/muskit/H3VR-TNH-Quality-of-Life-Improvements.git
synced 2026-06-03 04:34:26 -07:00
Initial commit
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
// Alloy Physical Shader Framework
|
||||
// Copyright 2013-2017 RUST LLC.
|
||||
// http://www.alloy.rustltd.com/
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// @file DirectionalBlend.cginc
|
||||
/// @brief Allows blending based how much a normal faces a given direction.
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef ALLOY_SHADERS_FEATURE_DIRECTIONAL_BLEND_CGINC
|
||||
#define ALLOY_SHADERS_FEATURE_DIRECTIONAL_BLEND_CGINC
|
||||
|
||||
#ifdef A_DIRECTIONAL_BLEND_ON
|
||||
#ifndef _DIRECTIONALBLENDMODE_WORLD
|
||||
#ifdef A_DIRECTIONAL_BLEND_MODE_OFF
|
||||
#define _DIRECTIONALBLENDMODE_WORLD
|
||||
#else
|
||||
#define A_WORLD_TO_OBJECT_ON
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef A_NORMAL_WORLD_ON
|
||||
#define A_NORMAL_WORLD_ON
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "Assets/Alloy/Shaders/Framework/Feature.cginc"
|
||||
|
||||
#ifdef A_DIRECTIONAL_BLEND_ON
|
||||
/// Direction around which the blending occurs.
|
||||
/// Expects a normalized direction vector.
|
||||
half3 _DirectionalBlendDirection;
|
||||
|
||||
/// Directional Blend weight.
|
||||
/// Expects values in the range [0,1].
|
||||
half _OrientedScale;
|
||||
|
||||
/// Hemispherical cutoff where blend begins.
|
||||
/// Expects values in the range [0,1].
|
||||
half _OrientedCutoff;
|
||||
|
||||
/// Offset from cutoff where smooth blending occurs.
|
||||
/// Expects values in the range [0.0001,1].
|
||||
half _OrientedBlend;
|
||||
|
||||
/// Controls how much the vertex color alpha influences the cutoff.
|
||||
/// Expects values in the range [0,1].
|
||||
half _DirectionalBlendAlphaVertexTint;
|
||||
#endif
|
||||
|
||||
void aDirectionalBlend(
|
||||
inout ASurface s)
|
||||
{
|
||||
#ifdef A_DIRECTIONAL_BLEND_ON
|
||||
#ifdef _DIRECTIONALBLENDMODE_WORLD
|
||||
half3 normal = s.normalWorld;
|
||||
#else
|
||||
half3 normal = UnityWorldToObjectDir(s.normalWorld);
|
||||
#endif
|
||||
|
||||
// Convert [-1,1] -> [1,0] to flip direction for free.
|
||||
half mask = dot(normal, _DirectionalBlendDirection) * -0.5h + 0.5h;
|
||||
aBlendRangeMask(s, mask, _OrientedScale, _OrientedCutoff, _OrientedBlend, _DirectionalBlendAlphaVertexTint);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif // ALLOY_SHADERS_FEATURE_DIRECTIONAL_BLEND_CGINC
|
||||
Reference in New Issue
Block a user