小编Eri*_*icD的帖子

在iOS上使用模板缓冲区

我尝试使用"模板缓冲区"从纹理中显示渲染的一部分,但我的渲染显示没有任何蒙版效果.

这是一个2D iOS项目,使用OpenGL ES 2.0这是我的代码的关注部分:

glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT );
glEnable( GL_STENCIL_TEST );


// mask rendering
glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE );
glStencilFunc( GL_ALWAYS, 1, 1 );
glStencilOp( GL_KEEP, GL_KEEP, GL_REPLACE );

glBindTexture(GL_TEXTURE_2D, _maskTexture);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);  


// scene rendering
glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE ); 
glStencilFunc( GL_EQUAL, 1, 1 ); 
glStencilOp( GL_KEEP, GL_KEEP, GL_KEEP );  

glBindTexture(GL_TEXTURE_2D, _viewTexture);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);  
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激 !

(和法国开发商一样,对不起我的英文!)

精度:"_ maskTexture"是黑白图片.


方案:


我终于用rotoglub蒂姆的迹象解决了我的问题.谢谢你们俩.

1 /模板缓冲区尚未正确创建.它应该像这样初始化:

glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthStencilRenderbuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, 
                             GL_DEPTH24_STENCIL8_OES, …
Run Code Online (Sandbox Code Playgroud)

opengl-es stencil-buffer ios

5
推荐指数
1
解决办法
5458
查看次数

标签 统计

ios ×1

opengl-es ×1

stencil-buffer ×1