iphone openGLES加载纹理有关问题
发布时间:2010-05-30 01:25:22 文章来源:www.iduyao.cn 采编人员:星星草
iphone openGLES加载纹理问题
用下面代码加载了纹理:
CGImageRef textureImage = [UIImage imageNamed:@"apple128.png"].CGImage;
NSInteger texWidth = CGImageGetWidth(textureImage);
NSInteger texHeight = CGImageGetHeight(textureImage);
GLubyte *textureData = (GLubyte *)malloc(texWidth * texHeight * 4);
CGContextRef textureContext = CGBitmapContextCreate(
textureData,
texWidth,
texHeight,
8, texWidth * 4,
CGImageGetColorSpace(textureImage),
kCGImageAlphaPremultipliedLast);
CGContextDrawImage(textureContext,
CGRectMake(0.0, 0.0, (float)texWidth, (float)texHeight),
textureImage);
CGContextRelease(textureContext);
glGenTextures(1, &tex[0]);
glBindTexture(GL_TEXTURE_2D, tex[0]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texWidth, texHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureData);
free(textureData);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
然后绘制:
static const GLfloat vertices[] =
{
-30, 30, -0.0,
-30, -30, -0.0,
30, -30, -0.0,
30, 30, -0.0,
};
static const GLfloat texCoords[] =
{
0.0, 1.0,
0.0, 0.0,
1.0, 0.0,
1.0, 1.0,
};
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, tex[0]);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexCoordPointer( 2, GL_FLOAT, 0, texCoords );
glVertexPointer(3, GL_FLOAT, 0, vertices);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
结果片是上翻转,请问,这是为什么呀?
------解决方案--------------------
因为opengl的坐标系是+y向上,图片坐标系是+y向下,你要把图片倒一下,或者把v倒一下
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
图片拾取器问题
用图片拾取器方法除了能拾取相册里面的图片外,能不能拾取其它文件里面非照片的图像啊,如果能,要怎么做
------解决...
-
请教个问题。。很弱智,不要嘲笑。。
请问mac osx 10.6下开发出来的程序在mac osx 10.5下可以正常使用么?会不会有些库的问题?
客户要...
-
一个数组可以放UIButton,那怎么调用这些元素呢,[array objectatindex i]不好用]
UIButton,那怎么调用这些元素呢,[array objectatinde...
-
关于imageView显示图片的问题
我现在需要在一个imageView中现在两张图片,这两张是重叠显示的,在android中,我这么做到的,imageView1.s...
-
如何在软件中嵌套ppt播放功能
如何在软件中嵌套ppt播放功能 不知道这个能实现吗
------解决方案--------------------
可以,...
-
objectivc-c
请问下自学obj-c要看哪本书比较好?
linux下可以运行obj-c的程序吗?
mac软件开发除了obj-c还需要什么别的吗?
------解...
-
怎么实现iphone客户端软件与服务器端的数据交互?
怎么实现iphone客户端软件与服务器端的数据交互?
------解决方案---------------...
-
求IOS微信界面实现思路
如题,请大神们指点一二,非常感谢!
------解决方案--------------------
问题过于笼统,无法作答
------解决...
-
给黑苹果搞个Navicat for SQLite 求个下载地址
给黑苹果搞个Navicat for SQLite 求个下载地址 谢谢
------解决方案---------...
-
iphone中按提示弄音频接收, 在线等
关于iphone中的音频接收( Streaming Live or On-Demand Video from IIS7 to iOS Devices (iPhon...