1

我使用以下方法剔除我的对象:

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 工作得很好,不确定它们是否是使用这个的性能问题,或者这是否意味着我在其他地方有错误!

4

1 回答 1

2

似乎两者GL_FRONTGL_BACK材料都被完全忽略了

按预期工作

face:指定正在更新的面。必须是GL_FRONT_AND_BACK

于 2013-09-29T20:49:28.057 回答