为了账号安全,请及时绑定邮箱和手机立即绑定

深度没有被渲染,而是显示覆盖

深度没有被渲染,而是显示覆盖

回首忆惘然 2021-10-13 16:08:56
我的项目中有一个问题,我试图在屏幕上绘制金字塔,但没有显示深度。public void create(float[] vertices, int[] indices, int numberOfVertices, int numberOfIndices) {        indexCount = numberOfIndices;        vao = gl.genVertexArrays();         gl.bindVertexArray(vao);        IntBuffer indicesBuffer = factory.create(indices);        ibo = gl.genBuffers();        gl.bindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);        gl.bufferData(GL_ELEMENT_ARRAY_BUFFER, indicesBuffer, GL_STATIC_DRAW);        FloatBuffer verticesBuffer = factory.create(vertices);        vbo = gl.genBuffers();        gl.bindBuffer(GL_ARRAY_BUFFER, vbo);        gl.bufferData(GL_ARRAY_BUFFER, verticesBuffer, GL_STATIC_DRAW);        gl.vertexAttribPointer(0, 3, GL_FLOAT, false, 0, 0);        gl.enableVertexAttribArray(0);        gl.bindBuffer(GL_ARRAY_BUFFER, 0);                  gl.bindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);        gl.bindVertexArray(0);    }我使用以下代码创建网格对象,其中顶点和索引定义为:private void createTriangles() {    float[] vertices = new float[] {             //x     y      z           -1.0f, -1.0f, 0.0f, //0            0.0f,  0.0f, 1.0f, //1            1.0f, -1.0f, 0.0f, //2            0.0f,  1.0f, 0.0f  //3    };    int[] indices = new int[] {        0, 3, 1,        1, 3, 2,         2, 3, 0,        0, 1, 2    };    mesh.create(vertices, indices, 12, 12);}为了将它们显示到屏幕上,我从定义为的游戏循环中调用了渲染函数。public void render() {    gl.bindVertexArray(vao);    gl.bindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);    gl.drawElements(GL_TRIANGLES, indexCount, GL_UNSIGNED_INT, 0);    gl.bindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);    gl.bindVertexArray(0);}所以我得到的问题是它应该绘制四个三角形来筛选以形成金字塔,但是我的输出看起来像这样。我已经旋转了图像以尝试查看深度,但它是一个平面对象。我试图通过将渲染方法更改为gl.drawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, 0);仅绘制一个三角形来尝试单独绘制每个三角形,从而确定问题可能来自何处。我试图单独绘制所有四个面,并且都被绘制到屏幕上。
查看完整描述

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

我发现了这个问题。我最初是缩放三角形使得

model.scale(new Vector3f(0.2f, 0.2f, 0.0f));

结果 z 轴被乘以 0。愚蠢的错误,希望这对将来的人有所帮助


查看完整回答
反对 回复 2021-10-13
  • 1 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信