我正在尝试学习OpenGL,目前正在尝试将其与Qt结合使用。我要做的是将视频文件中的帧加载到纹理中,然后将其显示在屏幕上。我以后可能会尝试做的唯一一件事就是为此启用缩放功能。请记住,我需要使用最小的OpenGL初始化来最大化性能。更具体地说,我是否需要使用某些功能,以便可以针对目前非常有限的需求最大化性能。

例如,OpenGL上的Qt教程将其初始化为:

 glEnable(GL_DEPTH_TEST);
 glEnable(GL_CULL_FACE);
 glShadeModel(GL_SMOOTH);
 glEnable(GL_LIGHTING);
 glEnable(GL_LIGHT0);
 glEnable(GL_MULTISAMPLE);
 static GLfloat lightPosition[4] = { 0.5, 5.0, 7.0, 1.0 };
 glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);


我认为我应该可以安全地禁用其中的大多数功能,但是不确定,因为我仍在尝试找出其中的大部分功能。

最佳答案

glEnable(GL_DEPTH_TEST);


启用深度测试,以防止三角形在应隐藏在其他对象之后时覆盖其他对象。保持启用状态以避免伪像。

glEnable(GL_CULL_FACE);


防止三角形背对您绘制。保持启用状态以获得更好的性能。

 glShadeModel(GL_SMOOTH);
 glEnable(GL_LIGHTING);
 glEnable(GL_LIGHT0);
 static GLfloat lightPosition[4] = { 0.5, 5.0, 7.0, 1.0 };
 glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);


所有这些都是不推荐使用的固定功能管道的一部分,可以将其删除并使用着色器进行仿真。

10-06 08:55