回到古代OpenGL的时代,如果你想在整个窗口上绘制纹理四边形,你所要做的就是绑定纹理,并且多次调用glVertex和glTexCoords就完成了。
现在似乎为了做到这一点,您需要创建仅从纹理内存中复制的着色器,而不是加载和编译它们。你还需要创建VBO来保存坐标,纹理坐标和四元索引,然后告诉OpenGL每个坐标的位置。
有没有更简单的方法?
答案 0 :(得分:1)
嗯,新的OpenGL更灵活,但也有点复杂。
首先,您不必使用索引 - 如果您不提供索引VBO,则drawcall将仅从缓冲区迭代顶点和texcoords。它与使用glVertex**v
和其他基于矢量的函数(即使在旧版GL中也应该使用它)没有多大区别。
此外,着色器可以硬编码为字符串;那时你不必提供文件操作设施。
当你全部添加它时,它不会使你的代码比旧的OpenGL更长;事实上,如果你之前没有使用矢量函数,它甚至可以缩短一点。