@animech-public/playcanvas
Version:
PlayCanvas WebGL game engine
25 lines (23 loc) • 699 B
JavaScript
var skinBatchTexVS = `
attribute float vertex_boneIndices;
uniform highp sampler2D texture_poseMap;
uniform vec4 texture_poseMapSize;
mat4 getBoneMatrix(const in float i) {
float j = i * 3.0;
float dx = texture_poseMapSize.z;
float dy = texture_poseMapSize.w;
float y = floor(j * dx);
float x = j - (y * texture_poseMapSize.x);
y = dy * (y + 0.5);
vec4 v1 = texture2D(texture_poseMap, vec2(dx * (x + 0.5), y));
vec4 v2 = texture2D(texture_poseMap, vec2(dx * (x + 1.5), y));
vec4 v3 = texture2D(texture_poseMap, vec2(dx * (x + 2.5), y));
return mat4(
v1.x, v2.x, v3.x, 0,
v1.y, v2.y, v3.y, 0,
v1.z, v2.z, v3.z, 0,
v1.w, v2.w, v3.w, 1
);
}
`;
export { skinBatchTexVS as default };