1

そのため、最近、グラフィックスを大幅に高速化すると思われる 3D グラフィックス用の新しい API に関するすべての騒ぎで、なぜこれが以前に行われなかったのか疑問に思っています。古い方法と新しい方法の違いは何ですか?

それがどのように達成されるか、また、GPU からドライバー、DX または OGL の API まで、どのように機能するかの概要さえ知りたいです。

4

2 に答える 2

6

起こった主なことは、GPU 自体がさまざまなベンダー間でさえかなり標準化されたことです。DirectX と OpenGL は歴史的に、さまざまなベンダーの GPU 設計の違いを隠すために多くの努力を払ってきました。その多くは、過去には非常に異なるハードウェア アーキテクチャを持っていました。 -特定の拡張子。

DirectX 12 と Mantle はどちらも GPU の基礎となる動作を以前よりも多く公開しているため、ランタイム ライブラリは基礎となるドライバーよりもはるかに薄い抽象化になっています。このアプローチは、すべてのビデオ カード、特に従来の DirectX と OpenGL がサポートできる古いカードの多くで機能するとは限りません。DirectX 10 に続いて DirectX 11 の GPU 機能を標準化しようとする動きにより、さまざまなベンダーのコンシューマー グレードの PC グラフィックス ハードウェアは、DirectX の初期の頃からあまり風変わりではなくなりました。

留意すべきもう 1 つのことは、このトレードオフにより、アプリケーション/ゲーム自体が CPU/GPU 同期を適切に処理し、ハードウェアを効率的に駆動し、それらが使用する状態の組み合わせを追跡して徹底的に記述し、一般的に動作することを要求することです。ランタイムからの安全性とサポートのレベルはほとんどありません。

DirectX 12 アプリケーションを作成するには、今日の DirectX 11 や OpenGL よりもはるかに多くのグラフィックス プログラミング スキルが必要です。Direct3D 9 でデバイス/スワップチェーンと単純なレンダリング シーンをセットアップするには、数十行、Direct3D 11 では数百行のコードが必要になる場合がありますが、DirectX 12 では、アプリケーション自体が使用するすべての個々のステップを実行する必要があるため、さらに多くのコードが必要になります。実行時に「魔法で」実行されます。これにより、アプリケーション/ゲームは正確なシーケンスを微調整し、実際には必要のないステップをスキップできますが、それを実現するのはランタイムではなく、アプリケーションにあります。

ベンおじさんの言葉を借りれば、大きな力には大きな責任が伴います。

開発者は何年もの間、PC で「コンソールのような」API が欲しいと主張してきました。ゲーム エンジン ライター、カスタム エンジンを使用した AAA タイトル、およびテクノロジ デモ シーンにとって、ハードウェアをほぼ直接制御できるのは非常にクールです。普通の人にとっては、DirectX 11 をしばらく使用するか、DirectX 12 を既に実装しているエンジンを使用する方がはるかに簡単です。

于 2015-02-22T21:41:27.503 に答える
0

GPU からドライバー、API までの動作の概要については、このグラフィックス パイプラインから始めることができます。

于 2015-02-22T16:00:41.523 に答える