質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

805閲覧

モデル初期姿勢(ボーンに頂点座標を対応させる方法)

hikarhikar

総合スコア18

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/04/21 17:59

編集2020/04/22 08:54

3Dモデルの頂点データを、取得したボーンに対応させたいのですがインターネットで調べたら、
・・・・・・・・・・
1,0,0,0,
0,1,0,0,
0,0,1,0,
x,y,z,1
・・・・・・・・・・
ここのx,y,zをそのまま代入と書いてあったので、直接代入してみたのですが、うまくいきませんでした。
さすがに、直接代入はおかしいかなとは思い色々調べ計算してみたのですが、うまくいきませんでした。

直接代入
ちょっと見にくいのですが、モデルとボーンの位置が上下反転してしまっています。
このモデルをボーンに対応させるように行列(↑)のx,y,zを設定するにはどうすればいいのでしょうか?
もしよろしければ教えてください<(_ _)>
イメージ説明

OpenG

1void obj_SetInitial() { 2 glPushMatrix(); 3 /*for (int i = 0; i < mesh.boneCount; i++){ 4 for (int j = 0; mesh.boneList[i][j] != NULL; j++) { 5 mesh.vertex[mesh.boneList[i][j] * 3] *=mesh.boneCoords[i][0]; 6 mesh.vertex[mesh.boneList[i][j] * 3 + 1] *= mesh.boneCoords[i][1]; 7 mesh.vertex[mesh.boneList[i][j] * 3 + 2] *= mesh.boneCoords[i][2]; 8 } 9 }*/ 10 glPointSize(3); 11 glColor3f(1.0, 0.0, 0.0); 12 glBegin(GL_POINTS); 13 { 14 for (int i = 0; i < mesh.boneCount; i++) { 15 glVertex3f(mesh.boneCoords[i][0], mesh.boneCoords[i][1], mesh.boneCoords[i][2]); 16 } 17 } 18 glEnd(); 19 glPopMatrix(); 20 21 obj_Draw(); 22}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stdio

2020/04/22 00:57

ボーンを適用させるために必要な数学の知識がまだ身についていないように思えます。 そもそもMatrixを理解していない時点で話になりません。
hikarhikar

2020/04/22 04:40

stdioさんご返信ありがとうございます<(_ _)> すみません。勉強してきまーす!
nskydiving

2020/04/22 07:18

>さすがに、直接代入はおかしいかなとは思い なぜそう思ったのでしょうか? 何も座標変換せず、そのままの位置に表示するのであれば、直接代入で問題ないような気がしますが。 ちょっとこれだけの情報では分からない気がします。 mesh.boneList や mesh.boneCoords の値を設定している箇所を確認してみてはどうでしょうか。
hikarhikar

2020/04/22 08:57

nskydivingさんご返信ありがとうございます。 [頂点座標=ボーン座標]の様にローカル座標に変換したのですが、上の写真の様にボーンの形になってしまいました。 stdioさんのおっしゃる通り理解が足りていなかったので、頑張って勉強してきます!!
hikarhikar

2020/04/22 09:30

そもそも全ての頂点がボーンに対応していないので、どこか間違っているかもしれないので、 nskydiving さんのおっしゃった通り設定の確認をしてみます。
guest

回答1

0

自己解決

勉強してきます。<(_ _)>

投稿2020/04/22 18:31

hikarhikar

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問