Мне нужен трафаретный буфер на 3GS для рендеринга плоской тени и полигона
Смещение не будет работать префектом, все еще есть проблема с z-боем. Поэтому я использую
буфер трафарета, чтобы сделать тень правильной, она работает на win32 gles2
эмулятор, но не на iPhone. После того, как я добавил пост-эффект ко всему
сцена. Трафаретный буфер не будет работать даже на эмуляторе win32 gles2.
И я попытался прикрепить буфер трафарета к FBO, но экран превращается в
черный. Вот мой код,
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.
eglContext создается с STENCIL_SIZE = 8, он работает без RTT.
Я попытался изменить RenderbufferStorage для буфера глубины и
буфер трафарета, но ни один из них не работает.
Я что-то пропустил? Содержит ли буфер трафарета
буфер глубины? (Я не могу найти такие вещи, как GL_DEPTH24_STENCIL8 ...)