2009-03-27 6 views
1

複数の場所では、パフォーマンスのためにテクスチャアトラスを使用することをおすすめします。 Appleは関数gltexcoordpointerを提案する。私の例では、私はそれぞれがランダムなテクスチャを与えられた1列の四角形を持っています。私はすべてのランダムなテクスチャをスーパーテクスチャに入れます。今問題は、私はtexcoordarrayを作成するように見えないということです。 gltexcoordpointerが選択したサブテクスチャをどのように頂点座標にアサインするかに関する情報は見つかりません。頂点は理想的にはtriangle_stripを使用して描画されますが、三角形も同様に機能します。テクスチャアトラスの実装、triangle_stripまたはtriangles。 iPhone opengl es

答えて

0

gltexcoorpointerは、1対1ベースでテクスチャ座標を割り当てます。だから私は三角形として描き、多くの頂点を繰り返しなければならなかった。私が頂点を共有できなかった理由は、共有頂点が同じテクスチャ座標を持つためです。

1

テクスチャをレンダリングしたい場合や、圧縮したい場合はglTexCoordPointerを使用する必要があります。しかし、UV座標系内でテクスチャを移動したい場合は、テクスチャ座標配列の個々のエントリをいつでも自由に操作できます。 GL_TRIANGLE_STRIPを使用して、基本的なTextureAtlasクラスを作るために

- (void) shiftTextureUVY:(float)shift { 

    textureVertices[1] += shift; 
    textureVertices[3] += shift; 
    textureVertices[5] += shift; 
    textureVertices[7] += shift; 

} 
- (void) shiftTextureUVX:(float)shift { 

    textureVertices[0] += shift; 
    textureVertices[2] += shift; 
    textureVertices[4] += shift; 
    textureVertices[6] += shift; 

} 

:私はこれらのような関数を使用しています。あなたはこれで本当にファンキーになり、同様の方法で反射やゆがみを行うことができます。