我正在使用Mesa3d opengl库并仅使用SW渲染器。是否可以修改Mesa3D库源以禁用所有动画,阴影,抖动等,以最大化显示静态图像的性能?我正尝试使用应用程序,并且希望禁用其所有动态2D/3D效果(例如动画,滑动等),并使其运行速度更快并优化它以显示静态图像。OpenGL:Mesa3D:如何禁用抖动,动画等来加速静态渲染?
我该如何去做这件事?
我正在使用Mesa3d opengl库并仅使用SW渲染器。是否可以修改Mesa3D库源以禁用所有动画,阴影,抖动等,以最大化显示静态图像的性能?我正尝试使用应用程序,并且希望禁用其所有动态2D/3D效果(例如动画,滑动等),并使其运行速度更快并优化它以显示静态图像。OpenGL:Mesa3D:如何禁用抖动,动画等来加速静态渲染?
我该如何去做这件事?
是否有可能修改Mesa3D库源以禁用所有动画,阴影,抖动等以最大化显示静态图像的性能?
不,因为没有什么是由梅萨完成的。 OpenGL和扩展Mesa只是一个复杂的铅笔,一次绘制到帧缓冲画布,一个点,一条线或三角形。
任何效果,动画,阴影等都由您正在运行的应用程序实现。梅萨只是提供了一种方法来绘制每一帧。但它不会执行动画逻辑。
效果和动画是在OpenGL之外执行的,但是很多东西可以在OpenGL中被禁用,或者至少是硬编码的,所以它们无法打开。看到这个网页:http://www.mesa3d.org/perf.html –
@AdamB:这不是它的工作原理。 OpenGL是一个状态机。在OpenGL中启用/禁用的内容不是控制效果,而是低级参数。在使用现代OpenGL的情况下,几乎所有事情都是通过着色器发生的...... *和着色器不是可选的!*如果禁用着色器,最终会出现一个空窗口。 - 如果你想摆脱某些影响,那么这必须在每个应用程序(或每个库)上完成。 – datenwolf
哎呀,最新的评论是不完整的。修改为如下:@datenwolf,通过基本上删除它的代码,使glEnable调用这些“无操作”,我成功地禁用了抖动(GL_DITHER),混合(GL_BLEND)和其他事情。其结果是图形渲染速度提高了10-20%(以可爱为代价),我对此感到非常满意。另外,为什么有人想禁用着色器,如果他们在这里必不可少? –
动画由应用程序创建和控制,因此它们不能在OpenGL中关闭。然而,像抖动,混合和其他效果可以被禁用,使得它们不能被OpenGL应用程序通过修改glEnable函数来将这些标记设置为“no ops”来启用。见http://www.mesa3d.org/perf.html和https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml。
我不明白这应该如何工作。像动画,滑动等东西不是Mesa3D库的功能。他们可以通过使用库来实现。 – BDL