OpenGL渲染顺序导致前景中的三角形在背景中绘制

时间:2011-11-14 00:12:00

标签: cocoa opengl render

我在背景中的三角形中绘制三角形,但当我在它后面时,三角形不在前景中(就像它应该的那样)。

我在YouTube上放置了一个显示问题here的视频(请务必阅读说明)

编辑:

//create instance of camera class
mainCamera = [[Camera alloc]init];
//Tell window to log mouse events
[[self window] setAcceptsMouseMovedEvents:YES];
//Timer for updating frames
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1/30 target:self selector:@selector(redraw) userInfo:nil repeats:YES];
//keep timer running during event tracking
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSEventTrackingRunLoopMode];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSModalPanelRunLoopMode];

glEnable(GL_DEPTH_TEST);
glClearDepth(1.0f);
glShadeModel(GL_SMOOTH);    
glEnable(GL_LINE_SMOOTH);


glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//self in this case is my view. The code below is getting the size of the view.
gluPerspective(45.0f, [self frame].size.width / [self frame].size.height, 1.0f, 1000.0f);   

glMatrixMode(GL_MODELVIEW);
//creating triangle objects

1 个答案:

答案 0 :(得分:1)

您是否使用深度缓冲区创建了上下文?

您是否使用glEnable(GL_DEPTH_TEST);激活了深度测试?

您使用的是glDepthFunc深度测试吗?