java - Android OpenGL ES 1 - 多边形边缘

标签 java android opengl-es polygon edges

我正在使用 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/

相关文章:

java - RxJava轮询+手动刷新

opengl-es - OpenGL ES 1.0 或 2.0

c++ - OpenGL ES 纹理坐标稍微偏离

c++ - 连续捕获 UIView 到纹理

java - 编写一个程序来打印 2 个给定元素之间的所有回文素数

android - 在 Android 的后台线程中运行 GPS 定位

java - 获取/使用单选按钮值android

android - 使用 REST API 调用更新应用程序

java swing重绘按钮

java - Jenkins的依赖性检查间歇性失败