是否可以隐藏OpenGL窗口并且渲染仍在运行?
对问题的两个部分都是肯定的和否定的.
如果隐藏窗口,则窗口视口的所有像素在渲染时都将无法通过像素所有权测试.因此,您无法使用隐藏窗口作为OpenGL进行操作的可绘制窗口.
你需要的是一个可以绘制的屏幕外绘图.
现代变体是帧缓冲对象(FBO),您可以在常规OpenGL上下文中创建,甚至可以在隐藏窗口上工作.FBO采用一些可绘制的附件(渲染缓冲区,纹理)并允许OpenGL将这些附加到窗口.
较旧的方法是PBuffers,也得到广泛支持,但不像FBO那样容易使用.
请注意,如果要在Linux/X11上执行屏幕外渲染,X服务器必须处于活动状态,即拥有VT以便GPU实际处理命令.因此,您不能只在"后台"启动X服务器,而是让另一台X服务器使用显示设备.
| 归档时间: |
|
| 查看次数: |
2449 次 |
| 最近记录: |