29 virtual void skin(
const std::vector<glm::mat4>& skinMats,
30 const std::vector<ModelVertex>& baseVerts,
31 const std::vector<SkinWeight>& weights,
32 std::vector<ModelVertex>& outVerts)
const = 0;
39 void skin(
const std::vector<glm::mat4>& skinMats,
40 const std::vector<ModelVertex>& baseVerts,
41 const std::vector<SkinWeight>& weights,
42 std::vector<ModelVertex>& outVerts)
const override;
Shared skinned-character rig: skeleton, bind-pose mesh, skin weights.
Bind-pose vertex layout used by the CPU skinning pipeline.
CPU Linear Blend Skinning — pure function; no state between calls.
Definition SkinningBackend.hpp:37
void skin(const std::vector< glm::mat4 > &skinMats, const std::vector< ModelVertex > &baseVerts, const std::vector< SkinWeight > &weights, std::vector< ModelVertex > &outVerts) const override
Skin one mesh in-place.
Definition SkinningBackend.cpp:8
Abstract skinning backend.
Definition SkinningBackend.hpp:20
virtual ~ISkinningBackend()=default
virtual void skin(const std::vector< glm::mat4 > &skinMats, const std::vector< ModelVertex > &baseVerts, const std::vector< SkinWeight > &weights, std::vector< ModelVertex > &outVerts) const =0
Skin one mesh in-place.