stuff
This commit is contained in:
70
modules/wallpaper-engine/shaders/shadowcasterfoliage4.vert
Normal file
70
modules/wallpaper-engine/shaders/shadowcasterfoliage4.vert
Normal file
@@ -0,0 +1,70 @@
|
||||
|
||||
// [COMBO] {"combo":"SKINNING"}
|
||||
// [COMBO] {"combo":"MORPHING"}
|
||||
// [COMBO] {"combo":"MORPHING_NORMALS"}
|
||||
// [COMBO] {"combo":"BONECOUNT"}
|
||||
// [COMBO] {"combo":"LEAVESUVMODE"}
|
||||
|
||||
#include "base/model_vertex_v1.h"
|
||||
#include "common_foliage.h"
|
||||
|
||||
uniform mat4 g_ViewportViewProjectionMatrices[6];
|
||||
in uint gl_InstanceID;
|
||||
varying uint gl_ViewportIndex;
|
||||
|
||||
attribute vec3 a_Position;
|
||||
attribute vec2 a_TexCoord;
|
||||
|
||||
#if MORPHING
|
||||
uniform sampler2D g_Texture1; // {"material":"morph"}
|
||||
uniform vec4 g_Texture1Resolution;
|
||||
#endif
|
||||
|
||||
#if ALPHATOCOVERAGE
|
||||
varying vec2 v_TexCoord;
|
||||
#endif
|
||||
|
||||
uniform float g_Time;
|
||||
uniform float g_SpeedLeaves; // {"material":"foliagespeedleaves"}
|
||||
uniform float g_SpeedBase; // {"material":"foliagespeedbase"}
|
||||
uniform float g_StrengthLeaves; // {"material":"strengthleaves"}
|
||||
uniform float g_StrengthBase; // {"material":"strengthbase"}
|
||||
uniform float g_Phase; // {"material":"foliagephase"}
|
||||
uniform float g_FoliageScale; // {"material":"foliagescale"}
|
||||
uniform float g_Direction; // {"material":"scrolldirection"}
|
||||
uniform float g_CutOff; // {"material":"foliagecutoff"}
|
||||
uniform float g_TreeHeight; // {"material":"foliageheight"}
|
||||
uniform float g_TreeRadius; // {"material":"foliageradius"}
|
||||
uniform vec2 g_FoliageUVBounds; // {"material":"foliageuvbounds"}
|
||||
|
||||
void main() {
|
||||
#if ALPHATOCOVERAGE
|
||||
v_TexCoord = a_TexCoord;
|
||||
#endif
|
||||
|
||||
vec3 localPos = a_Position;
|
||||
|
||||
#if MORPHING
|
||||
ApplyMorphPosition(gl_VertexID, MAKE_SAMPLER2D_ARGUMENT(g_Texture1), g_Texture1Texel, g_MorphOffsets, g_MorphWeights, localPos);
|
||||
#endif
|
||||
|
||||
vec4 worldPos;
|
||||
#if SKINNING
|
||||
ApplySkinningPosition(localPos, a_BlendIndices, a_BlendWeights, worldPos);
|
||||
#else
|
||||
ApplyPosition(localPos, worldPos);
|
||||
#endif
|
||||
|
||||
#if LEAVESUVMODE
|
||||
vec2 leafUVs = a_TexCoord;
|
||||
#else
|
||||
vec2 leafUVs = CAST2(1);
|
||||
#endif
|
||||
|
||||
worldPos.xyz += CalcFoliageAnimation(worldPos.xyz, localPos, leafUVs, g_Direction, g_Time,
|
||||
g_SpeedLeaves, g_SpeedBase, g_StrengthLeaves, g_StrengthBase,
|
||||
g_Phase, g_FoliageScale, g_CutOff, g_TreeHeight, g_TreeRadius, g_FoliageUVBounds);
|
||||
|
||||
gl_Position = mul(worldPos, g_ViewportViewProjectionMatrices[gl_InstanceID]);
|
||||
gl_ViewportIndex = gl_InstanceID;
|
||||
}
|
||||
Reference in New Issue
Block a user