一个应用程序是否有可能“节流”从一个实时(例如60 app )图形应用,总是呈现成简单地显示一个“位图”(例如一个简单的比特blit的3D世界的内容,而不是一个完整的重新计算)。然后,当给出用户输入(或出现某些应用特定条件)时,它会重新进入实时模式。
使用某种监控程序代码,我设想有可能抓取帧缓冲区的内容,暂停3d图形,然后只在以前抓取的帧缓冲区上使用blit,而不是重新呈现不变的场景。
这将是为了节省电力/风扇吹在弱图形卡,而不是不断渲染时,不需要。
以上是实现这一目标的合适策略吗?是否有可能“暂停”3D渲染?
发布于 2017-03-25 13:38:15
您的应用程序应该对用户输入或其他特定事件做出反应。只有在数据发生变化时才更改缓冲区。只有更新矩阵,如果用户移动相机。
您可以将其绘制到FBO中,然后将其放入“普通”帧缓冲区。这样,只有在没有改变的情况下才需要闪电战。
你也可以避免GPU闪电战。使用glReadPixels从FBO获取位图,并使用usage (即与设备上下文一起使用)将位图通过CPU的使用而不是GPU的使用将其混合到窗口中。
https://stackoverflow.com/questions/43014896
复制相似问题