問題タブ [ogre3d]

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.

0 投票する
2 に答える
9153 参照

c++ - BulletPhysics-体の局所空間にトルクインパルスを適用する

私は現在、 C++とOgre3Dを使用して書いている3D宇宙ゲームのBulletPhysicsLibraryを評価しています。btMotionStateから派生し、SceneNodesをプラグインすることで、Ogre3DとBulletをうまく統合しましたが、達成するためにbtRigidBody::applyCentralImpulseメソッドとbtRigidBody::applyTorqueImpulseメソッドに渡す必要のある値を計算するのに多くの問題があります。私が探している結果。

キーボードのLEFTキーまたはRIGHTキーを押すと、宇宙船がローカルのZ軸上を回転するようになります。上または下を押すと、ローカルX軸にピッチングします。AまたはZを押すと、ローカルZ軸の方向に加速/減速したい。いくつかのクォータニオン数学を使用し、SceneNodeに直接変換/回転を適用することで、Ogreでこれを完全に達成できますが、force /トルクメソッドを使用してこれらの値をBulletエンジンに適用したいので、移動/ピッチ/ロールを継続しますユーザーがキーを押すのをやめた後でも、必要に応じてオブジェクトに摩擦が作用して速度が低下します。

では、インパルスが世界の軸を使用するのではなく、体の現在の向きに基づいて作用することを保証するために、これら2つのインパルスメソッドに提供するために必要な値を計算するにはどうすればよいですか?

ありがとう、マーク

アップデート:

前後の動きに必要なインパルスを計算することはできましたが、トルクインパルス法で使用するためにヨー/ピッチ/ロールの値の向きを変える方法にまだ苦労しています。これが私が前進/後退運動をした方法です:

0 投票する
2 に答える
39694 参照

math - 2 つの四元数間の「差」

私は Ogre で作業していますが、これは一般的な四元数の問題です。

最初に回転クォータニオン Q1 を適用するオブジェクトがあります。後で、別のクォータニオン Q2 で最初にオブジェクトを回転させたかのようにしたいと思います。

既に Q1 によって回転されているオブジェクトを取得し、Q2 を初期/デフォルトの向きに適用するだけであるかのように整列させるクォータニオンを計算するにはどうすればよいですか? (s)lerping を見ていましたが、これが回転ではなく方向に対してのみ有効かどうかはわかりませんか?

0 投票する
2 に答える
3813 参照

c++ - OGREでSDLを使用するには?

SDLでOGREを使用する場合(この記事で説明)、メインのレンダリング ウィンドウの背後に表示される 2 つ目のウィンドウに問題があるようです。基本的に、私が使用しているコードは次のとおりです。

問題は、余分なウィンドウを削除するにはどうすればよいかということです。

後世のために、私は OGRE 1.6.4、Mac OS X 10.6.2、および SDL 1.2.14 を使用しています。

0 投票する
2 に答える
2789 参照

c++ - マルチモニター3Dアプリケーション

私は、それぞれが異なるカメラからレンダリングされる3つのディスプレイを使用するC++3Dアプリケーションプロジェクトに挑戦しました。

最近、Ogre3Dについて学びましたが、さまざまなカメラ/さまざまなディスプレイ/GPUへの出力をサポートしているかどうかは不明です。

同様のセットアップとOgreまたは別のエンジンの経験がある人はいますか?

0 投票する
1 に答える
479 参照

c++ - UbuntuでのOgre3DBasicFrameworkの問題

私はOgre3Dの使い方を学ぼうとしていて、付属の例よりももっと真面目なことを始めたいという段階に達したので、BasicOgreFrameworkを見つけてコピーしました

Ubuntu 9.10を使用していますが、Ogre3DWebサイトからOgre1.7をコンパイルしました。c++プラグインでNetbeans6.8IDEを使用しています。

Basic Ogre Frameworkデモアプリはコンパイルして実行しますが、メインループに到達し、レンダリングウィンドウがアクティブかどうかを確認します。アクティブでない場合は、sleep(1000);

