我使用以下方法剔除我的对象:
fx.g.glEnable(GL10.GL_CULL_FACE);
fx.g.glCullFace(GL10.GL_BACK);
但是,当我为我的对象设置蓝色材质时,它们显示为灰色:
fx.g.glMaterialfv(GL10.GL_BACK, GL10.GL_AMBIENT, ambient, 0);
fx.g.glMaterialfv(GL10.GL_BACK, GL10.GL_DIFFUSE, diffuse, 0);
fx.g.glMaterialfv(GL10.GL_BACK, GL10.GL_SPECULAR, specular, 0);
fx.g.glMaterialfv(GL10.GL_BACK, GL10.GL_SHININESS, Ns, 0);
和
fx.g.glMaterialfv(GL10.GL_FRONT, GL10.GL_AMBIENT, ambient, 0);
fx.g.glMaterialfv(GL10.GL_FRONT, GL10.GL_DIFFUSE, diffuse, 0);
fx.g.glMaterialfv(GL10.GL_FRONT, GL10.GL_SPECULAR, specular, 0);
fx.g.glMaterialfv(GL10.GL_FRONT, GL10.GL_SHININESS, Ns, 0);
但蓝色的
fx.g.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_AMBIENT, ambient, 0);
fx.g.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_DIFFUSE, diffuse, 0);
fx.g.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_SPECULAR, specular, 0);
fx.g.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_SHININESS, Ns, 0);
环境/漫反射/镜面反射和 ns 具有相同的值。
任何想法为什么会这样?似乎 GL_FRONT 和 GL_BACK 材料都被完全忽略了,但是 GL_FRONT_AND_BACK 工作得很好,不确定它们是否是使用这个的性能问题,或者这是否意味着我在其他地方有错误!