メインメニューを開く

差分

スケルタルアニメーション

146 バイト追加, 2024年7月4日 (木)
シェーダーで処理する場合は「ボーンとの繋がり」をvec4に収めたいので最大4個が定番です。別に4個でなくてもいいです。人体のボーンの場合は3分岐から4分岐くらいなのでまず問題になることはありません。
<source lang=c>
// 定数バッファでボーンを渡す
layout(set = 0, binding = 3) uniform BonesBuffer
{
};
// 頂点バッファに「ボーンとの繋がり」と「ボーンの影響度」を持つ
layout(location = 0) in vec3 Position;
layout(location = 1) in vec2 UV;
layout(location = 2) in vec4 BoneWeights;// つながりはボーンの影響度layout(location = 3) in uvec4 BoneIndices;// 頂点ごとに持つボーンとの繋がり
void main()