Tag: stencil buffer

LibGDX Stencil在使用SpriteBatch时缓冲

这是我之前的问题和post的延续,见到这里 。 感谢我在那里收到的答案,我觉得我能够更接近我的目标,以及进一步学习OpenGL,但在弄清楚使用模板缓冲区的基础知识后不久,我遇到了一个问题。 似乎当我向模板缓冲区绘制一个精灵时,它会绘制整个方形区域,而不是像我一直无知的那样完全透明的像素。 我模糊地理解为什么会这样,但我不确定解决方案在哪里。 我已经对模板本身进行了相当多的实验,并且我修改了spritebatch用来丢弃低alpha片段的着色器,但我似乎没有看到更大的图片。 作为问题的一个直观例子,我将继续我在上一个问题中使用的例子。 现在,试图在彼此之间画两个圆圈(所以它们完美融合,没有重叠),我得到了这个: 所以,基本上,我是否有办法在复杂的形状上使用LibGDX的Sprite和SpriteBatchfunction来使用模板缓冲区(圆圈仅用作示例),或者我是否需要寻找替代路线? 编辑:: Gdx.gl.glClearColor(1, 1, 1, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); Gdx.gl.glEnable(GL20.GL_BLEND); Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA); Gdx.gl.glEnable(GL20.GL_DEPTH_TEST); Gdx.gl.glDepthMask(true); batch.begin(); sprite.draw(batch); sprite2.draw(batch); batch.end(); Gdx.gl.glDisable(GL20.GL_DEPTH_TEST);