我正在使用 opengl es 1.0 绘制一个箭头。我使用矩形作为轴,金字塔作为尖端来绘制箭头。当箭头从一定角度旋转时,可以通过箭头尖端的边缘看到箭杆。
正在发生的事情的图像:/image/fqjqd.png
我的绘制方法
public void draw(GL10 gl) {
gl.glFrontFace(GL10.GL_CW);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
gl.glEnable(GL10.GL_CULL_FACE);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
gl.glColorPointer(4, GL10.GL_FLOAT, 0, colorBuffer);
gl.glDrawElements(GL10.GL_TRIANGLES, indexBuffer.capacity(), GL10.GL_UNSIGNED_BYTE, indexBuffer);
gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}
我认为这可能与剔除有关,但为什么它只发生在尖端的边缘?
最佳答案
必须启用深度测试才能使其看起来正确。使用这个:
gl.glEnable(GL10.GL_DEPTH_TEST);
gl.glDepthMask(GL10.GL_TRUE);
然后不要忘记在绘制框架之前清除这些位:
gl.glClear(GL10.GL_DEPTH_BUFFER_BIT | GL10.GL_COLOR_BUFFER_BIT);
关于java - Android OpenGL ES 1 - 多边形边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15689576/