mirror of
https://gitlab.com/skysthelimit.dev/selenite.git
synced 2025-06-16 02:22:07 -05:00
126 lines
2.9 KiB
GLSL
126 lines
2.9 KiB
GLSL
attribute vec3 a_position;
|
|
uniform mat4 u_projViewWorldTrans;
|
|
|
|
#if defined(diffuseTextureFlag) && defined(blendedFlag)
|
|
#define blendedTextureFlag
|
|
attribute vec2 a_texCoord0;
|
|
varying vec2 v_texCoords0;
|
|
#endif
|
|
|
|
|
|
#ifdef boneWeight0Flag
|
|
#define boneWeightsFlag
|
|
attribute vec2 a_boneWeight0;
|
|
#endif //boneWeight0Flag
|
|
|
|
#ifdef boneWeight1Flag
|
|
#ifndef boneWeightsFlag
|
|
#define boneWeightsFlag
|
|
#endif
|
|
attribute vec2 a_boneWeight1;
|
|
#endif //boneWeight1Flag
|
|
|
|
#ifdef boneWeight2Flag
|
|
#ifndef boneWeightsFlag
|
|
#define boneWeightsFlag
|
|
#endif
|
|
attribute vec2 a_boneWeight2;
|
|
#endif //boneWeight2Flag
|
|
|
|
#ifdef boneWeight3Flag
|
|
#ifndef boneWeightsFlag
|
|
#define boneWeightsFlag
|
|
#endif
|
|
attribute vec2 a_boneWeight3;
|
|
#endif //boneWeight3Flag
|
|
|
|
#ifdef boneWeight4Flag
|
|
#ifndef boneWeightsFlag
|
|
#define boneWeightsFlag
|
|
#endif
|
|
attribute vec2 a_boneWeight4;
|
|
#endif //boneWeight4Flag
|
|
|
|
#ifdef boneWeight5Flag
|
|
#ifndef boneWeightsFlag
|
|
#define boneWeightsFlag
|
|
#endif
|
|
attribute vec2 a_boneWeight5;
|
|
#endif //boneWeight5Flag
|
|
|
|
#ifdef boneWeight6Flag
|
|
#ifndef boneWeightsFlag
|
|
#define boneWeightsFlag
|
|
#endif
|
|
attribute vec2 a_boneWeight6;
|
|
#endif //boneWeight6Flag
|
|
|
|
#ifdef boneWeight7Flag
|
|
#ifndef boneWeightsFlag
|
|
#define boneWeightsFlag
|
|
#endif
|
|
attribute vec2 a_boneWeight7;
|
|
#endif //boneWeight7Flag
|
|
|
|
#if defined(numBones) && defined(boneWeightsFlag)
|
|
#if (numBones > 0)
|
|
#define skinningFlag
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(numBones)
|
|
#if numBones > 0
|
|
uniform mat4 u_bones[numBones];
|
|
#endif //numBones
|
|
#endif
|
|
|
|
#ifdef PackedDepthFlag
|
|
varying float v_depth;
|
|
#endif //PackedDepthFlag
|
|
|
|
void main() {
|
|
#ifdef blendedTextureFlag
|
|
v_texCoords0 = a_texCoord0;
|
|
#endif // blendedTextureFlag
|
|
|
|
#ifdef skinningFlag
|
|
mat4 skinning = mat4(0.0);
|
|
#ifdef boneWeight0Flag
|
|
skinning += (a_boneWeight0.y) * u_bones[int(a_boneWeight0.x)];
|
|
#endif //boneWeight0Flag
|
|
#ifdef boneWeight1Flag
|
|
skinning += (a_boneWeight1.y) * u_bones[int(a_boneWeight1.x)];
|
|
#endif //boneWeight1Flag
|
|
#ifdef boneWeight2Flag
|
|
skinning += (a_boneWeight2.y) * u_bones[int(a_boneWeight2.x)];
|
|
#endif //boneWeight2Flag
|
|
#ifdef boneWeight3Flag
|
|
skinning += (a_boneWeight3.y) * u_bones[int(a_boneWeight3.x)];
|
|
#endif //boneWeight3Flag
|
|
#ifdef boneWeight4Flag
|
|
skinning += (a_boneWeight4.y) * u_bones[int(a_boneWeight4.x)];
|
|
#endif //boneWeight4Flag
|
|
#ifdef boneWeight5Flag
|
|
skinning += (a_boneWeight5.y) * u_bones[int(a_boneWeight5.x)];
|
|
#endif //boneWeight5Flag
|
|
#ifdef boneWeight6Flag
|
|
skinning += (a_boneWeight6.y) * u_bones[int(a_boneWeight6.x)];
|
|
#endif //boneWeight6Flag
|
|
#ifdef boneWeight7Flag
|
|
skinning += (a_boneWeight7.y) * u_bones[int(a_boneWeight7.x)];
|
|
#endif //boneWeight7Flag
|
|
#endif //skinningFlag
|
|
|
|
#ifdef skinningFlag
|
|
vec4 pos = u_projViewWorldTrans * skinning * vec4(a_position, 1.0);
|
|
#else
|
|
vec4 pos = u_projViewWorldTrans * vec4(a_position, 1.0);
|
|
#endif
|
|
|
|
#ifdef PackedDepthFlag
|
|
v_depth = pos.z / pos.w * 0.5 + 0.5;
|
|
#endif //PackedDepthFlag
|
|
|
|
gl_Position = pos;
|
|
}
|