opengl es纹理掩蔽与glTexEnvi在阴影中发光

时间:2012-01-16 21:01:36

标签: opengl-es textures

我正在尝试使用glTexEnvi在this的黑暗面中实现阴影中纹理的蒙版部分的发光。 但我想我错过了一些重要的部分。什么是产生这种效果的正确方法?

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案。这里的缺点是双重渲染,但我有效果!

            gl.glEnable(GL10.GL_NORMALIZE);
            gl.glEnable(GL10.GL_TEXTURE_2D);

            // texture 0
            texture.bind(); // main texture
            draw();

            // texture 1
            gl.glColor4f(0,1,0,1); // desired color of the glow
            gl.glDisable(GL10.GL_LIGHTING); // disable light for enabling glow in the shadow
            gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
            gl.glEnable(GL10.GL_BLEND);
            mask.bind();
            draw();

            gl.glDisable(GL10.GL_BLEND);
            gl.glEnable(GL10.GL_LIGHTING); //enable light again
            gl.glColor4f(1,1,1,1); //restore color