GL_QUAD_STRIPのテクスチャ座標を指定する方法を理解しようとしています。
私はなんとか1つのクワッドで物事を機能させることができました:
float vertices[] = { 0.0f, 0.0f, 1.0f, +1.0f, 0.0f, 0.0f, // bottom line
0.0f, 1.0f, 1.0f, +1.0f, 1.0f, 0.0f}; // top line
unsigned int indices[] = {2, 0, // x = 0
3, 1}; // x = +1
float textureCoordinates[] = { 1.0f, 0.0f,
0.0f, 0.0f,
1.0f, 1.0f,
0.0f, 1.0f};
...
glBindBuffer(GL_ARRAY_BUFFER, 0); // unbinds any buffer object previously bound
glTexCoordPointer(2, GL_FLOAT, 0, textureCoordinates);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibufferid);
glDrawElements(GL_QUAD_STRIP, 4, GL_UNSIGNED_INT, BUFFER_OFFSET(0));
結果は次のようになります(画像付きの白い長方形、説明のために残りが描かれています):
ただし、textureCoordinates[]の選択の背後にあるロジックを理解していません:-(。
最初のテクスチャ座標は(1,0)です。これは右下隅に対応すると思いますか?
また、OpenGLが最初のインデックスを読み取るとき:2、これを使用して頂点を検索すると仮定します:(0,1,1):左上隅。次に、最初のテクスチャ座標(1,0)を読み取ります。しかし、前述のように、これはテクスチャの右下隅であると想定します!?
ただし、テクスチャは回転せずに表示されるため、これは当てはまりません!?