私は 3D ゲームに取り組んでおり、すべてのオブジェクトをコードに配置する必要があります。Java OpenGL にオブジェクトを配置するエディタを作成する方法はありますか?
そして、世界全体 (それは一種巨大です) を 1 つの大きなメッシュにするのが最善でしょうか、それとも別の方法で行う方が良いのでしょうか?
では、Java OpenGLにオブジェクトを配置するエディターを作成する方法はありますか?
OpenGLにはオブジェクトはありません。混乱している?
OpenGLは単に物を描くだけで、オペレーティングシステムによってある種の「キャンバス」が与えられ、必要に応じて点、線、三角形を描くように指示できます。
シーンやオブジェクトの管理に関連するものはすべて、あなたの負担、または追加のツールキットの負担です。
私は3Dゲームに取り組んでおり、すべてのオブジェクトをコードに配置する必要があります。
考えてみてください。データをハードコーディングする代わりに、ファイルからデータを読み取り、ファイルの内容を使用してシーンを作成し、OpenGLを使用して描画します。これは、テキストファイルを読んだり、ユーザーにテキストを印刷したりすることと大差ありません。同じ原則、異なる種類のデータのみ。
3Dモデラーはたくさんいます。優れたオープンソースのものはBlenderです。モデルやシーンを読み取り可能なファイル形式にエクスポートし(既存のファイルを実装するか、独自のファイルを作成してエクスポーターを作成することにより)、コードを使用してレンダリングします。
Java と openGL でレベル エディタを作成することは確かに可能ですが、これは通常、すべて単独で非常に大きなプロジェクトになります。
おそらく、オブジェクトをゲームにロードする最も簡単な方法は、ゲーム ワールド内のオブジェクトに関連する位置、方向、メッシュ、テクスチャ、およびその他のデータを含む XML ファイル (またはその他の種類のデータ ファイル) を作成し、それを編集することです。ただし、配置するオブジェクトがたくさんある場合、これは面倒な場合があります。これは実行時に読み取ることができ、シーンはこれらのオブジェクトをレンダリングできるようになります。後でこのファイル形式をレベル エディタで使用することができます。
あなたの質問の2番目の部分については、それによって異なります。しかし、世界全体を 1 つのメッシュにすることが良い考えであることはめったにありません。ワールドが多くのメッシュで構成されている場合、個々の頂点をカリングするのではなく、レンダー コールからオブジェクト全体をドロップできるため、カリングが簡単になります。