ContextException: Require GLX_ARB_create_context extension to create OpenGL 3 contexts

慕鸿波
2023-12-01

使用pyrender进行渲染的时候出现这个问题:

ContextException                          Traceback (most recent call last)
/data/opt/AAN/lib/python3.7/site-packages/pyrender/platforms/pyglet_platform.py in init_context(self)
     38                                                 resizable=False,
---> 39                                                 width=1, height=1)
     40         except Exception as e:

/data/opt/AAN/lib/python3.7/site-packages/pyglet/window/xlib/__init__.py in __init__(self, *args, **kwargs)
    172 
--> 173         super(XlibWindow, self).__init__(*args, **kwargs)
    174 

/data/opt/AAN/lib/python3.7/site-packages/pyglet/window/__init__.py in __init__(self, width, height, caption, resizable, style, fullscreen, visible, vsync, file_drops, display, screen, config, context, mode)
    605         if not context:
--> 606             context = config.create_context(gl.current_context)
    607 

/data/opt/AAN/lib/python3.7/site-packages/pyglet/gl/xlib.py in create_context(self, share)
    163     def create_context(self, share):
--> 164         return XlibContext10(self, share)
    165 

/data/opt/AAN/lib/python3.7/site-packages/pyglet/gl/xlib.py in __init__(self, config, share)
    263     def __init__(self, config, share):
--> 264         super(XlibContext10, self).__init__(config, share)
    265 

/data/opt/AAN/lib/python3.7/site-packages/pyglet/gl/xlib.py in __init__(self, config, share)
    214 
--> 215         self.glx_context = self._create_glx_context(share)
    216         if not self.glx_context:

/data/opt/AAN/lib/python3.7/site-packages/pyglet/gl/xlib.py in _create_glx_context(self, share)
    268             raise gl.ContextException(
--> 269                 'Require GLX_ARB_create_context extension to create OpenGL 3 contexts.')
    270 

ContextException: Require GLX_ARB_create_context extension to create OpenGL 3 contexts.

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
<ipython-input-6-5f3f7caecb04> in <module>()
      8 
      9 imw, imh=1600, 1600
---> 10 mv = MeshViewer(width=imw, height=imh, use_offscreen=True)

/data/opt/AAN/lib/python3.7/site-packages/human_body_prior/mesh/mesh_viewer.py in __init__(self, width, height, use_offscreen)
     53 
     54         if self.use_offscreen:
---> 55             self.viewer = pyrender.OffscreenRenderer(*self.figsize)
     56             self.use_raymond_lighting(5.)
     57         else:

/data/opt/AAN/lib/python3.7/site-packages/pyrender/offscreen.py in __init__(self, viewport_width, viewport_height, point_size)
     29         self._platform = None
     30         self._renderer = None
---> 31         self._create()
     32 
     33     @property

/data/opt/AAN/lib/python3.7/site-packages/pyrender/offscreen.py in _create(self)
    147                 os.environ['PYOPENGL_PLATFORM']
    148             ))
--> 149         self._platform.init_context()
    150         self._platform.make_current()
    151         self._renderer = Renderer(self.viewport_width, self.viewport_height)

/data/opt/AAN/lib/python3.7/site-packages/pyrender/platforms/pyglet_platform.py in init_context(self)
     43                 'context. If you\'re logged in via SSH, ensure that you\'re '
     44                 'running your script with vglrun (i.e. VirtualGL). The '
---> 45                 'internal error message was "{}"'.format(e)
     46             )
     47 

ValueError: Failed to initialize Pyglet window with an OpenGL >= 3+ context. If you're logged in via SSH, ensure that you're running your script with vglrun (i.e. VirtualGL). The internal error message was "Require GLX_ARB_create_context extension to create OpenGL 3 contexts."

解决方法:

在代码里面添加:

import os
os.environ["PYOPENGL_PLATFORM"] = "egl"

 

 类似资料:

相关阅读

相关文章

相关问答