2013-02-13 58 views
0

我是新来的opengl,不知道如何处理不透明。我有两个重叠的图层,我将两个图层都绘制到屏幕上。我想淡出前景中的那个以转换到背景图像。有没有办法做到这一点?这是我的绘制方法。在opengl中随时更改纹理的不透明度?

public void draw(GL10 gl10) { 
    gl10.glDisable(GL10.GL_BLEND); 
    gl10.glEnable(GL10.GL_BLEND); 
    gl10.glBlendFunc(GL10.GL_TRUE, GL10.GL_ONE_MINUS_SRC_ALPHA); 
    gl10.glClearColor(0F, 0F, 0F, 0); 
    gl10.glBindTexture(GL10.GL_TEXTURE_2D, this.mTextureId); 
    this.layer1.draw(gl10); // i want to transition from this layer 
      this.layer2.draw(gl10); // to this layer by changing opacity 
      } 

我不知道即使我正确地陷害了我的问题。希望你得到它:)

回答

0

那么它取决于你使用这个过渡的方法。我有一个与动画视图类似的情况。关于你的不透明问题,你不能使用

View v; 
int i = 0; /*Values from 0 to 1, float cast might be needed for intermediate values*/ 
v.setAlpha(i); 
this.layer2.setAlpha(i); 

或类似的东西,是不是适用于你的情况?

+0

顺便说一下,“cange”称号;-) – g00dy 2013-02-13 15:21:17

+0

所有层包含来自单个纹理渲染精灵。在我的方法中不支持alpha。我所做的只是复制纹理。 – user1909111 2013-02-14 11:34:45