純粋なOpenGLソフトウェアレンダリング


8

機械学習アルゴリズムをトレーニングするには、ハードウェアレンダリングサポートなし(グラフィックカードなし)で一部のジオメトリをOpenGLでレンダリングする必要があります。したがって、純粋なソフトウェアでのレンダリングを考えていましたが、すでにMesaを見てきました。純粋なソフトウェアでレンダリングできるようですが、今のところOpenGL 2.xしか入手できませんが、OpenGL 3.3が必要です。

それが可能かどうか誰か知っていますか?もしそうなら、どうやって?私たちはいつもつまずきに遭っているようです。

(背景、それを行う理由:学習アルゴリズムをトレーニングするために、ハードウェアでのレンダリングを許可しないPCクラスター上でソフトウェアの多くの実行を実行する必要があります。)

任意のヒント、アイデア、およびポインターが高く評価されます。


Mesaは、一部のシステム(ラップトップなど)でハードウェアアクセラレーションOpenGL 3.3をサポートしていません。
大佐32 2

回答:


6

私はあなたの要求で混乱しています。PCまたは組み込みシステムでコードを実行していますか?リモートでPCのように見えるもので実行している場合、「ハードウェアレンダリングのサポート」は基本的に正しくありません。最低限、あなたはいくつかのインテル統合されたものを持っています。物理的にビデオチップを備えていないヘッドレスシステムはまだ見ていません。

ヘッドレスシステムでは、ウィンドウなしでレンダリングできます。GLXでこれを行う方法は、ウィンドウレスOpenGLで詳細を確認できます。いずれにせよ、最も壊れやすいハードウェアでも、ソフトウェアレンダラーよりも効率的です。

本当に困っていて、グラフィックハードウェアがまったくない場合は、VirtualGLのようなものを使用できます。

しかし、OpenGLを使用してソフトウェアで画像を合成している場合は、逆のようです。OpenGLは、グラフィックハードウェアの厳しい制限を中心に設計されています。その結果、ソフトウェアでレンダリングする際に意図的に無視できる重要な制限が組み込まれています。さらに、現在のハードウェアを使用する場合、ラスターアルゴリズムはあまり効率的ではありません。一次レイトレーシングはより効率的で、複数のコアで簡単に麻痺します。たぶん、あなたはPovRayのようなものを調べることができます。


1
OpenGL 1.4 + ARBフラグメントアセンブリ+ ARBソフトウェアで実装された頂点アセンブリのみをサポートする、現在でも製造されているくだらないIntelビデオチップがいくつかあります。これらは、OpenGL 3.必要なすべてのアプリのためのソフトウェアレンダラよりも任意のより効率的ではありません
ルスラン

どうもありがとう。はい、それはPCのようなものです。まず、sshを介してログインするPCクラスター内のシンプルなPC。後で、HPCシステムのPCノードになります。問題は、私たちが何をしても、常にOpenGL 2.1しか入手できないことです。私たちのアプリケーションはQtに基づいていますが、ウィンドウレスバージョンでは、OpenGLコンテキストを作成するものを除いて、すべてのQtコードが非アクティブです。そして、はい、リモートマシンでDISPLAYを:0.0に設定しました。
ガブリエル

しかし、再びOpenGL 2.1はそれほど悪くありません。私はそれを広範囲に使用し、かなり良い結果を得ました。
rioki 14

3

Mesaのソフトウェアレンダラーでは、OpenGL 2.xのみが完全にサポートされているようです。

ただし、この回答は、OpenGL 3.xのほとんどの機能が拡張機能を介してサポートされていることを示唆しています。だから、あなたはそれを試してみたいかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.