group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
SkinningBackend.hpp
Go to the documentation of this file.
1
3
4#pragma once
5
6#include "CharacterRig.hpp"
7#include "SkinVertex.hpp"
8
9#include <glm/glm.hpp>
10#include <vector>
11
20{
21public:
22 virtual ~ISkinningBackend() = default;
23
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;
33};
34
37{
38public:
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;
43};
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.