3

数人の友人と一緒に、このアマチュア プラットフォームに依存しない Java ベースの宇宙戦闘シミュレーター ゲームのプロジェクト (翼の司令官の長い死んだ物語のようなもの) を開始しました。私たちの誰も 3D プログラマーではないので、道のりは長いでしょう。

私の質問は: 私たちの代わりに OpenGL の学習を開始しますか (おそらく GLUT を介して)、または今日より良い可能性はありますか? Direct3D はどうですか?お勧めの本はありますか?具体的には、カップルを注文しました

  • Dave Shriner の OpenGL プログラミング ガイド
  • Luke Benstead の OpenGL ゲーム プログラミング入門
4

6 に答える 6

5

Ogre3DIrrlichtなどのオープン ソース 3D エンジンの使用を検討してください。このようにして、コンテンツ、ゲームプレイなど、ゲームの作成に集中できます。

どちらのエンジンも、Direct3D または OpenGL バックエンドにマップできる抽象化レイヤーを定義します。

編集: 最初は、あなたが Java について言及していることに気づきませんでした。とにかく、両方のエンジンが Java バインディングをサポートしています。

于 2009-12-02T11:23:48.220 に答える
3

Ogre3DやIrrlichtなどの高レベルの3Dエンジンを使用する代わりに、低レベルのグラフィックプログラミングを学ぶことにした場合は、OpenGLのサブセットであるOpenGLES2.Xから始めることをお勧めします。

OpenGL ES 2.Xは、電話などのプログラム可能なハードウェアを備えた組み込みシステム向けのOpenGLの簡略化されたサブセットです。たとえば、OpenGLではタスクを実行する方法が複数ある場合がありますが、Open GLES2.Xでは1つの方法しかありません。OpenGL ES 2.Xには選択肢が少ないため、OpenGLES2.Xをマスターする方法を学ぶことはほとんどありません。OpenGL ES 2.0プログラミングガイドは480ページで、OpenGLプログラミングガイド第7版は936ページです。

さらに、OpenGL ES 2.Xを使用すると、ゲームのハードウェアオーディエンスが広がります。これはOpenGLのサブセットであるため、OpenGL ES 2.X用に記述されたコードは、ほとんどまたはまったく変更を加えることなく、完全なOpenGLシステムで動作します。ゲームのグラフィックは、デスクトップからスマートフォンまで、さまざまなターゲットマシンで動作します。

于 2009-12-02T14:01:12.787 に答える
2

Ogre3Dのようなオープンソースの 3D エンジンを選択できます。

しかし、本当に自分でグラフィック エンジンを書きたいのであれば (非常に興味深いことです)、線形代数を学ぶことから始めてください。それほど高度なものではありませんが、平行移動ベクトルや回転行列などで自分自身を表現することに非常に慣れているはずです。

これらの概念に既に精通している場合は、Direct3D または OpenGL のいずれかを選択してください。これは、利用可能なプラットフォームによって異なります。Mircosoft 環境でコーディングする場合は、Direct3D を選択し、それ以外の場合は OpenGL を選択します。

追加のライブラリの選択は、プログラミング言語によって異なります。GLUT よりも優れた代替手段は、おそらく SDL (C) または Qt(C++) です。

于 2009-12-02T11:28:27.807 に答える
1

これまでに 3D グラフィックス プログラミングを行ったことがない場合は、シンプルさを求めて、学習しながら学習してください。以前は、NeHe (Neon Helium) による OpenGL 用の非常に優れたチュートリアルのセットがあり、それが私がたどったルートでした。

于 2009-12-02T11:23:59.630 に答える
1

学習曲線はそれほど急勾配ではないため、OpenGL を使い始めるのは簡単であることがわかりました。最初の欲求不満/動機付けに大いに役立つ迅速な結果を得ることができます. たくさんのヘルプなど。警告の言葉 - 3D プログラミングは本質的に複雑であり、ゲーム自体よりもグラフィックス テクノロジの構築により多くのエネルギーを費やすことになります。ゲームの完成を本当に見たい場合は、Ogre3D の採用を検討してください :o) (免責事項: 他のエンジンも存在することは知っていますが、Ogre は安定しており、実績があり、優れたドキュメントが付属しています)

于 2009-12-02T12:24:14.563 に答える
0

プラットフォームに依存しないままにしたい場合、DirectX は Microsoft Windows プラットフォームに制限されているため実行できません。

于 2009-12-02T11:23:27.493 に答える