You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Question. Am I crazy or did I see somewhere support for 360 degree video? #404
I am not sure where I saw it, but I could have sworn that I saw that there was stitching of some sort of various inputs. Or am I totally out to lunch (which is very possible).
We do support stitching a 360 degree panorama on nvidia GPUs with the gpustitch capture module and displaying it with the openxr_gl and pano_gl modules.
I'm not sure what state the documentation is in for these modules right now, but let me know what use cases you are interested in, and I'll try to help.
I am able to get one source and use the pano_gl to work, but I don't see way to have more than one source.
The pano_gl and openxr_gl modules are used to display an already stitched panorama and as such only take one source.
The stitching is done on the sender using the gpustitch capture module.
what methodology does it use to stich the video? Is there some sort of configuration file that it uses like ptgui to create a map?
The capture rig needs to be first calibrated to obtain the precise relative orientation of the cameras and the distortion coefficients of the optics. The UltraGrid gpustitch module then uses those to project all cameras into one 360 degree panorama and uses multi band blending to make the seams between cameras smoother and less noticeable. Note that this approach works best if there aren't any objects moving close to the camera rig as the parallaxing will introduce artifacts.
Currently only rigs with fisheye type lenses are supported. We had nice results using four Blackmagic Micro Studio Camera 4K with the Laowa 4mm f/2.8 Fisheye lenses mounted on a 360RIZE 360Helios 4.
To obtain the calibration values we used Hugin, but ptgui seems to be based on the same Panotools backend, so that will probably work too. The gpustitch then uses a configuration file in the TOML format which looks like this:
The focal_len is the focal length of the camera in pixels calculated as focal length in milimeters * (picture width in px / sensor size in milimeters). The yaw, pitch and roll are the camera rotations as obtained in calibration. The distortion values are reported by Hugin as lens parameters a, b, c, with the last one defined as 1 - (a + b + c). The x and y offsets are reported in Hugin as lens parameters d and e.
The gpustitch module the takes the input as either single tiled image (useful when using a blackmagic card) or multiple independent sources. E.g.:
Activity
alatteri commentedon Jul 31, 2024
They have some level of stereo and VR sticking, but I've not paid much attention.
https://www.facebook.com/UltraGrid/posts/732707365220888?ref=embed_post
TheSashmo commentedon Jul 31, 2024
Thanks @alatteri lighting fast as usual!
Yeah, I know the 3D/Stereo stuff, but I was looking at something and could have sworn I saw a stitching ability across sources.
alatteri commentedon Jul 31, 2024
there is a configure check for OpenXR VR Display, which I would think is some type of stiching.
TheSashmo commentedon Jul 31, 2024
OpenXR, that might be it. I don't see any documentation on that. Now that you triggered my memory I think it's pano_gl.
I need to check that out.
mpiatka commentedon Jul 31, 2024
We do support stitching a 360 degree panorama on nvidia GPUs with the
gpustitchcapture module and displaying it with theopenxr_glandpano_glmodules.I'm not sure what state the documentation is in for these modules right now, but let me know what use cases you are interested in, and I'll try to help.
TheSashmo commentedon Jul 31, 2024
Thanks @mpiatka what methodology does it use to stich the video? Is there some sort of configuration file that it uses like ptgui to create a map?
TheSashmo commentedon Jul 31, 2024
I am able to get one source and use the pano_gl to work, but I don't see way to have more than one source.
mpiatka commentedon Aug 1, 2024
The
pano_glandopenxr_glmodules are used to display an already stitched panorama and as such only take one source.The stitching is done on the sender using the
gpustitchcapture module.The capture rig needs to be first calibrated to obtain the precise relative orientation of the cameras and the distortion coefficients of the optics. The UltraGrid
gpustitchmodule then uses those to project all cameras into one 360 degree panorama and uses multi band blending to make the seams between cameras smoother and less noticeable. Note that this approach works best if there aren't any objects moving close to the camera rig as the parallaxing will introduce artifacts.Currently only rigs with fisheye type lenses are supported. We had nice results using four Blackmagic Micro Studio Camera 4K with the Laowa 4mm f/2.8 Fisheye lenses mounted on a 360RIZE 360Helios 4.
To obtain the calibration values we used Hugin, but ptgui seems to be based on the same Panotools backend, so that will probably work too. The
gpustitchthen uses a configuration file in the TOML format which looks like this:The
focal_lenis the focal length of the camera in pixels calculated asfocal length in milimeters * (picture width in px / sensor size in milimeters). Theyaw,pitchandrollare the camera rotations as obtained in calibration. Thedistortionvalues are reported by Hugin as lens parameters a, b, c, with the last one defined as1 - (a + b + c). The x and y offsets are reported in Hugin as lens parameters d and e.The
gpustitchmodule the takes the input as either single tiled image (useful when using a blackmagic card) or multiple independent sources. E.g.:or
TheSashmo commentedon Aug 6, 2024
Thanks I will try to test this out this week!