Próbowałem zrobić kilka szablonów w projekcie Libgdx. Do tej pory mogłem wymodelować wielokąty (Code po ilustracji).Strukturyzowanie tekstur w OpenGL ES 2.0
PYTANIE: Jak mam wykreślać niepoligonalne kształty w OpenGL ES 2.0? (tzn. nie chcę, aby przezroczyste piksele były rysowane do bufora szablonu)
Jak mam to osiągnąć bez użycia GL_ALPHA_TEST (ponieważ OpenGL ES 2.0 na to nie zezwala)?
Każda pomoc lub wskazówki są bardzo doceniane i z góry dziękujemy.
EDYCJA: Byłoby bardzo pomocne, gdybyś mógł podać mi trochę próbki kodu do zrozumienia.
Proszę zwrócić uwagę na ilustracji poniżej:
Jest to kod renderowania:
@Override
public void render(float delta) {
Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_STENCIL_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
stage.act();
stage.draw();
Gdx.gl20.glColorMask(false, false, false, true);
Gdx.gl20.glDepthMask(false);
Gdx.gl20.glClearStencil(0x0);
Gdx.gl20.glEnable(GL20.GL_STENCIL_TEST);
Gdx.gl20.glStencilFunc(GL20.GL_ALWAYS, 0x1, 0x1);
Gdx.gl20.glStencilOp(GL20.GL_KEEP, GL20.GL_KEEP, GL20.GL_REPLACE);
batch.begin();
batch.draw(heart, 0, i+50);
batch.end();
Gdx.gl20.glColorMask(true, true, true, true);
Gdx.gl20.glDepthMask(true);
Gdx.gl20.glStencilFunc(GL20.GL_NOTEQUAL, 0x1, 0x1);
Gdx.gl20.glStencilOp(GL20.GL_KEEP, GL20.GL_KEEP, GL20.GL_KEEP);
batch.begin();
batch.draw(heart, 0, i);
batch.end();
Gdx.gl20.glDisable(GL20.GL_STENCIL_TEST);
}
Zastanawiam się, jak to zrobić w Li bgdx ?? – Rafay