tom*_*234 5 opengl primitive glut deprecated
我必须使用OpenGL(3.3,4.2)绘制大量原语,我知道使用glutSolidTeapot(); 我可以绘制一个过剩的茶壶原型.
但似乎没有从该命令生成的顶点数组,我不知道这种命令是否已被弃用.
我注意到许多现代OpenGL教程只是加载他们自己的原语并避免使用过剩,他们甚至从3d网格格式文件中加载了简单的几何.
我的目的是尽可能快地绘制这些原语.尽可能使用新的OpenGL.
那么如何在现代OpenGL中绘制基元呢?
由于GLUT(以任何方式不是OpenGL的一部分)使用立即模式glBegin/glEnd并使用已弃用的固定函数内置属性来绘制其原始元素,如果您想专注于不推荐使用,则将无法再使用它们.现代核心功能.
而不是使用内置属性(如glVertex,, glNormal...),您必须使用自己的通用顶点属性(当然,与适当的顶点着色器结合使用)而不是glBegin/glEnd调用,您必须使用由VBO提供的顶点数组绘制基元并使用glDrawArrays/glDrawElements及其衍生物.
虽然没有什么可以阻止您将这些对象的顶点数据存储为源代码中的变量或手动生成它们,但是从文件中加载它们是最简单和最通用的方式,至少对于像犹他茶壶这样相当复杂的对象而言.该波前OBJ格式是一个相当简单的基于ASCII网格文件格式,这是很容易阅读和可能是一个起点,寻找到的,因为它可以通过几乎任何建模软件出口.