为什么当我渲染场景用相机旋转的对象,你希望出现在别人后面不这样做呢? OPENGL的Objective-C

StackOverflow https://stackoverflow.com/questions/2664936

我渲染场景中,我有两个球。我旋转摄像头其中之一左右。什么情况是违反直觉的。当相机进入球体周围其他获得在它的面前时,你会希望它是落后。因此,看起来,球体绕不相互旋转和一个应该去周围始终放在首位。请帮助。

下面是渲染场景的代码:

glLoadIdentity();

[self positionCamera];

glutSolidSphere(2, 12,12);

glPushMatrix();
glTranslatef(5, 0, 0);
glutSolidSphere(0.5, 12,12);
glPopMatrix();

glFlush();  

此块是被调用使用类的一部分。

[NSTimer scheduledTimerWithTimeInterval:DEFAULT_ANIMATION_INTERVAL 
                                 target:self 
                               selector:@selector(drawRect) 
                               userInfo:nil 
                                repeats:YES];

-(void)positionCamera{}

包含数学做照相机革命和gluLookAt()

有帮助吗?

解决方案

基本上你现在正在做的是一个后端到前端的渲染,其中最后一个原始绘制总是会出现绘制过别人。

您想要做的是使深度测试,其中每个片段的深度将在屏幕上被绘制之前进行比较。 glEnable(DEPTH_TEST)应该帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top