0

iOS 5.1 GLKit の改善を使用してロードされたテクスチャを単純に繰り返して、単純なクワッドに描画しただけです。

ここに頂点とtexCoordsがあります

#define ROAD_TEX_COORD_MAX  10

const Vertex roadVertices[] = 
{
    { {  90, -90, 0 } , { 1, 1, 1, 1 }, { ROAD_TEX_COORD_MAX, 0                  } }, // Bot R - 0
    { {  90,  90, 0 } , { 1, 1, 1, 1 }, { ROAD_TEX_COORD_MAX, ROAD_TEX_COORD_MAX } }, // Top R - 1
    { { -90,  90, 0 } , { 1, 1, 1, 1 }, { 0                 , ROAD_TEX_COORD_MAX } }, // Top L - 2
    { { -90, -90, 0 } , { 1, 1, 1, 1 }, { 0                 , 0                  } }  // Bot L - 3
};

const GLubyte roadIndices[] = 
{
    0, 1, 2,
    2, 3, 0
};

レンダリング ルーチンは次のとおりです。

- ( void ) render
{
    [self.baseEffect prepareToDraw];

    glBindBuffer( GL_ARRAY_BUFFER, vertexBuffer );
    glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, indexBuffer );

    glEnableVertexAttribArray( GLKVertexAttribPosition );        
    glVertexAttribPointer( GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, sizeof( Vertex ), ( const GLvoid * ) offsetof( Vertex, Position ) );
    glEnableVertexAttribArray( GLKVertexAttribColor );
    glVertexAttribPointer( GLKVertexAttribColor, 4, GL_FLOAT, GL_FALSE, sizeof( Vertex ), ( const GLvoid * ) offsetof( Vertex, Color ) );
    glEnableVertexAttribArray( GLKVertexAttribTexCoord0 ); 
    glVertexAttribPointer( GLKVertexAttribTexCoord0, 2, GL_FLOAT, GL_FALSE, sizeof( Vertex ), ( const GLvoid * ) offsetof( Vertex, TexCoord ) );

    glDrawElements( GL_TRIANGLES, sizeof( roadIndices ) / sizeof( roadIndices[0] ), GL_UNSIGNED_BYTE, 0 );
}

しかし、これは私が最終的にやっているものです:

ここに画像の説明を入力

今私は、デフォルトで REPEAT テクスチャ設定を使用する EAGL セットアップを読みました。手動で CLAMP_TO_EDGE に設定する必要があります。ただし、ここではそうではありません-これらのいずれも設定していません(ただし、CLAMPを無効にしてREPEATを有効にしようとしましたが、クワッドを黒くするだけで、テクスチャは表示されませんでした.

4

0 に答える 0