행복하게 게시 한 후 내 답변을 발견했습니다. 깊이 버퍼를 사용하기 만하면됩니다.
drawableDepthFormat이
귀하의 OpenGL 컨텍스트는 또한 선택적으로 다른 버퍼가 호출 관련 가질 수 있습니다
view.drawableDepthFormat = GLKViewDrawableDepthFormat16;
는
nice explanation 당신에게 레이 Wenderlich 감사 (여기서보기는 GLKView*
입니다) 깊이 버퍼 이렇게하면 뷰어에 더 가까운 물체가 더 멀리있는 물체 앞에서 나타나는지 확인할 수 있습니다.
기본적으로 OpenGL은 뷰어에 가장 가까운 객체를 버퍼의 각 픽셀에 저장합니다. 픽셀을 그릴 때 깊이 버퍼를 검사하여 이미 뷰어에 더 가까이 있는지 여부를 확인합니다. 그렇다면 버퍼를 삭제합니다. 그렇지 않은 경우에는 심도 버퍼 및 컬러 버퍼에 추가합니다.
이 속성을 설정하여 깊이 버퍼의 형식을 선택할 수 있습니다. 기본값은 GLKViewDrawableDepthFormatNone입니다. 이는 깊이 버퍼가 전혀 사용되지 않음을 의미합니다.
그러나이 기능 (일반적으로 3D 게임에서 사용)을 원할 경우 GLKViewDrawableDepthFormat16 또는 GLKViewDrawableDepthFormat24를 선택해야합니다. 여기서 트레이드 오프는 GLKViewDrawableDepthFormat16을 사용하면 앱에서 사용하는 리소스가 줄어들지 만 개체가 서로 매우 가까운 경우 렌더링 문제가 발생할 수 있습니다.