zju3dv / EasyVolcap

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

gui traceback on launch #16

Open briancantwe opened 8 months ago

briancantwe commented 8 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 8 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