Как создать FBO с буфером шаблонов в OpenGL ES 2.0?

Мне нужен буфер шаблонов на 3G для рендеринга плоской тени, и смещение полигона не будет работать префект, все еще имеет проблему z-борьбы. Таким образом, я использую буфер шаблонов для создания тени корректной, это работает над эмулятором win32 gles2, но не над iPhone. После того, как я добавил эффект сообщения к целой сцене. Буфер шаблонов не будет работать даже над эмулятором win32 gles2.

И я пытался присоединить буфер шаблонов к FBO, buf экран меняет цвет на черный цвет. Вот мой код,

   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...),

9
задан Xiaobin 17 April 2010 в 04:02
поделиться