チェックしているifステートメントはif(OgreFramework::getSingletonPtr()->m_pRenderWnd->isActive())、特に設定しているにもかかわらず、常にfalseを返します。m_pRenderWnd->setActive(true);

それに関連するフォーラムの投稿を読んだところ、他の誰もこの問題を抱えていませんが、彼らは主にWindowsまたはMacを使用しています。

UbuntuのOgre3Dに問題がありますか、それともnetbeansが生成している自動生成されたmakefileに問題がある可能性がありますか?

0 投票する
1 に答える
367 参照

c++ - Ogre3d の restoreConfig により、アプリが Ubuntu でハングアップする

Ogre3D、CEGUI、OIS を使用して Ubuntu 用のアプリを構築しています。これはすべて期待どおりにコンパイルおよび実行されています。基本的なアプリを実行したので、グラフィック設定 (解像度、フルスクリーンなど) と、後でアプリで必要になるその他の構成可能な設定の両方を保存できるカスタム構成ファイルを作成することにしました。

出発点として、起動ごとに mRoot->showConfigDialog() を呼び出すことから次のように変更しました。

これは、存在する 'ogre.cfg' ファイルから構成を復元することを意図していたので、そうしましたが、最初のシーン作成でスカイボックス テクスチャをロードする必要があり、何もせずにそこに座っていました。

とにかくそれは私が望んでいたものではなかったので、次のように手動で設定しようとしました:

それらは、showConfigDialog() 関数から以前に使用していた「ogre.cfg」の設定と一致しました。この手動構成でも同じ問題が発生しましたが、スカイボックス テクスチャをロードしているときに停止します。

これらの変更がアプリの実行方法にまったく影響を与える理由がわかりません.OISが入力を取得してマウスを画面にロックするため、gdbでデバッグしようとすると問題が発生します.

0 投票する
1 に答える
90 参照

c++ - C++ に埋め込まれた Python コードの time.time() によって返される値を変更できません

私は非常に奇妙な問題に直面しています。

次のコード:

C++ から呼び出された Python コード (埋め込み) では機能しません!

target_time は time.time() と同じ値を持ち、それを変更しようとすると、pdb コンソールで値が変更されないままになります...

代替テキスト http://dl.dropbox.com/u/3545118/time_bug.png

Ogre3D グラフィック エンジンで root.initialise() を呼び出した後に発生しますが、OpenGL を使用しているときではなく、Direct3D を使用している場合にのみ発生します。

これはDirect3Dに関連している可能性があります...

0 投票する
2 に答える
3508 参照

qt - QtへのOGRE1.7の統合

Ogre3dをQt4に統合する必要があります。残念ながら時代遅れのコードや提案がいくつか見つかりました。私はこのチュートリアルが好きだった

http://irmatden.developpez.com/tutoriels/qt/integration-ogre-qt/

Ogre 1.4.9(Eihorn)で動作しますが、最近のバージョン1.7.0では動作しません。最近のアプリでアプリをコンパイルすると、リンカーエラーが発生します

何が原因で、どうすれば解決できますか?

0 投票する
2 に答える
1303 参照

windows - Ogre でウィンドウのないアプリケーションを取得するには?

ウィンドウのない Ogre アプリケーションを作成しようとしていますが、RenderWindow::setVisible(false) メソッドがアプリケーションによって完全に無視されているようです。それを達成する方法はありますか?


とまそさん、ありがとうございます

0 投票する
1 に答える
407 参照

c++ - Direct3D 固有の機能を有効にする (透過性 AA)

Ogre-Direct3D アプリケーションで透明度のアンチエイリアシングを有効にしようとしていますが、うまくいきません。

この方法は、NVidia のテクニカル レポートから引用されています。

NVIDIA コントロール パネルから透明度 AA を手動で有効にすることはできますが、ユーザーにこのように要求することはできません。誰でも何か考えがありますか?

お時間をいただきありがとうございます。

明細書