iOS 5의 MonoTouch를 사용하여 깊이 버퍼를 사용할 수 없습니다. 표준 "MonoTouch"OpenGL Application "템플릿을 사용하고 있습니다. 깊이 버퍼 (OpenGL은 ES 1.1)iOS 5의 MonoTouch를 사용하는 OpenGL ES 1.1 깊이 버퍼가 작동하지 않습니다.
GL.Enable(All.DepthTest);
GL.DepthFunc(All.Greater);
GL.DepthMask(true);
// Shape A
GL.DrawArrays (All.TriangleStrip, 0, 4);
// Shape B (should be behind Shape A)
GL.Translate (.5f,.5f,.5f);
GL.DrawArrays (All.TriangleStrip, 0, 4);
// Shape C (should be in front of Shape A)
GL.Translate (-1f,-1f,-1f);
GL.DrawArrays (All.TriangleStrip, 0, 4);
두 형태 B 및 C는 동일한 것조차 "GL.DepthFunc (All.Never)"로 발생하는 형태 A. 앞에 당겨진다. 깊이 버퍼는 완전히 무시됩니다. 또한 수동으로 코드를 사용하여 (대신 나를 위해 하나를 만들기 위해 MonoTouch/OpenTK "iPhoneOSGameView"에 의존) 깊이 버퍼를 만드는 시도 : 그것은 여전히 작동하지
protected override void CreateFrameBuffer()
{
base.CreateFrameBuffer();
uint depthbuffer=0;
GL.Oes.GenRenderbuffers (1, ref depthbuffer);
GL.Oes.BindFramebuffer (All.RenderbufferOes, depthbuffer);
GL.Oes.RenderbufferStorage (All.RenderbufferOes, All.DepthComponent16Oes, (int) 768, (int) 1024);
GL.Oes.FramebufferRenderbuffer (All.FramebufferOes, All.DepthAttachmentOes, All.RenderbufferOes, depthbuffer);
}
. 깊이 버퍼를 어떻게 작동시킬 수 있는지 알고 있습니까? 내가 놓친 게 있니?
링크를 제공해 주셔서 감사합니다. 그것은 매우 도움이되었습니다. "OpenTK.Graphics.ES11.GL.Oes"에있는 메서드 대신 "OpenTK.Graphics.ES20.GL"의 메서드를 사용하여 깊이 버퍼를 만드는 방식으로 작동하도록했습니다. 버퍼가 생성 된 후 나머지 프로그램은 "OpenTK.Graphics.ES11"에서 표준 OpenGL 1.1 메서드를 사용할 수 있습니다. – Heiko