我目前正试图让一个粒子喷泉喷出随机粒子覆盖在火山背景(纹理四边形)的顶部。
我有火山背景和粒子在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(gl);”意思是在p.draw(gl)中使用VolcanoBackground.java中的类。意在使用VolcanoParticle.java。但由于某种原因,VolcanoParticle.draw也影响了background.draw,导致背景也具有与粒子相同的运动和颜色变化/重力/运动。
关于如何修复的任何想法?
同样使用background.draw它会让粒子很难看到它们顶部有一个黑色的护罩,有没有办法去除这个alpha层或者它是什么或强迫背景落后粒子?
答案 0 :(得分:0)
也许您需要在绘制每个对象之间重新设置模型 - 视图矩阵,方法是调用它们上的glLoadIdentity()。
关于调光问题,请尝试禁用照明。如果这是问题所在,那么您可能需要将灯移近模型。