我有一个有趣的问题,即在显示一个工作正常的同时显示两个或四边形。我能够实现这个流行的教程来显示一个带有纹理的简单四边形: http ://www.jayway.com/2010/02/15/opengl-es-tutorial-for-android-part-v/
所以基本上我有一个名为 SimplePlane 的类,它完全按照教程中的方式扩展了 Mesh 类。我创建了一个 SimplePlane 实例:
public void onSurfaceCreated(...){
plane1 = new SimplePane(1,1);
plane2 = new SimplePane(1,1);
plane1.z = 2.0f
plane2.z = 3.0f
}
然后我绘制网格:
public void draw(GL10 gl) {
//set all gl variables as usual for opengl
plane1.draw(gl); // is displayed properly
plane2.draw(gl); //for some reason is not visible even that its behind plane1 and bigger to make sure plane1 is not covering plane2
}
问题是只显示第一个plane1。如果在我的代码中我首先放置plane2,则显示plane 2 而不是plane1。请注意,这不是 z 位置问题,因为我通过创建一个更大的半透明来排除它。如果我评论一个,那么另一个是可见的。我添加了日志记录,两个平面的绘制方法都被调用,但只有一个可见。
我是否可以采用这种方法调用一个又一个 draw(gl) 或者我必须像教程中那样创建一个组对象?