【发布时间】:2021-05-10 04:43:10
【问题描述】:
我有一个 VBO,其中包含一个接一个存储的多个 3d 模型,目的是通过多次调用 glDrawElements 等函数来有条件地绘制模型。每个模型都意味着有一个固定的位置。在每次调用 glDrawElements 之前,我可以将模型的位置作为制服传递,但是因为有很多模型这样做是非常昂贵的。
我想将每个模型(而不是每个顶点)的每个模型位置存储在 VBO 内存中一次,并在绘制该模型时从着色器中的每个顶点访问它。
我希望有一个顶点属性指针,其偏移量指向模型位置,步幅为 0,这样它就不会增加每个顶点的内存,但不幸的是,步幅为 0 会使指针向前移动如果它包装得很紧。
有什么方法可以完成我想要的吗?另外,我很好奇为什么 OpenGL 不允许步长为 0。它会很方便。
【问题讨论】: