アンリアルのようなエンジンはOpenGLやDirectXとどのように関係していますか?


8

私はコンピュータグラフィックスにまったく不慣れであり、さらにゲーム開発にも不慣れです。基本を素早く学ぶための情報を探しています。頭の中に一つ質問があります。Crytek EngineやUnreal Engineなどのエンジンは、OpenGLまたはDirectXとどのように関連していますか?

私はゲームの物理学に非常に興味がありますが、物理学、グラフィックス、およびエンジンがどのように組み合わされているのかわかりません。埋められないギャップがあります。


ここに答えの一部がありますが、それは他の質問をもたらすだけです。Scientificninja.com/blog/write-games-not-engines
BRabbit27

物理学はどこに入りますか?衝突アルゴリズムなどの物理アルゴリズムを記述し、OpenGLで作成されたいくつかの円を物理アルゴリズムに従って動作させる必要があるようなものですか?
BRabbit27

回答:


10

TL; DR:エンジンは再利用可能なコンポーネントの集まりです。

テキストの壁:ゲームは世界の表現を格納します。たとえば、家のようなエンティティがあり、ジオメトリの外観と位置を定義するメッシュを持っているとします。

今、あなたはおそらく複数のエンティティを持っています。プレイヤー制御のキャラクターといくつかのボックスがあるとしましょう。プレイヤーが移動したいときは、キャラクターを移動して、ボックスと衝突するかどうかを確認します。それが物理学の出番です。物理がどのようにモデル化されているかに応じて、キャラクターはボックスを歩いたり、ボックスの前で止まったり、ボックスを押したりするだけです。

ちなみに、これはゲームの世界の内部状態を変えるだけです。

次に、動きと物理を計算した後、フレームをレンダリングします。たとえば、世界の現在の状態を画面に描画します。

OpenGLとDirectXはグラフィックAPIであり、画面に表示されるもの(キャラクターなど)にのみ使用されます。

つまり、基本的にはOpenGL / DirectXに、「position1に文字を描画し、position2にボックスを描画したい...」と伝えています。

もちろん、これは全体的な単純化です。

とにかく、その手順を常に1つずつ順番に説明する必要はないので、関数とクラスにそれらを入れます。したがって、物理シミュレーションに必要なすべての関数を保持するクラスphysics、またはグラフィックスapiとインターフェースしてエンティティを描画するグラフィックスクラスを使用する場合があります。出来上がり、エンジンがあります。


「Etvoilà」のアクセントが抜けているのは冗談です。誠にありがとうございました。正解かと思ったのですが、よくわからなかったのでお尋ねしました。どうもありがとう!
BRabbit27

2
DirectXはグラフィックAPIではありませんが、Direct2DとDirect3Dはそうです。

@JaakkoLipsanenはい、わかりました。DirectXはゲーム開発(3d、オーディオ、ビデオなど)のための完全なフレームワークであり、Direct3Dは単なるグラフィックスモジュールです。
BRabbit27
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.