2013-05-23 5 views
0

В настоящее время я пытаюсь выталкивать фонтанные частицы из случайных частиц, наложенных на поверхность вулкана (текстурированный квадрат).Android OpenGL ES Overlaying backgrounds

У меня есть вулкан 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); 
} 

} 

"background.draw (ГЛ);" означает использование класса в VolcanoBackground.java, а p.draw (gl); предназначен для использования VolcanoParticle.java. Но по какой-то причине VolcanoParticle.draw также влияет на background.draw, заставляя фон также иметь те же самые движения и цветные изменения/гравитацию/движение как частицы.

любые идеи о том, как исправить?

Также с background.draw это делает частицы очень трудными для восприятия, как если бы над ними была черная плащаница, есть ли способ удалить этот альфа-слой или что бы то ни было, или заставить фон быть за частицами?

ответ

0

Возможно, вам нужно сбросить матрицы модели-вида между рисованием каждого объекта, вызвав на них glLoadIdentity().

Что касается проблемы с затемнением, попробуйте отключить освещение. Если это проблема, вам, вероятно, нужно будет приблизить свет к модели.