生成されたジオメトリを方向ベクトルに合わせようとしています。私の現在の問題を説明するには:
- A = 正しく位置合わせされたジオメトリ (テスト用の三角形のみ)
- B = 位置合わせが正しくないジオメトリ
この三角形の例のコードでの私の現在のソリューション (このコードは、分割から始まる画面に表示されるすべてのノードに対して実行されます。GLM 数学ライブラリを使用しています):
glm::vec3 v1, v2, v3;
v1.x = -0.25f;
v1.z = -0.25f;
v2.x = 0.25f;
v2.z = -0.25f;
v3.x = 0.0f;
v3.z = 0.25f;
v1.y = 0.0f;
v2.y = 0.0f;
v3.y = 0.0f;
glm::mat4x4 translate = glm::translate(glm::mat4x4(1.0f), sp.position);
glm::mat4x4 rotate = glm::lookAt(glm::vec3(0.0f, 0.0f, 0.0f), sp.direction, glm::vec3(0.0f, 1.0f, 0.0f));
v1 = glm::vec4(translate * rotate * glm::vec4(v1, 1.0f)).swizzle(glm::comp::X, glm::comp::Y, glm::comp::Z);
v2 = glm::vec4(translate * rotate * glm::vec4(v2, 1.0f)).swizzle(glm::comp::X, glm::comp::Y, glm::comp::Z);
v3 = glm::vec4(translate * rotate * glm::vec4(v3, 1.0f)).swizzle(glm::comp::X, glm::comp::Y, glm::comp::Z);
点 A の方向ベクトル値:
- x 0.000000000 フロート
- y 0.788205445 フロート
- z 0.615412235 フロート
点 B の方向ベクトル値:
- x 0.0543831661 フロート
- y 0.788205445 フロート
- z -0.613004684 float
編集 1 (24/11/2013 @ 20:36) : A と B には関係がなく、両方とも別々に生成されます。A または B を生成する場合、位置と方向のみが既知です。
ここに投稿されたソリューションを見てきました:
しかし、ジオメトリを回転させて方向ベクトルに合わせることができませんでした。私はかなり基本的な間違ったことをしているように感じます。
どんな助けでも大歓迎です!