問題タブ [glm-math]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - GLMmodel 頂点の -431602080.000000 の値は何を意味しますか?
C++ プログラムで Google Sketch Up モデルを表すために、 GLMmodelオブジェクトを使用します。これらのオブジェクトには、次のような方法でオブジェクトのすべての頂点のリストを含むメンバー (頂点) があります。頂点 2 の...]。これらの値をすべて読み取ると、最初の 3 つの値 (最初の頂点の座標) を除いて、すべての値が小さな数値になります。これらはすべて -431602080.000000 です。これは私のプログラムでは意味がありません。私はそれをグーグルで検索しましたが、この値が C++ プログラムで頻繁に表示されることがわかりましたが、それが何を意味するのかわかりません。何か案は?
c++ - SSEまたはGLSLを使用して「u[0]* v [0] + u [2] *v[2]」コード行を最適化する方法
私は次の機能を持っています(オープンソースプロジェクト「recastnavigation」から):
VS2010 CPUパフォーマンステストを実行したところ、この関数のすべてのリキャストコードベースコードラインでu[0]*v[0] + u[2]*v[2]
CPUが最もホットであることがわかりました。
この行をCPUで最適化するにはどうすればよいですか(たとえば、GLMのようなSSEまたはGLSLを介して(このような場合に、より簡単または高速で適切な場合))?
編集:呼び出しが表示されるコンテキスト:
c++ - glm ライブラリ ext.hpp コンパイルの問題 (Xcode iOS)
glm/ext.hpp
プロジェクトに拡張ヘッダーを含めようとしています。簡単にインクルードglm.hpp
でき、プロジェクトは単純にクリーンにビルドされますが、このライブラリの拡張機能により、大量のコンパイル時エラーが発生します。たとえば、.inl
エラーをスローするいくつかのマクロ定義を含むいくつかの補助インライン ヘッダー ファイル ( ) があります。
- int_10_10_2.inl : セマンティックの問題
- type_vec2.hpp :
競合する構造は何ですか (どのファイルを分析するのが最も役立つかについてのヒント)? Xcode プロジェクトに ext.hpp をうまく組み込んだ人はいますか?
c++ - 参照渡しされた glm::vec3 型のベクトル値を出力するにはどうすればよいですか?
小さなobjローダーがあり、2つのパラメーターを取り、それらを入力変数に戻します..しかし、これを行うのはこれが初めてで、その値を今すぐ出力する方法がわかりません。これが、ローダーが機能しているかどうかをテストするための私の主な機能です。glm::vec3
頂点データと法線データを保持するタイプのベクトルが 2 つあります。
上記のコメント行は、役に立たない情報を生成しているものです。そのままにしてプログラムを実行すると、大量のエラーが吐き出されます(フォーマットが不十分で、ここに貼り付けるには長すぎます)。参照演算子を追加すると、次のような出力が得られます。
私が間違っていることは何ですか?
c++ - Swig ラッピング GLM ライブラリ
私は現在 2D ゲーム エンジンに取り組んでおり、LUA スクリプティング / インタープリターの実装中につまずきました。
私はSWIGを使用しており、基本はすべて正常に機能しています。
エンジンでは、 Vector と Matrix に関連するすべての領域に GLM (OpenGL Mathematics Libary http://glm.g-truc.net/ ) を使用しています。
次のように LUA でメソッドを呼び出すことができるように、GLM を (基本レベルで) SWIG から LUA 経由で公開する必要があります。
GLM は非常に複雑なライブラリ (控えめな表現かもしれません 笑) であり、すべてを公開する必要はありません。glm::vec2 クラスの xy コンポーネントにアクセスできるようにしたいだけです。
SWIG は完全なクラス定義を必要とせず、glm::vec2 クラスには x,y パラメータだけがあると SWIG に仮定させる方法が必要なので、これは簡単に違いないと確信しています。
SWIGでプロキシクラスを使用することがこれを行う方法であるかどうかはわかりませんか? または他の方法ですか?私は LUA 統合と SWIG もまったく初めてです。
私が本当に行きたくないルートの 1 つは、GLM を捨てて、はるかにシンプルな独自の Vector/Matrix ライブラリを作成することです。テンプレートなどはなく、SWIG でラップするだけで済みますが、これは時間の無駄だと感じています。最終的には、あまり強力ではない数学ライブラリになってしまいます:(。
事前に感謝します。必要に応じて、さらに情報を提供できます。
c++ - クォータニオン -> オイラー角 -> 回転行列の問題 (GLM)
シーンの説明を含むファイルをロードし、OpenGL を使用して表示するプログラムを作成しています。私はすべての数学演算に GLM を使用しています。シーン ファイル内の回転は、クォータニオン形式で保存されます。私のシーン管理システムはオブジェクトの回転をオイラー角の形式で取得し、これらの角度は後で描画時に回転マトリックスに変換されます。
したがって、ロード プロセスはクォータニオン回転を取得し、それらをオブジェクト クラスに格納するためにオイラー角に変換し、次にこれらのオイラー角を描画用の回転行列に変換します。glm::eulerAngles と glm::eulerAngleYXZ 関数を (それぞれ) 使用して、これら 2 つの操作を実行しています。
ただし、間違った結果が得られます。たとえば、クォータニオン {0.500 -0.500 0.500 0.500} (これは WXYZ) を正しく理解していれば、+Z 軸から +Y 軸への矢印の回転を表す必要があります。しかし、プログラムを実行すると、+X 軸に沿った矢印が表示されます。
四元数の理解に何らかの欠陥があると思いますが、中間のオイラー角形式をスキップすることで、期待どおりの結果を得ることができます。glm::toMat4 を使用してクォータニオンを回転行列に直接変換することで、+Z 矢印が +Y を指す回転が得られます。
どちらの方法も単純で正しいように見えるため、これら 2 つの異なる出力を調整するのに苦労しています。私の質問を簡単にするために、これらの 2 つの一見同等の方法が異なる結果をもたらすのはなぜですか。
c++ - OpenGL/GLSL/GLM - Skybox が三人称のように回転する
私はスカイボックスの実装を始めたばかりで、数学ライブラリとして OpenGL/GLSL と GLM を使用しています。問題は行列に関連していると思いますが、GLM ライブラリを利用する実装を見つけることができませんでした。
スカイボックスのモデルは問題なく読み込まれますが、カメラは 3D 三人称カメラで回転しているかのように円を描きます。
スカイボックス マトリックスについては、カメラが更新されるたびに更新しています。私は glm::lookAt を使用しているため、方向に 0, 0, 0 を使用する以外は基本的にビュー マトリックスと同じ方法で作成されます。
これが私のビューマトリックスの作成です。オブジェクトとジオメトリのレンダリングでうまく機能します:
同様に、私の空のマトリックスは、1 つの変更だけで同じ方法で作成されます。
スカイボックスは変換を適用せず、回転のみを考慮することを知っているので、何が問題なのかわかりません。これを行う簡単な方法はありますか?
視覚教材:
まだ何も動かずにまっすぐに
カメラを回転させると:
私の質問はこれです: glm:lookAt を使用してスカイボックスをレンダリングするための正しいマトリックスを設定するにはどうすればよいですか?
c++ - glm::rotate() 呼び出しはコンパイルに失敗しますか?
glm::rotate(mat4, int, vec3(x,y,z)); への呼び出しを取得できません。仕事に。VS 2010が教えてくれます
glm-0.9.1 を使用しています
私はこのスタックオーバーフローの質問を見てきましたが、解決策はまだインテリセンスでエラーを引き起こします: Opengl での glm 回転の使用
オーバーロードメソッドを受け入れることができません。ただし、明らかな何かが欠けているだけかもしれません。
コード内で回転呼び出しを明確にしようとしましたが、少し下にあります。
ここにいくつかのコードがあります:
c++ - Open GL 2.0 と glm で一人称カメラを作成する
私は Open GL と c++ を初めて使用し、一人称カメラを作成するという問題に遭遇しました。私は行列計算を理解していないので、それが私にとってさらに難しくなっています。これまでのところ、カメラの回転を計算するために、次のことを行いました。
その関数は、更新呼び出しごとに呼び出されます。
マウスを介してカメラの回転を処理するために、次のことを行いました。
動きを処理するために、次のことを行いました。
私の問題は、私のカメラがあなたが向いている方向に動かず、回転が止まらないという事実にあります:/。また、マトリックス数学のガイドまたは何かを教えていただければ、素晴らしいでしょう:)
編集 2: '
私はちょうど新しいプロセスマウス機能を開始しました.それはカメラのy回転として画面のx軸に沿った動きです. ただし、マウスを左に動かしても右に動かしても関係ありません。どちらの動きでも右に回転します。3D 空間の x 軸と同じですが、これは下向きになります。これを引き起こしている原因についてのアイデアはありますか?
c++ - GLM を使用して Open GL カメラを正しく回転させる
次のように初期化されるカメラクラスがあります。
また、インポートのその他の機能は次のとおりです。
私の問題は、プロジェクトをコンパイルすると、コンパイラが次のようなエラーを出力することです。
私が理解していることから、 vec = mat4 * vec は回転したベクトルを生成する必要がありますか? このコードをテストできていないため、関数が正しく機能するかどうかはわかりません。
編集
コメントと awnsers に従ってコードを更新しました。私の問題は、レンダリング機能のどこかでBSODが発生することです...
編集 2
問題は、マウスを使用したカメラの回転にあります。何らかの理由で、x 軸の変更が y の変更に影響することが多く、その逆も同様です。さらに、マウスを x 軸上で左右に動かすと (y 回転)、カメラが左に回転します...