1

OpenGLで描画アプリを作成しています。グラデーション テクスチャを生成するアルゴリズムを作成しました。次に、これらをポリゴンにマッピングすると、非常にうまく機能します。私が気付いたのは、これに必要なメモリの量です。1000 個のグラデーションを作成するには、約 800MB かかります。これは多すぎます。テクスチャに代わるもの、またはそれらを圧縮する方法、またはグラデーションをポリゴンにマッピングする別の方法で、メモリをあまり消費しないものはありますか?

ありがとう

私のポリゴンは凹状で、GLUTesselator を使用しています。それらは多色でポイント ツー ポイントです。

4

2 に答える 2

4

はい...グラデーションはOpenGLで行うのが非常に簡単です。テクスチャはまったく必要ありません。ここでメモリから作業する...次のようにするだけです:

glBegin(GL_POLYGON);
glColor3ub(255,0,0); // red
glVertex2f(-1,-1);
glVertex2f(1,-1);
glColor3ub(0,0,255); // blue
glVertex2f(1,1);
glVertex2f(-1,1);
glEnd();
// draws a square that fades from red to blue

頂点の色を変更すると、それらの 2 点間にグラデーションが作成されます。

于 2010-06-09T01:37:01.690 に答える
2

フラグメント シェーダー内でプロシージャルにグラデーションを生成することもできます。

テクスチャ圧縮パスを経由する場合は、glCompressedTexImage2D を使用できます。圧縮されたテクスチャ フォーマットは GL 拡張を介して提供されます。一般的なものは S3TC/DXT1 です。

于 2010-06-09T01:59:18.690 に答える