Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
回到古老的 OpenGL 时代,如果你想在整个窗口上绘制一个带纹理的四边形,你所要做的就是绑定纹理,并多次调用 glVertex 和 glTexCoords 就完成了。
现在看来,为了做到这一点,您需要创建仅从纹理内存复制的着色器,然后加载和编译它们。您还需要创建 VBO 来保存坐标、纹理坐标和四边形索引,然后告诉 OpenGL 每个坐标的位置。
没有更简单的方法吗?
好吧,新的 OpenGL 更加灵活,但也更加复杂。首先,您不必使用索引 - 如果您不提供索引 VBO,则绘图调用将仅迭代缓冲区中的顶点和 texcoords。glVertex**v它与 using和其他基于向量的函数(即使在旧 GL 中也应该使用)并没有太大区别。
glVertex**v
此外,着色器可以硬编码为字符串;那时您不必提供文件操作工具。
当你把它全部加起来时,它不会使你的代码比旧的 OpenGL 长得多。事实上,它甚至可以缩短一点,前提是您之前没有使用矢量函数。