1
두 개의 구가있는 장면을 렌더링 중입니다. 나는 그 중 하나의 카메라를 돌고있다. 반 직관적 인 것은 일어납니다. 카메라가 구형 주위를 돌 때 다른 카메라가 뒤를 쫓을 때 다른 카메라가 앞에옵니다. 그래서 구체가 서로를 중심으로 회전하지 않는 것처럼 보이고 이동해야하는 것은 항상 선행입니다. 도와주세요.회전 카메라로 장면을 렌더링 할 때 왜 다른 사람 뒤에 표시 될 것으로 예상되는 객체는 그렇게하지 않습니까? OPENGL Objective-c
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()
저는 GL 초기화 클래스를 사용합니다. 깊이 버퍼를 측정했습니다. int 깊이; glGetIntegerv (GL_DEPTH_BITS, & depth); NSLog (@ "% i 비트 깊이", 깊이) 0을 반환합니다. 이것이 문제가 될 수 있습니까? – nebulus
깊이 테스트를 위해 깊이 버퍼가 있어야합니다. 왜 존재하지 않을지 모르겠지만 초기화 코드를 확인하십시오. 깊이 형식 텍스처를 명시 적으로 만들어 하드웨어에서 지원되는지 확인할 수 있습니다. (Objective-C에 익숙하지 않아 코드 예제가 없습니다.) 오브젝트가 카메라에서 얼마나 멀리 떨어져 있는지에 따라 16 또는 24 비트 깊이 버퍼가 충분해야합니다. 그 중 아무 것도 작동하지 않는 경우 trig를 사용하여 어느 것이 앞에 있어야하는지 알아 내고 마지막 이미지를 렌더링 할 수 있습니다. 그러나 깊이 테스트는 확실히 더 나은 옵션입니다. – ssube
좋습니다! 내 애플 리케이션 창을위한 24 비트 버퍼를 설정했습니다. IB를 사용하면 Inspector를 사용하여 쉽게 수행 할 수 있습니다. 그것은 작동합니다. 고마워요! – nebulus