Ich mache das folgende, um mehrere Bälle um den Bildschirm zu bewegen, sondern nur 1 Ball zu sehen und zu funktionieren gesehen wird. Ich weiß nicht, warum der Rest (count-1) Kugeln sind nichtOpenGL ES mehrere Objekte werden nicht gerendert
public void onDrawFrame(GL10 gl) {
// TODO Auto-generated method stub
gl.glDisable(GL10.GL_DITHER);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glClientActiveTexture(DRAWING_CACHE_QUALITY_HIGH);
gl.glLoadIdentity();
for(int i=0;i<mParticleSystem.getParticleCount();i++){
gl.glPushMatrix();
gl.glTranslatef(mParticleSystem.getPosX(i), mParticleSystem.getPosY(i), -3.0f);
gl.glScalef(0.3f, 0.3f, 0.3f);
gl.glColor4f(r.nextFloat(), r.nextFloat(), r.nextFloat(), 1);
gl.glEnable(GL10.GL_TEXTURE_2D);
mParticleSystem.getBall(i).draw(gl);
gl.glPopMatrix();
}
}
EDIT Meine Leere draw (GL10 gl) Methode
public void draw(GL10 gl){
gl.glEnable(GL10.GL_CULL_FACE);
gl.glEnable(GL10.GL_SMOOTH);
gl.glEnable(GL10.GL_DEPTH_TEST);
// gl.glTranslatef(0.2f, 0.2f, -3.0f);
// gl.glScalef(size, size, 1.0f);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertBuff);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, points/2);
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}
Ich konnte nicht auf die Erstellung eines Snapshots gezogen wird meine Samsung Phone aber hier ist der Emulator Screenshot. In der Realität bewegt sich der Ball mit wechselnder Ausrichtung und Beschleunigung und ändert seine Farbe nach dem Zufallsprinzip (aufgrund von r.nextFLoat()). Die anderen 35 Bälle werden jedoch nicht einmal gerendert, wie Sie sehen können. Wie kann ich das beheben?
Kannst du den mParticleSystem.getBall (i) .draw (gl) -Code schreiben?, Deaktivierst du irgendwas darin? – SteveL
@SteveL aktualisiert meine Antwort. – jmishra
Nun ich meinte die MyGLBall.draw (GL10 gl) -Methode in Ihrer MyGLBall-Klasse – SteveL