私はコンピュータグラフィックスにまったく不慣れであり、さらにゲーム開発にも不慣れです。基本を素早く学ぶための情報を探しています。頭の中に一つ質問があります。Crytek EngineやUnreal Engineなどのエンジンは、OpenGLまたはDirectXとどのように関連していますか?
私はゲームの物理学に非常に興味がありますが、物理学、グラフィックス、およびエンジンがどのように組み合わされているのかわかりません。埋められないギャップがあります。
私はコンピュータグラフィックスにまったく不慣れであり、さらにゲーム開発にも不慣れです。基本を素早く学ぶための情報を探しています。頭の中に一つ質問があります。Crytek EngineやUnreal Engineなどのエンジンは、OpenGLまたはDirectXとどのように関連していますか?
私はゲームの物理学に非常に興味がありますが、物理学、グラフィックス、およびエンジンがどのように組み合わされているのかわかりません。埋められないギャップがあります。
回答:
TL; DR:エンジンは再利用可能なコンポーネントの集まりです。
テキストの壁:ゲームは世界の表現を格納します。たとえば、家のようなエンティティがあり、ジオメトリの外観と位置を定義するメッシュを持っているとします。
今、あなたはおそらく複数のエンティティを持っています。プレイヤー制御のキャラクターといくつかのボックスがあるとしましょう。プレイヤーが移動したいときは、キャラクターを移動して、ボックスと衝突するかどうかを確認します。それが物理学の出番です。物理がどのようにモデル化されているかに応じて、キャラクターはボックスを歩いたり、ボックスの前で止まったり、ボックスを押したりするだけです。
ちなみに、これはゲームの世界の内部状態を変えるだけです。
次に、動きと物理を計算した後、フレームをレンダリングします。たとえば、世界の現在の状態を画面に描画します。
OpenGLとDirectXはグラフィックAPIであり、画面に表示されるもの(キャラクターなど)にのみ使用されます。
つまり、基本的にはOpenGL / DirectXに、「position1に文字を描画し、position2にボックスを描画したい...」と伝えています。
もちろん、これは全体的な単純化です。
とにかく、その手順を常に1つずつ順番に説明する必要はないので、関数とクラスにそれらを入れます。したがって、物理シミュレーションに必要なすべての関数を保持するクラスphysics、またはグラフィックスapiとインターフェースしてエンティティを描画するグラフィックスクラスを使用する場合があります。出来上がり、エンジンがあります。