zju3dv / EasyVolcap

[SIGGRAPH Asia 2023 (Technical Communications)] EasyVolcap: Accelerating Neural Volumetric Video Research
Other
635 stars 43 forks source link

gui traceback on launch #16

Open briancantwe opened 10 months ago

briancantwe commented 10 months ago

Hello! I've worked through the entire process in the readme at this point, but am getting an error with the following command when I try to use the gui:

evc -t gui -c configs/exps/gaussiant/gaussiant_${expname}.yaml,configs/specs/superm.yaml,configs/specs/spiral.yaml

Here's the full output (apologies for the formatting!):

2024-01-11 11:07:59.822330 easyvolcap.scripts.main -> preflight: Starting experiment: main.py:80 gaussiant_actor1_4_subseq, command: gui 2024-01-11 11:08:03.534636 easyvolcap.runners.visualizers.volumetric_video_visualizer volumetric_video_visualizer.py:76 -> init: Visualization output: data/novel_view/gaussiant_actor1_4_subseq/{RENDER,DEPTH,ALP HA} 2024-01-11 11:08:03.546234 easyvolcap.runners.recorders -> init: Saved config file to recorders.py:105 data/record/gaussiant_actor1_4_subseq/gaussiant_actor1_4_subseq_1705000083.y aml 2024-01-11 11:08:03.620693 easyvolcap.utils.console_utils -> inner: Runtime exception: 'NoneType' console_utils.py:341 object has no attribute 'eglGetCurrentContext'

/mnt/c/Users/Kentlab/documents/github/easyvolcap/easyvolcap/utils/console_utils.py:338 in inner ││ ││ ❱ 338 │ │ │ return func(args, kwargs) ││ ││ /mnt/c/Users/Kentlab/documents/github/easyvolcap/easyvolcap/engine/registry.py:56 in inner ││ ││ ❱ 56 │ │ return call_from_cfg(func, cfg) ││ ││ /mnt/c/Users/Kentlab/documents/github/easyvolcap/easyvolcap/engine/registry.py:47 in call_from_cfg ││ ││ ❱ 47 │ return func(call_args) ││ ││ /mnt/c/Users/Kentlab/documents/github/easyvolcap/easyvolcap/scripts/main.py:119 in gui ││ ││ ❱ 119 │ viewer: "VolumetricVideoViewer" = RUNNERS.build(viewer_cfg, runner=runner) # will start the window ││ ││ /mnt/c/Users/Kentlab/documents/github/easyvolcap/easyvolcap/engine/registry.py:300 in build ││ ││ ❱ 300 │ │ return self.build_func(args, kwargs, registry=self) ││ ││ /mnt/c/Users/Kentlab/documents/github/easyvolcap/easyvolcap/engine/registry.py:131 in build_from_cfg ││ ││ ❱ 131 │ return call_from_cfg(obj_cls, args) ││ ││ /mnt/c/Users/Kentlab/documents/github/easyvolcap/easyvolcap/engine/registry.py:47 in call_from_cfg ││ ││ ❱ 47 │ return func(call_args) ││ ││ /mnt/c/Users/Kentlab/documents/github/easyvolcap/easyvolcap/runners/volumetric_video_viewer.py:96 in init ││ ││ ❱ 96 │ │ from easyvolcap.utils.gl_utils import Mesh, Splat ││ ││ /mnt/c/Users/Kentlab/documents/github/easyvolcap/easyvolcap/utils/gl_utils.py:40 in ││ ││ ❱ 40 import OpenGL.GL as gl ││ ││ /home/arcproclocal/miniconda3/envs/easyvolcap/lib/python3.11/site-packages/OpenGL/GL/init.py:4 in ││ ││ ❱ 4 from OpenGL.GL.VERSION.GL_1_1 import ││ ││ /home/arcproclocal/miniconda3/envs/easyvolcap/lib/python3.11/site-packages/OpenGL/GL/VERSION/GL_1_1.py:14 in <module ││ ││ ❱ 14 from OpenGL.raw.GL.VERSION.GL_1_1 import ││ ││ /home/arcproclocal/miniconda3/envs/easyvolcap/lib/python3.11/site-packages/OpenGL/raw/GL/VERSION/GL_1_1.py:7 in <mod ││ ││ ❱ 7 from OpenGL.raw.GL import _errors ││ ││ /home/arcproclocal/miniconda3/envs/easyvolcap/lib/python3.11/site-packages/OpenGL/raw/GL/_errors.py:4 in ││ ││ ❱ 4 │ _error_checker = _ErrorChecker( _p, _p.GL.glGetError ) ││ ││ /home/arcproclocal/miniconda3/envs/easyvolcap/lib/python3.11/site-packages/OpenGL/error.py:183 in init ││ ││ ❱ 183 │ │ │ │ self._isValid = platform.CurrentContextIsValid ││ ││ /home/arcproclocal/miniconda3/envs/easyvolcap/lib/python3.11/site-packages/OpenGL/platform/baseplatform.py:15 in g ││ ││ ❱ 15 │ │ value = self.fget( obj ) ││ ││ /home/arcproclocal/miniconda3/envs/easyvolcap/lib/python3.11/site-packages/OpenGL/platform/baseplatform.py:356 in Cu ││ ││ ❱ 356 │ │ return self.GetCurrentContext ││ ││ /home/arcproclocal/miniconda3/envs/easyvolcap/lib/python3.11/site-packages/OpenGL/platform/baseplatform.py:15 in g ││ ││ ❱ 15 │ │ value = self.fget( obj ) ││ ││ /home/arcproclocal/miniconda3/envs/easyvolcap/lib/python3.11/site-packages/OpenGL/platform/egl.py:106 in GetCurrentC ││ ││ ❱ 106 │ │ return self.EGL.eglGetCurrentContext

AttributeError: 'NoneType' object has no attribute 'eglGetCurrentContext' *** 'NoneType' object has no attribute 'eglGetCurrentContext'

Thanks for taking a look!

dendenxu commented 10 months ago

Hi! Thanks for trying out our code! Firstly, when running the GUI, there no need to generate a spiral path so no need to append the configs/specs/spiral.yaml config. This should make the command look like: evc -t gui -c configs/exps/gaussiant/gaussiant_${expname}.yaml,configs/specs/superm.yaml Second, looks like the error suggest that we've asked popping to use egl as its backend, which is incompatible with the gui. Could you check whether the PYOPENGL_PLATFORM environment variable is set? If set, try clearing it before running the rendering command.

echo $PYOPENGL_PLATFORM # should print nothing
unset PYOPENGL_PLATFORM # unset the variable if needed

evc -t gui -c configs/exps/gaussiant/gaussiant_${expname}.yaml,configs/specs/superm.yaml