1
我在iOS中使用以下鏈接獲取繪製3D立方體的源代碼。GLKit透明紋理
http://www.raywenderlich.com/5235/beginning-opengl-es-2-0-with-glkit-part-2
這裏是我的刷新程序的代碼片段:
- (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);
}
我試圖創建具有透明質感的立方體,並最終得出的基本面對。我附上了我的實際紋理。現在看起來像一個立方體,顯示所有不透明的臉部,顯示底層臉部。如果我取消註釋混合例程,它會繪製一個透明立方體,混合背景,但其他面。
這裏是我如何加載我的紋理部分:
_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];
質地只是一個波卡點質地堅實點和負空間是完全透明的。我對openGL很陌生。感謝您的幫助!
我正在包括我試圖完成的一個鏈接。只是爲了接近尾聲,你會看到紋理如何混合在一起。
http://www.youtube.com/watch?v=TtK_8sddGaQ