問題タブ [scenegraph]

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 投票する
5 に答える
23217 参照

c++ - ゲームエンジン:シーングラフとは何ですか?

ウィキペディアの資料を読み始めましたが、シーングラフがどのように機能し、それがゲームにどのように役立つかを本当に理解していないように感じます。

  • ゲームエンジン開発のコンテキストでのシーングラフとは何ですか?
  • 2Dゲームエンジンに実装したいのはなぜですか?
  • シーングラフの使用は、線形エンティティマネージャーを備えた従来のエンティティシステムの代替として機能しますか?
0 投票する
1 に答える
1818 参照

c++ - 2D エンジンのシーン グラフ

私の実験的な 2D エンジンでは、どのオブジェクトをレンダリングする必要があるか(カメラに表示されるか) を判断するために、シーン グラフの実装を組み込みたいと考えています。

残念ながら、それがどのように機能するかの詳細についてはあまり知りません。私が知る限り、シーン グラフは、親子関係をより適切に整理するために使用できるツリー ベースの構造がその中心にあります。

  • 1 つのフレームで何をレンダリングするかを決定する場合、2D シーン グラフをどのように実装する必要がありますか?
0 投票する
1 に答える
1515 参照

android - 誤ったマテリアルが再利用されないように、Opengl ESのマテリアルプロパティをクリアするにはどうすればよいですか?

私はAndroidのopengllibに取り組んでおり、小さな問題が発生しました。簡単に修正できることはわかっていますが、追跡するのに多くの問題があります。一言で言えば、私は本当に軽量で素晴らしいシナリオ2Dシーングラフライブラリに基づいた3Dシーングラフライブラリに取り組んでいます。構造を詳細に説明するには時間がかかりすぎますが、基本的にツリー内のすべてのノードには、テクスチャやマテリアルの初期化が行われるload(GL10 gl)メソッドがあります。次に、シェイプノード用のdraw()メソッドと、マテリアル用のkillDraw()メソッドがあります。

私のマテリアルクラスは、3Dモデリングアプリプログラムの観点から来た私のような人々にとってユーザーフレンドリーであることを目的としています(私にとっては最大3ds)。ここに問題があります:

シーンにいくつかの3Dシェイプを作成します。

最初のシェイプ用に作成された赤いマテリアルが、そのシェイプだけでなく、独自のテクスチャを持っていても2番目のシェイプに適用されていることを除いて、すべてがうまく機能します。

関連するマテリアルメソッドは次のとおりです

シーンに10個のシェイプを配置し、シェイプ1と5に色付きのマテリアルを追加すると、1〜5が最初のマテリアルになり、6〜10が2番目のマテリアルになります。

私ができるはずだと思ったのは、gl.glLoadIdentity()のようなものを呼び出してそれをクリアすることですが、マテリアルパラメータについてはそれを見つけることができません。誰か助けてもらえますか?

ありがとう

長さは申し訳ありませんが、できるだけ簡潔にしようとしました。誰かがlibまたはより多くの情報に興味があるなら、私はgitハブhttps://github.com/ghostandthemachine/DroidGraphにいます

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

ios - cocos2dシーンはデバイスの画面の一部のみを占めることができますか?

私は、プレイヤーがCCSceneに含まれるさまざまな「部屋」の間を移動するiOSアクションゲームに取り組んでいます。プレイヤーが部屋を出ると、次のプレイヤーはcocos2dが提供するすばらしい組み込みのトランジションを介して画面に「スライド」します。

問題は、UIコントロール要素が画面に表示されたままであることが重要です。プレイエリアが上部にある間、それらは画面の下部に住んでいます。ただし、実際にはCCSceneのサイズを制限して、画面の一部のみを占めるようにする方法はないようです。

私は、CCSceneノードがフルスクリーンよりも小さいスペースを占めるようにcocos2dに指示できることを望んでいました。

しかし、これまでのところ、そのようなものは何も機能していません。CCSceneは常にフルスクリーンを占めます。ビューコントローラーなどを使用して、UIコントロール要素をcocos2dから完全に移動してこれを機能させる必要がある場合でも、問題ありません。しかし今、私がやろうとしていることがcocos2d内でさえ可能かどうか興味があります。

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

opengl-es - OpenGL ES 2.0 でのシーン グラフの実装

