2013-05-23 2 views
0

현재 화산 배경 (텍스처 쿼드)의 꼭대기에 오버레이 된 무작위 입자가 분출되도록 분수 분출물을 분쇄하려고합니다. "background.draw (GL);"Android OpenGL ES 오버레이 배경

나는 화산 backgound에이 있고 입자는 onDrawFrame

public void onDrawFrame(GL10 gl) 
{ 

    // Set the clear colour to red and clear the screen 
    gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); 
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 
    // Enable the vertex array client state 
    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); 
    gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); 
    background.draw(gl); 
    // Draw then update the position of all particles 


    for (VolcanoParticle p : particleArray) 
    { 
     p.draw(gl); 
     p.update(); 
    } 

    //background.draw(gl); 
    // Disable the vertex array client state before leaving 
    gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); 
    gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY); 
} 

} 

내부 문을 그릴 p.draw (gl); 동안 VolcanoBackground.java에서 클래스의 사용을 의미합니다. VolcanoParticle.java를 사용하기위한 것입니다. 그러나 어떤 이유에서든 VolcanoParticle.draw는 background.draw에도 영향을 미치기 때문에 배경과 입자가 같은 움직임과 색상 변경/중력/움직임을 갖게됩니다.

수정 방법에 대한 의견이 있으십니까?

또한 background.draw를 사용하면 입자 위에 검은 색 슈라우드가있는 것처럼 보입니다.이 알파 레이어를 없애거나 배경을 강요하는 방법이 있습니다. 입자 뒤에서?

답변

0

아마도 glLoadIdentity()를 호출하여 각 객체 그리기 사이에 모형보기 행렬을 재설정해야합니다.

조광 문제와 관련하여 조명을 해제하십시오. 이것이 문제라면, 아마도 빛을 모델에 더 가깝게 옮겨야 할 것입니다.