コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
未作成ページ
おまかせ表示
ヘルプ
MonoBook
検索
検索
ログイン
個人用ツール
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
スケルタルアニメーション
」を編集中 (節単位)
ページ
議論
日本語
閲覧
編集
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
== 実装例 == [[バーテックスシェーダー]]ではだいたいこんな感じです。 シェーダーで処理する場合は「ボーンとの繋がり」をvec4に収めたいので最大4個が定番です。別に4個でなくてもいいです。人体のボーンの場合は3分岐から4分岐くらいなのでまず問題になることはありません。 <source lang=c> // 定数バッファでボーン配列を渡す layout(set = 0, binding = 3) uniform BonesBuffer { mat4 BoneTransformations[32];//各ボーンの位置や回転などを格納した行列の配列 }; // 頂点バッファに「ボーンとの繋がり」と「ボーンの影響度」を持つ 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() { mat4 skin = BoneTransforms[BoneIndices[0]] * BoneWeights[0] + BoneTransforms[BoneIndices[1]] * BoneWeights[1] + BoneTransforms[BoneIndices[2]] * BoneWeights[2] + BoneTransforms[BoneIndices[3]] * BoneWeights[3]; gl_Position = Projection * View * World * skin * vec4(Position, 1); } </source>
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
本文の横幅制限を有効化/無効化