固定関数パイプラインがない OpenGL ES 2.0 でいくつかの基本的なシーン管理を実装する方法を探しています。

glTranslate通常は、 andで変換を適用する Node 基本クラスを実装し、glRotate(描画するものがあれば) それ自体を描画し、その子ノードの draw メソッドを呼び出します。

OpenGL ES 2.0 (または OpenGL 3.0) で実装された例はありますか?

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

opengl - 3Dシーングラフトラバースの問題

OpenGLによってレンダリングされる小さなシーングラフを実装しました。すべてのオブジェクトは共通のクラスから派生し、NodeOpenGLフレームのレンダリング中visitに、ルートノードのメソッドを呼び出すだけで、グラフを再帰的にトラバースします。トラバーサルを開始するときに最初に渡すマトリックスは、カメラマトリックスです。

メソッドは次のvisitようになります。

私が経験する問題は、子ノードに回転を設定すると、ノード自体ではなく、親ノードを基準にして回転が発生することです。誰かが私がここで間違っていることを見つけることができますか?

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

2d - 2D シーン グラフでの変換の適用

2D シーン グラフ: ノードで回転などの変換を実行する場合、これらの操作を子ノードにどのように適用する必要がありますか? それぞれの子に操作を適用すると、かなりの時間がかかる可能性があります。アプリがシーンをレンダリングすると、各ノードの下のグローバル回転が現在のノードの回転に追加されると思いました。平行移動と縮尺も同様です。がグラフで上昇している場合、それらのグローバル プロパティが差し引かれます。より良い方法はありますか?

0 投票する
3 に答える
3296 参照

matrix - 絶対変換に対する3D

3Dゲームのシーングラフを作成しようとしています。このグラフでは、すべてのオブジェクトの変換がその親に相対的です。グラフの各ノードには、回転、スケーリング、および平行移動のベクトルがあります。

オブジェクトの絶対変換を取得するために相対変換行列を組み合わせる正しい方法は何ですか?解決策についても説明していただければ幸いです。


これは間違った方法の例です:
これが実際に解決策であることが判明しました:

この場合、親ノードを回転、スケーリング、または移動すると、子は同じ量だけ変換されます。これは正しい動作です。 ただし、子は自分の原点を中心に回転するだけで、親の原点を中心に移動することはありません。


アプリケーション:

4輪の車種があります。ホイールは、車の原点の周りに相対的に配置されます。ホイールは、実際のホイールと同じように回転できます。今、車を回転させると、車輪は常に車に取り付けられたままになります。この場合、車はルートであり、ホイールは子ノードです。

別の例は、太陽系のモデルです。惑星はそれ自身の軸の周りを回転し、太陽の周りを動き、そして衛星は惑星の周りを動きます。

0 投票する
4 に答える
8981 参照

qt - OpenSceneGraph と Qt の統合

QtでOpenGLをいじりました。でも今は複雑なシーンが欲しい。(複数の COLLADA/MD2 モデルをロードした場合)。

これには、OpenSceneGraph (OSG) を使用することを考えています。OSG を Qt と統合することは可能ですか? もしそうなら、どのように?

ありがとう。

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

java - Javaゲームの簡単なシーングラフの生成

私は(処理を介して)OPENGLを使用してJavaで比較的単純なゲームに取り組んでいます。私は典型的なMVCパターンを使用しており、ゲームの更新はObserverパターンを使用してProcessingAppletに渡されます。プログラムのモデル側が更新でき、ビュー側が読み取れる比較的単純なシーングラフを実装したいと思います。これまでのところ良いですが、シーングラフは私にとって新しいものであり、そもそもシーングラフを生成するための適切な方法を思い付くのに苦労しています。

モデル側には、現時点でゲームエンティティ用の2つのコレクションがあります。1つはゲーム内のユニット用で、もう1つは環境オブジェクト用です。これらを繰り返し処理してノードを生成し、シーングラフに追加することができます。私がよくわからないのは、これらのエンティティの1つが変更または破棄されたときにどうするかです。ツリー全体を再度生成しますか(かなり非効率的です)、または各エンティティがシーンノードを「認識」し、必要に応じて更新できるようにする必要がありますか?

シーングラフの生成方法に関する一般的なアドバイスや資料へのリンクはありますか?