You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否为glDrawElements添加起始偏移值,从第3个索引开始绘制?

glDrawElements 设置起始偏移,从指定索引开始绘制

当然可以实现从第3个索引开始绘制的需求,glDrawElements的最后一个参数就是用来指定索引缓冲区的起始偏移量的。

原代码里最后一个参数传0,代表从索引缓冲区的第一个索引(下标0)开始绘制。要从第3个索引开始,需要注意两点:

  • 索引是从0开始计数的,第3个索引对应的下标是2
  • 偏移量需要按字节计算,GL_UNSIGNED_INT类型的每个索引占4字节,所以起始偏移是 2 * sizeof(GLuint),也就是8字节

修改后的代码如下:

glDrawElements(GL_TRIANGLES, indicesTaperRectangle.size() - 2, GL_UNSIGNED_INT, (void*)(8));

这里还要把绘制的索引数量调整为原大小减2,因为我们跳过了前2个索引,只绘制剩下的部分。

另外要注意:偏移值必须是对应索引类型大小的整数倍,否则会触发OpenGL的对齐错误,导致绘制异常。

内容的提问来源于stack exchange,提问作者Summit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 12:33:10