「スケルタルアニメーション」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
| 21行目: | 21行目: | ||
シェーダーで処理する場合は「ボーンとの繋がり」をvec4に収めたいので最大4個が定番です。別に4個でなくてもいいです。人体のボーンの場合は3分岐から4分岐くらいなのでまず問題になることはありません。 | シェーダーで処理する場合は「ボーンとの繋がり」をvec4に収めたいので最大4個が定番です。別に4個でなくてもいいです。人体のボーンの場合は3分岐から4分岐くらいなのでまず問題になることはありません。 | ||
<source lang=c> | <source lang=c> | ||
// 定数バッファでボーンを渡す | |||
layout(set = 0, binding = 3) uniform BonesBuffer | layout(set = 0, binding = 3) uniform BonesBuffer | ||
{ | { | ||
| 26行目: | 27行目: | ||
}; | }; | ||
// 頂点バッファに「ボーンとの繋がり」と「ボーンの影響度」を持つ | |||
layout(location = 0) in vec3 Position; | layout(location = 0) in vec3 Position; | ||
layout(location = 1) in vec2 UV; | layout(location = 1) in vec2 UV; | ||
layout(location = 2) in vec4 BoneWeights;// | layout(location = 2) in vec4 BoneWeights;// ボーンの影響度 | ||
layout(location = 3) in uvec4 BoneIndices;// | layout(location = 3) in uvec4 BoneIndices;// ボーンとの繋がり | ||
void main() | void main() | ||