0
我有一個問題關於使用模板緩存與OpenGL和libgdxLibgdx模板緩衝區重疊
作爲例子,我需要藉助社交圈,與重疊。
渲染方法的代碼是在這裏:
Gdx.gl.glClearColor(1f, 1f, 1f, 1f);
Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_STENCIL_BUFFER_BIT);
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
Gdx.gl.glEnable(GL20.GL_STENCIL_TEST);
Gdx.gl.glClearStencil(0);
Gdx.gl.glClear(GL20.GL_STENCIL_BUFFER_BIT);
Gdx.gl.glStencilFunc(GL20.GL_ALWAYS, 1, 0);
Gdx.gl.glStencilOp(GL20.GL_KEEP, GL20.GL_INCR, GL20.GL_INCR);
shapeRenderer.setColor(new Color(1f, 0f, 0f, 1f)); // red
shapeRenderer.circle(200, 200, 100);
shapeRenderer.circle(180, 180, 100);
Gdx.gl.glStencilFunc(GL20.GL_EQUAL, 2, 0xFF);
Gdx.gl.glStencilOp(GL20.GL_REPLACE, GL20.GL_REPLACE, GL20.GL_REPLACE);
shapeRenderer.setColor(new Color(0f, 1f, 0f, 1f)); // green
shapeRenderer.circle(200, 200, 100);
shapeRenderer.circle(180, 180, 100);
Gdx.gl.glDisable(GL20.GL_STENCIL_TEST);
shapeRenderer.end();
結果是:
預計這樣的事情:
重疊應該用其他顏色。 這裏有什麼問題?
對於所有參數,用'GL_KEEP'替換'Gdx.gl.glStencilOp(GL20.GL_REPLACE,GL20.GL_REPLACE,GL20.GL_REPLACE);'是否會改變某些參數? – pleluron
謝謝。我試過了,但沒有改變。 –