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

OpenGL渲染功能顺序

OpenGL渲染功能顺序

C#
神不在的星期二 2021-04-29 08:10:59
我正在使用OpenGL渲染Voxel游戏中的块块。每个块都有其自己的顶点缓冲区,现有的渲染函数(已简化)如下:foreach (Chunk c in chunks){    glBindBuffer(BufferID.Array, c.handle);    if (c.dirty)    {        glBufferData(BufferID.Array, ... , BufferUsage.StaticDraw);        c.dirty = false;    }    // For position, normal, colour and UV    glEnableVertexAttribArray(...);    glVertexAttribPointer(...);    glUseProgram(shader.Handle);    glDrawArrays(DrawMode.TriangleStrip, 0, c.vertexBuffer.Length);}上面的代码有效,但是glEnableVertexAttribArray,glVertexAttribPointer和glUseProgram上的CPU使用率很高。我可以在循环开始之前调用这些函数,还是必须在每次glBindBuffer之后调用它们?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 171 浏览

添加回答

举报

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