我先把图片分割,然后再贴到相邻的两个长方形内,为什么中间这个地方会有一条线呢,请高手给点提示
谢谢了!纹理设置代码如下: int i, width, height;
BOOL sizeToFit = NO;
GLubyte * data = NULL;
CGContextRef ct = NULL;
width = CGImageGetWidth(image);
height = CGImageGetHeight(image); if((width != 1) && (width & (width - 1))) 
{
i = 1;
while((sizeToFit ? 2 * i : i) < width)
i *= 2;
width = i;
}
if((height != 1) && (height & (height - 1))) 
{
i = 1;
while((sizeToFit ? 2 * i : i) < height)
i *= 2;
height = i;
}
while((width > kMaxTextureSize) || (height > kMaxTextureSize)) 
{
width /= 2;
height /= 2;
}

data = (GLubyte *)malloc(height * width * 4);
ct = CGBitmapContextCreate(data,
   width,
   height,
   8,
   width * 4,
   CGImageGetColorSpace(image),
   kCGImageAlphaPremultipliedLast); CGContextClearRect(ct, CGRectMake(0, 0, width, height));
CGContextTranslateCTM(ct, 0.0, height);
CGContextScaleCTM(ct, 1.0, -1.0);
CGContextDrawImage(ct, CGRectMake(0, 0, width, height), image);
// CGImageRef saveImageRef = CGBitmapContextCreateImage(ct);
// UIImage * saveImage = [UIImage imageWithCGImage:saveImageRef];
// NSString * savePath = [NSString stringWithFormat:@"%@/Documents/%d.jpg", NSHomeDirectory(), location];
// [UIImageJPEGRepresentation(saveImage, 1.0) writeToFile:savePath atomically:YES];
// CGImageRelease(saveImageRef);
// CGContextRelease(ct);

glBindTexture(GL_TEXTURE_2D, location);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
//    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);     
//    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
// glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);

free(data);绘图代码如下: // Our new object definition code goes here
[EAGLContext setCurrentContext:context];
glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer);
glViewport(0, 0, backingWidth, backingHeight);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// glEnable(GL_CULL_FACE);
// glFrontFace(GL_CCW);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glScalef(scaleX, scaleY, scaleZ);
_angle = 30;
// _angle += 5;
glRotatef(_angle, 0, 1, 0);
glRotatef(10.0, 0, 1, 0);

glVertexPointer(3, GL_FLOAT, 0, vertices);
glTexCoordPointer(2, GL_SHORT, 0, texCoords);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

for (int i = 0; i < POLYGON; i++) 
{
glBindTexture(GL_TEXTURE_2D, _textures[i]);
glDrawArrays(GL_TRIANGLE_FAN, i * 4, 4);
}

// Our new drawing code goes here
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER_OES]; 我把data里面的内容保存的时候,并没有发现有这条缝隙 CGImageRef saveImageRef = CGBitmapContextCreateImage(ct);
UIImage * saveImage = [UIImage imageWithCGImage:saveImageRef];
NSString * savePath = [NSString stringWithFormat:@"%@/Documents/%d.jpg", NSHomeDirectory(), location];
[UIImageJPEGRepresentation(saveImage, 1.0) writeToFile:savePath atomically:YES];
CGImageRelease(saveImageRef);
CGContextRelease(ct);