group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
ISkinningBackend Class Referenceabstract

Abstract skinning backend. More...

#include <SkinningBackend.hpp>

Inheritance diagram for ISkinningBackend:
[legend]

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.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ ~ISkinningBackend()

virtual ISkinningBackend::~ISkinningBackend ( )
virtualdefault

Member Function Documentation

◆ skin()

virtual void ISkinningBackend::skin ( const std::vector< glm::mat4 > &  skinMats,
const std::vector< ModelVertex > &  baseVerts,
const std::vector< SkinWeight > &  weights,
std::vector< ModelVertex > &  outVerts 
) const
pure virtual

Skin one mesh in-place.

Parameters
skinMatsOne matrix per skeleton joint (modelMat * invBind).
baseVertsBind-pose vertices (read-only).
weightsPer-vertex bone weights (parallel to baseVerts).
outVertsOutput buffer. Resized to baseVerts.size() inside.

Implemented in CpuLbsSkinningBackend.


The documentation for this class was generated from the following file: