0

呼び出し時:

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texWidth, texHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, rawData);

データをフォーマットする方法を知るのは簡単です: 0 から 255 の範囲のバイト配列を渡します。ここで、0 は最も低く、255 は各色コンポーネントの最も明るいです。

GL_FLOAT で同じことを行う場合、float の配列を渡します。私の質問は、各色成分値の範囲はどのくらいですか? 0~1.0? 0 から float の最大値まで?

そして、GL_RGBA が使用されている場合、浮動小数点数の配列 (ピクセルごとに 4 つの浮動小数点数) を渡しますよね?

また、確認のために: GL_HALF_FLOAT_OES は glTexImage2D のパラメーターではなく、頂点のみのパラメーターです。正しいですか?

私の iPad 3 は、「GL_OES_texture_float」と「GL_OES_texture_half_float_linear」がサポートされていると報告しています。これは、実際に GL_FLOAT を glTexImage2D のパラメーターとして使用できることを意味しますよね? iPad 2 がこれをサポートしているかどうか知っている人はいますか?

4

2 に答える 2

3

浮動小数点値の範囲は... 浮動小数点値の範囲です。それがそれらを使用するポイントです。シェーダで浮動小数点テクスチャからフェッチすると、そこに格納された浮動小数点値が取得されます。クランプや何も適用されていません。

Half-float テクスチャを作成すると、その値の範囲は 16 ビットの浮動小数点値になります。単精度浮動小数点テクスチャを作成すると、その値の範囲は 32 ビット浮動小数点値になります。

于 2012-11-20T19:48:04.063 に答える
0

この質問の最初の 2 つの部分にはお答えできます。最後の 2 つの部分については、この質問を参照してください。

私の質問は、各色成分値の範囲はどのくらいですか? 0~1.0?

はい、範囲は 0.0 から 1.0 です

[編集] Nicol Bolas が指摘しているように、これは正しくありません。任意の浮動小数点値を使用できますが、それがカラー値として解釈されると、範囲 (0.0 - 1.0) にクランプされます。

そして、GL_RGBA が使用されている場合、浮動小数点数の配列 (ピクセルごとに 4 つの浮動小数点数) を渡しますよね?

はい、フロートもその順序で格納されます (赤、緑、青、アルファ)

于 2012-11-20T19:28:39.117 に答える