問題タブ [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.
math - 3Dワールドからローカルへの変換
与えられた世界の位置に一致するようにノードのローカル位置を設定しようとすると、本当に頭痛の種になります。
私は解決策を与えられましたが、AFAICS、それは方向と位置のみを考慮し、スケーリングは考慮しません:
問題のノードはnode_parentの子です。node_parentのローカルプロパティと派生プロパティ(方向、位置、スケーリング)、およびその完全な行列変換が知られています。
すべての位置は3Dベクトルです; 方向はクォータニオンです; 完全な変換は4x4行列です。
誰かがノード階層のスケーリングをサポートするようにソリューションを変更するのを手伝ってくれませんか?
よろしくお願いします。
明細書
c++ - グリッド配列を作成する
OGRE3Dゲームエンジンでグリッド配列を作成しましたが、配列は一般的です。配列のスキルはかなり基本的であり、作業が必要なので、これを正しく実行していることを確認するためにこれを投稿します。
私は上記が戻ると仮定しています:
次に、配列内の各ポイントをOGRE3Dの有効なノードに割り当てて、3Dビューでグリッドを作成できますか?私がそれを正しく行っているのか間違っているのかを教えてください。ogre3dコードは必要ありません。
c++ - Ogre の例外の使用は、それらを使用する良い方法ですか?
私は C++ ゲーム プログラミングのキャリアをこれまでのところほとんど例外に触れずにやり遂げてきましたが、最近は Ogre エンジンを使用したプロジェクトに取り組んでおり、適切に学習しようとしています。C++ 例外の一般的な使用法については、ここで多くの良い質問と回答を見つけましたが、Ogre の使用法が適切かどうか、およびそれらを使用する最善の方法について、外部の意見をここから得たいと思います。
まず、独自の Exception クラスの Ogre のドキュメントから引用します。
OGRE は戻り値を使用してエラーを示すことはありません。代わりに、エラーが発生した場合、例外がスローされます。これは、問題の詳細をカプセル化するオブジェクトです。OGRE を使用するアプリケーションは常に例外がキャッチされるようにする必要があるため、すべての OGRE エンジン関数は try{} catch(Ogre::Exception& e) {} ブロック内で発生する必要があります。
本当に?すべての Ogre 関数が例外をスローし、try/catch ブロックにラップされる可能性がありますか? 現在、これはメインの try/catch によって処理され、終了する前に例外の説明を含むメッセージ ボックスが表示されます。これは、スタック トレースを取得せず、エラーをスローした関数だけを取得するため、デバッグには少し厄介な場合があります。より重要なのは、Ogre 関数を呼び出したコードの関数です。それが Ogre コードのアサートであれば、デバッガーのコードに直接行き、何が起こっているかをはるかに簡単に見つけることができます。すでに例外をデバッグしていますか?
現在、コードにさらにいくつかの try/catch ブロックを追加し始めており、Ogre 関数が例外をスローした場合に問題があるかどうかを一般的に考えています。それがすべての動作を停止させるものである場合は、メインの try/catch に処理させてプログラムを終了させます。それほど重要でない場合は、関数呼び出しの直後にキャッチして、プログラムを続行させます。これの最近の例の 1 つは、エンティティに適用されるマテリアルの頂点/フラグメント プログラム パラメーターのベクトルを構築することでした。マテリアルにパラメーターがない場合、例外がスローされます。パラメータのリストに追加する必要はありません。これは物事を処理する合理的な方法のように思えますか? Ogre を使用するための具体的なアドバイスをいただければ幸いです。
apache-flex - Ogre3d の Hikari と BlazeDS を組み合わせる方法はありますか?
SWF を Ogre3d/Hikari アプリケーションにロードしようとしていますが、その SWF は BlazeDS を使用して Tomcat サーバーと通信します。swf は、ブラウザー環境で使用される別のプロジェクトからのものです。そのため、swf は Tomcat からクライアントのブラウザに提供されます。主な問題は2つあるようです。1 つ目は、ブラウザ環境とは異なるサンドボックス タイプで swf を使用する場合のサンドボックスの問題です。もう 1 つの問題は、BlazeDS メッセージ ブローカーとその他の通信チャネルおよびエンドポイントの設定にあるようです。両方の問題に関する限り、Hikari アプリケーションは Adobe Air アプリケーションに似ており、同様のアプローチを使用できるようです。これは合理的なアプローチのように思えますか? 似たような経験をした人はいますか?もしそうなら、どのように構成されましたか?
c++ - タイプが変更される可能性がある場合に警告 c4305 に対処する最善の方法は?
私は Ogre と NxOgre の両方を使用しています。どちらも、コンパイラ フラグに依存するか、依存するReal
typedef を持っています。これにより、コンパイラの警告のほとんどが次のようになりました。float
double
たとえば、変数を 0.1 で初期化する場合。通常は 0.1f を使用しますが、コンパイラ フラグを倍精度に変更すると、逆の警告が表示されます。どちらかを選んでそのままにしておくのがおそらく最善だと思いますが、可能であればどちらの構成でも機能するようにこれらを書きたいと思います。
修正の 1 つは、問題#pragma warning (disable : 4305)
が発生したファイルで使用することです。この警告が表示されないことで隠れる可能性のある、より複雑な問題が他にあるかどうかはわかりません。コード全体に広がらないように、ヘッダー ファイルにもこれらをプッシュ アンド ポップすることを理解しています。
もう 1 つは、次のような精度コンパイラ フラグに基づいてマクロを作成することです。
これまでに行われたすべての変数の初期化を変更する必要がありますが、少なくとも将来の証拠になります。
好みや考えていないことはありますか?
c++ - Ogre3D の奇妙な動作
Lubuntu 10.04 で LXDE 環境を使用して Ogre をコンパイルしました。/bin から ./SampleBrowser_d を起動しようとすると、ウィンドウが不完全です...背景がなく、受け入れるをクリックできず、選択できません利用可能なリストからのOpenGL..それが何であり、どのように修正するか知っている人はいますか? ここにいくつかのスクリーンショットがあります: リンクテキスト
助言がありますか?
3d - 3D テクスチャ スライスを 2D テクスチャ入力として使用する
3D テクスチャを使用して Ogre で何かをしようとしています。スライスごとに調べて色の値を再計算することで、3D テクスチャを更新したいと考えています。ただし、各ステップでは、何らかの方法で前のスライスにアクセスして値を読み取る必要もあります。スライスをレンダー ターゲットとして設定するのは簡単ですが、そのようなスライスを 2D テクスチャ入力としてシェーダーに供給することは可能ですか?それとも別の 2D テクスチャに明示的にコピーする必要がありますか?
ありがとう。
c++ - Ogre3D を含む DLL をコンパイルすると、使用時にアサーション エラーが発生する
私が構築しているフレームワークがあり、他のプロジェクトで使用するために静的ライブラリにコンパイルされています。ライブラリは問題なく完全に動作します。問題は、ライブラリを使用するプロジェクトのリンク時間が非常に長いことです。そのため、同じフレームワークの DLL プロジェクトを作成しようと考えました。私は赤ちゃんのステップから始めて、Visual Studio を使用して MFC DLL プロジェクトを作成しました。プロジェクトには次のヘッダーがあります。
そしてこれがソース
ご覧のとおり、Ogre のインクルードをコメントアウトしました。プロジェクトがコンパイルされた DLL を使用し、この (OgreCore) クラスを構築すると、完全に正常に動作します。Ogre インクルードの 1 つをコメント解除して DLL を再度コンパイルするとすぐに、DLL を使用するプロジェクトでアサーション エラーが発生します。詳細については、Ogre フォーラムの投稿を参照してください。最初に質問を投稿しましたが、実際にはOgre固有の質問ではないので、ここでも試してみようと思いました. Ogre の投稿へのリンクは次のとおりです。
http://www.ogre3d.org/forums/viewtopic.php?f=2&t=58403
前もって感謝します
c++ - プログラムの終了時にスローされる例外 (Ogre3d)
プログラムを終了すると、奇妙な例外が発生します。これは今日の朝から始まり、髪を抜く準備ができています。プログラムを終了するとすぐに、Visual Studio で例外が発生し、ファイル crt0dat.c の 731 行目で停止します (添付のスクリーンショットを参照)。
私はこれが続くことはほとんどないことを知っています。私はいくつかの異なることを試しました:
- つまり、Ogre Core をまったく初期化しません。クラッシュを引き起こさない
- Ogre ルート (Ogre 自体に関連し、私のコードとは関係ありません) を作成する以外はすべてコメントアウトしてプログラムを実行すると、同じクラッシュが発生します。
- 次のプログラムを実行します。これは基本的なものですが、クラッシュが発生します。プログラムの実行が終了すると、0 が返された後にクラッシュが発生します
私はSVNにすべてを持っているので、ラップトップで同じプロジェクトを実行しましたが、問題なく動作し、問題なく終了しました。これにより、私のビジュアルスタジオがどこかで破損したと信じるようになりました. Visual Studio をアンインストールしてから再インストールしましたが、問題は解決しません (VS をインストールすると、システム全体に問題が発生します。それを封じ込める方法はありません。Visual Studio のインストールを完全に破棄する確実な方法を知っている人はいますか?)。ウィンドウを再インストールするのが足りないので、アイデアが不足しています。ここの誰かが助けてくれることを願っています。
コールスタック:
クラッシュ スクリーン キャプチャ:
リンク テキスト
xna - プログラムフローはどのように見えますか
私はXNAのような構造に慣れています:
- LoadContent
- アップデート
- 描く
これらの3つの主要なメソッドに基づいて、私のゲームオブジェクトはそれらから継承します。XNAでは、非専門家で非ゲームプログラマーとしての私は、これらのブロックで考えることをひどく強いられました。スプライトbaseClassを追加し、DrawableGameComponentから継承します。次に、ゲームオブジェクトWarriorのWarriorSpriteクラスを作成します。
などなど。
私はこの構造に完全に迷いましたが、エンジンではなく、単にゲームをプログラムしたいだけです。ゲームにエンティティを追加するたびに、余分な通常のレンダリングコードを処理したくありません。それに加えて、2つのオブジェクトを相互作用させる方法については、チュートリアルで慣れたことはありません。ゲームの設計からコードへのゲームメカニズムの移植に焦点を当てる必要があります。
今、私はOgre(3D)を見つけました、そして私はこのエンジンがこの機能を提供することを望みました。ウィキは私の質問に本当に答えることができませんでした。
よろしく、