2012-01-14 7 views
0

Instrumentsでは、テクスチャ座標にGL_SHORTを使用することを推奨しています。私は0と1の値しか必要としないクワッドのためにそれを行います。GL_SHORTをテクスチャ座標として使用

また、ショーの精度が十分であれば、0と1の間の値が必要な場合にもGL_SHORTを使用できますか?もしそうなら、どのように?

答えて

5

最大精度を得るには、0.0.3〜1.0fの値を指定するGL_SHORTとしてテクスチャ座標を指定するには0..32767の値を使用できます。次に、精度は1/32767になります。これはおおよそ0.00003です。あなたのために十分ですか?それはあなたとあなたのアプリケーションに依存します。ほとんどの場合、それだけで十分でしょう。

0から1の間の値を指定するには、スケーリング付きテクスチャマトリックス(GLES1の場合)を使用するか、フラグメントシェーダ内の適切なスケーリングユニフォーム(GLES2の場合)をテクスチャ座標に掛けます。

GLES1の簡単な例 - テクスチャir 100x200と言い、1テクセルよりも精度の低いテクスチャ座標を指定する必要はありません。その後、あなたは次の要因のためにスケーリングするために、あなたのテクスチャ行列を設定することができます - 1/100と1/200を:その後

glMatrixMode(GL_TEXTURE); 
glPushMatrix(); 
glLoadIdentity(); 
glScalex(65536/100, 65536/200, 1); 
glMatrixMode(GL_MODELVIEW); 

をご頂点配列に/あなたが使用できるバッファ:

  • (0、0 (10,100.0f、40/200.0f)=(0.1f、0.2f)
  • (100,200)を指定するための(0.0f、0.0f) (1.0f、1.0f)の値を指定します。
関連する問題