Android, OpenGL ES 1.0, Alpha

Ik ben nieuw met OpenGLES en ik probeerde een rechthoek te tekenen met alpha maar alpha die niet op het scherm werd uitgevoerd. Help me alsjeblieft om erachter te komen waar ik uit de rij ben.

GLES10.glEnableClientState(GL10.GL_VERTEX_ARRAY);
GLES10.glClear(GL10.GL_COLOR_BUFFER_BIT);
GLES10.glColor4f(0.5f, 0.5f, 0.5f, 0.1f);  <-- NOT Working , please help 0.1 alpha not taken   
GLES10.glPushMatrix();GLES10.glEnableClientState(GL10.GL_VERTEX_ARRAY);
GLES10.glVertexPointer(
        3,
        GL10.GL_FLOAT,
        0,
        RendererImpl.makeFloatBuffer(new float[] { -160.0f, -100.0f,
                0.0f, 160.0f, -100.0f, 0.0f, 160.0f, 100.0f, 0.0f,
                    -160.0f, 100.0f, 0.0f }));
GLES10.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, 4);
GLES10.glDisableClientState(GL10.GL_VERTEX_ARRAY);
GLES10.glPopMatrix();
GLES10.glFlush();
2
"alpha wordt niet uitgevoerd op scherm". Leg uit wat je denkt dat dit betekent? Wat verwacht je? Alfa betekent niets tenzij je een vorm van blending of alfa-testen uitvoert.
toegevoegd de auteur Tim, de bron
in het algemeen gebruikt men de alfa, die verondersteld transparant te zijn. kleur die de dekking zou verliezen. . Ik veronderstelde ook achtergrond te zien. die ik hier niet kan zien. en ik heb geen idee over mengen, ik zag dat, maar het lijkt erop dat het met textuur wordt gebruikt. en alfatesten, ik heb dat gebruikt, waardoor de kleur volledig transparant of onaangeroerd is. Ik heb te weinig kennis om dit meer uit te leggen. als je me kunt helpen om een ​​tutorial over alfatesten te krijgen, die ik niet heb gevonden (opgezocht maar), zal ik proberen om erachter te komen of dat het probleem is
toegevoegd de auteur Kamlesh Gupta, de bron

1 antwoord

Als u wilt dat uw objecten die u tekent transparant zijn, moet u eerst overvloeien inschakelen.

Teken eerst je achtergrond en stel vervolgens deze opties in:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

Probeer vervolgens je transparante object te tekenen zoals je hierboven hebt gedaan.

4
toegevoegd
Sorry, het zou precies hetzelfde moeten werken voor een effen kleur of textuur. Ik zei textuur toen ik echt 'primitief' bedoelde. Probeer de code, het zou moeten werken. @KamleshGupta
toegevoegd de auteur Tim, de bron
Ik wil geen textuur tekenen. Ik wil een gekleurde rechthoek tekenen met alpha betekent dekking.
toegevoegd de auteur Kamlesh Gupta, de bron
Het werkt en heel erg bedankt ... Een idee over goede open glés tutorial alstublieft
toegevoegd de auteur Kamlesh Gupta, de bron