Ich habe eine iOS-App, die GLKViewController verwendet und Ich habe das Puffer wie folgt angezeigt:GLKView mit glDrawElements Ergebnisse des Stencilbuffer in schwarzer Bildschirm
innen @interface RootViewController : GLKViewController<UIKeyInput>
- viewDidLoad {
[super viewDidLoad];
_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
GLKView* view = (GLKView*)self.view;
view.context = _context;
view.drawableColorFormat = GLKViewDrawableColorFormatRGBA8888;
view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
view.drawableStencilFormat = GLKViewDrawableStencilFormat8;
view.drawableMultisample = GLKViewDrawableMultisampleNone;
self.preferredFramesPerSecond = 60;
[EAGLContext setCurrentContext:_context];
}
Allerdings, wenn ich Unentschieden nennen später:
glDrawElements(getGlPrimitiveType(ePrimType), numIndis, GL_UNSIGNED_SHORT, startIndis);
Es in schwarzen Bildschirm führt und auf Capture GPU Frame
, zeigt dieser Fehler auf:
Your app rendered with STENCIL_TEST enabled into a framebuffer without an attached stencil buffer.
Gibt es etwas, was ich verpasst?
Ich erinnerte mich an, bevor wegen dem gleichen Problem Tests Tiefe, und ich fix mit dem view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
auf viewDidLoad
Ich bin nicht sicher über Stencil Testing, Apples Dokumentation ist entweder sehr gering oder sehr allgemein mit Theorien der ganzen (dh: ziemlich viel nutzlos).