|
group2 0.1.0
CSE 125 Group 2
|
Abstract skinning backend. More...
#include <SkinningBackend.hpp>
Public Member Functions | |
| 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. | |
Abstract skinning backend.
Transforms bind-pose vertices into animated vertices using per-joint skin matrices and per-vertex weights.
Phase-1: CpuLbsSkinningBackend performs the transform on the CPU and the caller streams the result into a per-entity vertex buffer. Phase-2: GpuSkinningBackend will upload skin matrices + let a vertex shader do the transform, skipping the CPU pass entirely.
|
virtualdefault |
|
pure virtual |
Skin one mesh in-place.
| skinMats | One matrix per skeleton joint (modelMat * invBind). |
| baseVerts | Bind-pose vertices (read-only). |
| weights | Per-vertex bone weights (parallel to baseVerts). |
| outVerts | Output buffer. Resized to baseVerts.size() inside. |
Implemented in CpuLbsSkinningBackend.