我正在尝试设置无窗口的OpenGL渲染。我正在关注these instructions仅用于#34; Offscreen渲染。"
代码在这里失败了:
/* get framebuffer configs, any is usable (might want to add proper attribs) */
if ( !(fbc = glXChooseFBConfig(dpy, DefaultScreen(dpy), visual_attribs, &fbcount) ) ){
fprintf(stderr, "Failed to get FBConfig\n");
exit(1);
}
glXChooseFBConfig
无法设置或检索FBConfig。
我应该提一下,我正在使用没有-X
选项的AWS ubuntu 12.04机器(我应该吗?)我还有一台运行的VNC服务器,我通过ssh进入隧道。我已经尝试了this question的已接受解决方案,即更改DISPLAY
env变量,但仍然无效:
$ export DISPLAY=:0
$ ./testglXContext
No protocol specified
No protocol specified
No protocol specified
No protocol specified
Failed to open display
$
我该怎么办?
答案 0 :(得分:2)
要创建基于GLX的上下文,您需要运行X Server。没有X服务器没有GLX没有GLX没有GLX上下文。不要使用ssh -X
或ssh -YC
因为这会将OpenGL操作路由到本地计算机。
请注意,在AWS计算机上,除GPU AWS实例外,您通常没有完整的GPU;我不确定你真的可以在那些上运行X服务器。如果你想在屏幕外渲染可以使用软件OpenGL光栅化器性能你可能想看看OSMesa http://www.mesa3d.org/osmesa.html