2013-03-28 6 views
0

Я рисую стрелку с использованием opengls 1.0. Я нарисовал стрелку, используя прямоугольник как вал и пирамиду в качестве наконечника. Когда стрелка вращается с определенных углов, вал можно видеть по краю наконечника стрелки.Android OpenGL ES 1 - Polygon Edge

Изображение что встречающийся: http://i.imgur.com/9K41OE8.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); 

} 

Я думаю, что это может иметь что-то делать с выбраковке, но почему это происходит только на краю наконечника?

ответ

1

Для этого нужно проверить глубину, чтобы это выглядело правильно. Используйте это:

gl.glEnable(GL10.GL_DEPTH_TEST); 
gl.glDepthMask(GL10.GL_TRUE); 

, а затем не забудьте очистить биты перед нанесением кадра:

gl.glClear(GL10.GL_DEPTH_BUFFER_BIT | GL10.GL_COLOR_BUFFER_BIT); 

 Смежные вопросы

  • Нет связанных вопросов^_^