問題タブ [assimp]
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.
animation - Assimp を使用したインポート時のボーンの長さの決定
Assimp 3.1.1 を使用して、いくつかのリグ モデルを読み込んでレンダリングしようとしています。そのため、aiNode の階層で識別された aiBone があります。aiBone ごとに、親への変換 (TRS) があります。
私の質問は、各ボーンの長さをどのように決定できますか? スケルトンが接続されていると仮定すると、葉のボーンを除いて、ほとんどのボーンでは問題になりません。次のスケルトン構造があると仮定します: b0 --> b1 --> b2 で、b0 はルート ボーン、b2 はリーフ ボーンです。どうすれば b2 の長さを知ることができますか (b1 に対する変換しかないため)。
ありがとう!
c++ - AssImp を正しく動作させるにはどうすればよいですか?
私はこれを約1週間やろうとしていますが、とにかくうまくいきません。Assimp に依存してモデルをロードする .dll (UNDONE Engine .dll) を作成しています。.dll はまったく問題なくコンパイルおよびリンクされますが、一部のアプリケーションで使用しようとすると、次のエラーが発生します。
「Test_Game.exe」は、assimp を使用している .dll ライブラリを使用して作成したアプリケーションです。
sourceforge リポジトリから assimp をダウンロードしました。Windows用のバージョン3.0 SDKを入手してインストールし、プロジェクトをリンクするために必要なことは何でもしました。
.exe のあるディレクトリは次のようになります。
lib の適切なビット数、つまり 32 ビット バージョンを含めました。
うまくいかないのはなぜですか?Assimp の使用を妨げる内部バグはありますか? または、私が見逃しているものがありますか?dllから使用しているため、問題が発生していますか? インストールして適切に使用する手順を教えてください。ビジュアルスタジオ13を使用しています。
編集
exe に対して Dependency walker を実行すると、次のようになります。
そして、それが何を意味するのかはほとんどわかりませんが、推測では、 assimp.exe には未定義の関数がいくつかあるということですか?
opengl - Derelict Assimp がメッシュを適切にロードしていませんか? (多分インデックスバッファ)
私はカスタム OBJ ファイル インポーターを作成しましたが、これはかなりうまく機能しましたが、すべてをサポートできるほど堅牢ではありませんでした。AssImpを試してみることにしました。いくつかのチュートリアルに従い、カスタム インポーターでの読み込みに成功した OBJ キューブ モデルの頂点、tex 座標、法線、およびインデックスを読み取るようにコードを設定しました。立方体モデルの面が適切にレンダリングされず、立方体のいくつかのトライがレンダリングされるだけです。法線、位置/頂点、tex 座標、およびインデックスがカスタム ソリューションと一致しないため、AsImp がデータを処理する方法は明らかに私のソリューションとは少し異なります。私が見つけたすべてのチュートリアルが私のアプローチと一致しているため、問題が発生している理由についての洞察をいただければ幸いです。不完全なレンダリングされた立方体の写真が役立つ場合は、スクリーンショットをアップする作業を行うことができます。ありがとうございました。
私のアセットインポートクラス:
私のコードの残りの部分は次の場所にあります (メッシュ クラスは source/graphics にあります): https://github.com/BennetLeff/PhySim
c++ - assimpを使用してC ++でスキンモデルのボーンを回転させる方法は?
assimp を使用して、キー フレーム間を補間することにより、スキン モデルのアニメーションを読み込むことができました。現在、アニメーション ファイルからボーンをロードするのではなく、ユーザー定義の変換マトリックスからボーンの方向または配置を試みています。同様に、角度がユーザーによって指定される特定の角度で腕を回転させます。モデルを次のようにバインド ポーズでロードしました。
変換マトリックスを使用してモデルのメッシュの 1 つを方向付けるために、メッシュの親ボーンに対応するボーンの名前を検索して、そのノード マトリックスを必要なマトリックスに置き換えてみました。しかし、別のメッシュでボーンを変形させたため、まったく機能しませんでした。
右のモデルは T ポーズで、首のボーンを 45 度回転させて修正するつもりでしたが、そのままで左のモデルのように脚の部分が変形してしまいました。そのため、既存の記事や回答へのリンクは非常に役立ちます。
c++ - assimp を使用したスケルトン アニメーションの行列の順序
このチュートリアルに従って、リグモデルの出力アニメーションを期待どおりに取得しました。このチュートリアルでは、assimp、glsl、および c++ を使用して、リギング モデルをファイルから読み込みます。しかし、私には理解できないことがありました。まず、assimp の変換行列は行優先行列であり、チュートリアルではこれらの変換行列を行優先順と同じように使用する Matrix4f クラスを使用します。その Matrix4f クラスのコンストラクターは次のとおりです。
ただし、最終的なノード変換を計算するためのチュートリアルでは、計算は、行列が以下に示す列優先順であることを想定して行われます。
最後に、計算された行列は行優先順であるため、次の関数で GL_TRUE フラグを設定することにより、シェーダーで行列を渡すときにそのように指定されます。次に、openGL自体が列優先順を使用するため、openGLは行優先順であることを認識します。
では、列の主要な順序を考慮した計算はどのように行われるのでしょうか
正しい出力を生成します。計算が成り立つためには、各行列を最初に転置して列の順序に変更し、次に上記の計算を行い、最後に再度転置して逆行順序の行列を取得する必要があると予想しました。これについては、このリンクでも説明しています。しかし、そうすると恐ろしい出力が生成されました。ここに欠けているものはありますか?
c++ - GPU スキニングの行列計算
Assimpをモデル インポート ライブラリとして使用して、 OpenGLでスケルトン アニメーションを実行しようとしています。
offsetMatrix
ボーンの変数を使用するには、正確に何が必要ですか? 何を掛ける必要がありますか?
c# - Assimp.Net GetTextureCoords が Assimp.Mesh にありません
c# + OpenTK + Assimp.net を使用する VS2010 プロジェクトで非常に奇妙なエラーに直面しています (最後の 2 つのパッケージは NuGet からのものなので、最新バージョンに更新されていると思います)。
以下を使用して UV 座標の vector3 を反復しようとすると:
次のエラーが表示されます。
エラー CS1061: 'Assimp.Mesh' には 'GetTextureCoords' の定義が含まれておらず、タイプ 'Assimp.Mesh' の最初の引数を受け入れる拡張メソッド 'GetTextureCoords' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか? )
理由がわかりません!誰か助けてくれませんか?
AssimpNet が正しく参照されている (UV 部分にコメントを付ければ、3D モデルを正しく読み込んで視覚化できます)
そして使用部分では:
編集:また、「使用」の順序を変更しようとしました...またはそれらのいくつかを削除して、ある種の名前空間の衝突があったかどうかを確認しましたが、成功しませんでした