openglの機能を完全に理解するために、誰かがopenglに似たラスターエンジンを作成しようとしていることをどこかで読みました。
グラフィックカードにはopengl/directxがあり、グラフィックのコアには他に何も使用できないため、それができないことは私の理解でした。
私の見方は間違っていると思いますが、誰かがそれを修正できますか?
OpenGLは、グラフィックを処理する標準的な方法です。分離されたソフトウェアとしてグラフィックカードだけに存在するわけではありません。グラフィックカードにOpenGLハードウェアアクセラレーションがある場合、それは、コンピュータがOpenGLコマンドの一部をグラフィックカードに送信し、CPUが処理しなければならない作業をオフロードできることを意味します。ただし、カードが事前に設計されているためです。 OpenGL標準。
カードでOpenGLハードウェアをサポートしていない場合は、すべてをメインプロセッサ経由で送信する必要があり、通常は最適ではありません。
実際、OpenGLには多くの実装があります。一部は、ATIやNVidiaなどの企業によってハードウェアが注入されており、opengl処理をカードに転送するための独自のopengl実装を提供しています。その他は、オープンソースのMESAのようなソフトウェアベースです。DirectXカードとOpenGLゲームのように、不一致のカードとゲームを実行している場合は、おそらく純粋なソフトウェア実装でレンダリングする必要があります。
そうです、純粋なソフトウェアの実装は可能ですが、最適ではありません。ただし、低レベルのグラフィック情報にその場でアクセスして操作する必要がある場合は、ソフトウェアの実装が必要になることがあります。それを行う方法を知ることは、持っている素晴らしいスキルです。
特定のコンテキストでもビデオメモリにアクセスでき、ラスター実装のコアであるブリッティングを実行できます。独自のグラフィックエンジンを学習ツールとして作成することはもっともらしく、それはかなり一般的であるとさえ言えます。コンピュータサイエンスのクラスでは、商用の実装に適合しないことを知っていても、学習演習としてコンパイラを作成します。