Ich brauche einen Schablonenpuffer auf dem 3GS, um flächige Schatten zu rendern, und Polygon Offset wird nicht perfekt funktionieren, hat immer noch Z-Kampf Problem. Also benutze ich Schablonenpuffer, um den Schatten zu korrigieren, es funktioniert auf dem Win32-Gles2 Emulator, aber nicht auf dem iPhone. Nachdem ich einen Post-Effekt auf die ganze Szene hinzugefügt. Die Schablone Puffer wird nicht funktionieren, auch auf win32 gles2 Emulator.
Und ich habe versucht, einen Schablonenpuffer an FBO anzuhängen, aber der Bildschirm wird schwarz. Hier ist mein Code,
glGenRenderbuffers(1, &dbo); // depth buffer
glBindRenderbuffer(GL\_RENDERBUFFER, dbo);
glRenderbufferStorage(GL\_RENDERBUFFER, GL\_DEPTH\_COMPONENT24\_OES,
widthGL, heightGL);
glGenRenderbuffers(1, &sbo); // stencil buffer
glBindRenderbuffer(GL\_RENDERBUFFER, sbo);
glRenderbufferStorage(GL\_RENDERBUFFER, GL\_STENCIL\_INDEX8, widthGL,
heightGL);
glGenFramebuffers(1, &fbo);
glBindFramebuffer(GL\_FRAMEBUFFER, fbo);
glFramebufferTexture2D(GL\_FRAMEBUFFER, GL\_COLOR\_ATTACHMENT0,
GL\_TEXTURE\_2D, tex, 0);
glFramebufferRenderbuffer(GL\_FRAMEBUFFER, GL\_DEPTH\_ATTACHMENT,
GL\_RENDERBUFFER, dbo);
glFramebufferRenderbuffer(GL\_FRAMEBUFFER, GL\_STENCIL\_ATTACHMENT,
GL\_RENDERBUFFER, sbo); // this make the whole screen black.
Der eglContext wird mit STENCIL_SIZE=8 erstellt, er funktioniert ohne RTT.
Ich habe versucht, den RenderbufferStorage sowohl für den Tiefenpuffer als auch für den Schablonenpuffer zu ändern, aber keiner von ihnen funktioniert.
Gibt es etwas, das ich übersehen habe? Ist der Schablonenpuffer mit dem Tiefenpuffer? (Ich kann Dinge wie GL_DEPTH24_STENCIL8 nicht finden ...)