小编CG.*_*CG.的帖子

在opengl纹理顶部32像素的间隙

我第一次尝试使用openGL ES(对于iPhone)渲染纹理,然后在屏幕上显示纹理.一切正常,除了纹理顶部有32行间隙,底部32行被切掉.这就像我的所有绘图都偏移了32个像素,这导致底部的32行没有被绘制,因为它们在纹理之外.

这是一个非常简单的例子:

void RenderToTexture( int texture )
{
    unsigned char buffer[4 * 320 * 480];
    unsigned char colour[4];
    colour[0] = 255;
    colour[1] = 0;
    colour[2] = 0;
    colour[3] = 128;
    for ( int i = 0; i < 4 * 320 * 480; i += 4 )
    {
        buffer[i] = colour[0];
        buffer[i+1] = colour[1];
        buffer[i+2] = colour[2];
        buffer[i+3] = colour[3];
    }
    glBindTexture( GL_TEXTURE_2D, texture );
    glTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, 320, 480, GL_RGBA, GL_UNSIGNED_BYTE, buffer );
}
Run Code Online (Sandbox Code Playgroud)

这是结果:

http://img10.imageshack.us/img10/2113/screenjc.th.jpg …

iphone textures render opengl-es

2
推荐指数
1
解决办法
440
查看次数

标签 统计

iphone ×1

opengl-es ×1

render ×1

textures ×1