首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GLKit透明纹理

GLKit透明纹理
EN

Stack Overflow用户
提问于 2013-07-09 08:19:47
回答 1查看 703关注 0票数 1

我使用下面的链接在iOS中绘制一个3D立方体的源代码。

http://www.raywenderlich.com/5235/beginning-opengl-es-2-0-with-glkit-part-2

下面是我的更新例程的代码片段:

代码语言:javascript
复制
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect {
glClearColor(30/255.0, 30/255.0, 30/255.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);

// Enable transparency
//glEnable(GL_BLEND);
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

[[self effect] prepareToDraw];

glBindVertexArrayOES(_vertexArray);
glDrawElements(GL_TRIANGLES, sizeof(Indices)/sizeof(Indices[0]), GL_UNSIGNED_BYTE, 0);

// Cleanup: Done with the current blend function
//glDisable(GL_BLEND);

}

我正在尝试创建一个具有透明纹理的立方体,并最终绘制底层的面。我已经附加了我的实际纹理。它现在看起来是一个立方体,显示所有的面,没有透明度,显示底层的面。如果我取消对blend例程的注释,它会绘制一个透明的立方体,它混合在背景上,但其他面。

下面是我如何加载纹理的一部分:

代码语言:javascript
复制
_effect = [[GLKBaseEffect alloc] init];

NSDictionary * options = @{ GLKTextureLoaderOriginBottomLeft: @YES };
NSError *error;
NSString *path = [[NSBundle mainBundle] pathForResource:@"Texture200x200" ofType:@"png"];
GLKTextureInfo *info = [GLKTextureLoader textureWithContentsOfFile:path options:options error:&error];
if (info == nil) {
    NSLog(@"Error loading file: %@", error.localizedDescription);
}
[[[self effect] texture2d0] setName:info.name];
[[[self effect] texture2d0] setEnabled:YES];
[[[self effect] texture2d0] setEnvMode:GLKTextureEnvModeDecal];

这个纹理只是一个带有实心点的poka-dot纹理,负片空间是完全透明的。我对openGL非常陌生。谢谢你的帮助!

我包含了一个我想要完成的链接。最后,你会看到纹理是如何混合在一起的。

http://www.youtube.com/watch?v=TtK_8sddGaQ

EN

回答 1

Stack Overflow用户

发布于 2013-07-23 04:21:07

两件事--首先,你实际上需要启用混合。你的代码中有这一点,但它被注释掉了:

代码语言:javascript
复制
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

其次,我发现您正在使用GLKit GLKBaseEffect。通过反复试验,我发现你必须将纹理环境模式设置为替换,而不是贴花,才能使透明度工作:

代码语言:javascript
复制
self.effect.texture2d0.envMode = GLKTextureEnvModeReplace;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17538028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档