2

たとえば、次のようなことをしたい場合:

createTriangle(1.0,1.0); // Create triangle at (1,1)

コードでこれを行うにはどうすればよいですか? これをハードコーディングするのは快適ですが、動的に実行したい場合は、バッファをバインドして埋めてからディスプレイにバインドするにはどうすればよいですか? 1 つの大きなバッファーに頂点を追加するだけですか? しかし、異なるオブジェクトに対して異なる変換を行うにはどうすればよいでしょうか?

編集:明確にするために、頂点を作成してグラフィックスパイプラインに挿入する方法を尋ねています。

4

2 に答える 2

2

ゲームを作りたいなら、それをやってください:) 問題を解決することは、ゲームを持たずに問題です! アーキテクチャを計画し、シーン上のオブジェクトとそのコンポーネント (物理学、グラフィックス) を表現するアイデアはありますか? もしそうなら、シーンを初期化するコード内の場所があり(そこでバッファを作成しましょう)、「エンジン」オブジェクト(またはメイン/レンダリング/アニメーション/ループがある場所)にそれらすべてを描画させます。オブジェクトに応じて、モデル/3D/2D の数に応じて、バッファの ID をオブジェクト (描画され、レンダー ループで「エンジン」オブジェクトがバッファをバインド) に格納するか、単に「エンジン」に格納することができます。 ' 物体。

どんなゲームを作っているか、どんな問題にどのような規模で直面しているかなど、すべてが異なります (たとえば、その場合、オブジェクトのグループなどを含む、より大きなオブジェクト マネージャーを作成できます。問題は、これらが本当に必要かどうかです)。 ? 彼らはおそらくより多くのバグを作り、コードを保守するのにより多くの時間がかかり、結局、このモジュールを再度書かなければならなくなります.) 必要のない構造を作成しないでください.

1 つのルールがあなたを導くかもしれません。そして、UDK にアーキテクチャがあるからといって、必要なアーキテクチャではなく、ゲームを作成してください。

于 2012-06-02T21:14:16.097 に答える
0

おそらく、1 つの大きなバッファーではなく、シェーダー、変換などの共通のものを共有する複数のバッファーを使用する必要があります。ただし、バッファーの数を抑えることは、グラフィックスの実行を高速化するための良い方法です。

于 2012-06-02T20:57:32.783 に答える