¿Por qué cuando me hacen una escena con unos objetos que giran en la cámara que era de esperar que aparezca detrás de otros que no lo haga? OpenGL Objetivo-c

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

Pregunta

estoy prestando una escena en la que tengo dos esferas. Estoy Rotatorio una cámara alrededor de uno de ellos. Lo que pasa es contrario a la intuición. Cuando la cámara gira alrededor de la esfera de la otra se pone en frente de él cuando lo que espera que sea atrás. Por lo tanto, parece como si las esferas no están girando uno alrededor del otro y el que la debe dar la vuelta es siempre por adelantado. Por favor, ayuda.

Este es el código que hace que la escena:

glLoadIdentity();

[self positionCamera];

glutSolidSphere(2, 12,12);

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

glFlush();  

Este bloque es parte de una clase que es llamada a utilizar.

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

y

-(void)positionCamera{}

Contiene matemáticas hacer revolución cámara y gluLookAt ()

¿Fue útil?

Solución

Básicamente lo que estamos haciendo ahora es una representación de regreso a la parte delantera, donde el último primitiva siempre parecen ser dibujado sobre los demás dibujado.

Lo que se quiere hacer es habilitar la prueba de profundidad, donde la profundidad de cada fragmento se comparará antes de ser dibujado en la pantalla. glEnable(DEPTH_TEST) debe ayudar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top