Hello list,
Is it somehow possible to get a 360 degree angle-of-view with the GEM camera inside a framebuffer?
I just noticed, that the camera clips at 180deg (using the "perspec" message). That means, outside 180deg nothing but the background color is rendered.
I then tried to build a virtual multi-camera system using two framebuffers with 180deg camera angle each. But apparently the camera direction inside the framebuffer is fixed and can not be set. Or can it somehow?
thanks!
marian
ok, i now can give some answers myself:
Is it somehow possible to get a 360 degree angle-of-view with the GEM camera inside a framebuffer?
I just noticed, that the camera clips at 180deg (using the "perspec" message). That means, outside 180deg nothing but the background color is rendered.
The camera in GEM is an "ideal" camera, which has no angle, but only a size. So it is technically not possible to get more than 180 degrees.
I then tried to build a virtual multi-camera system using two framebuffers with 180deg camera angle each. But apparently the camera direction inside the framebuffer is fixed and can not be set. Or can it somehow?
The same result can be achieved by rotating the content.
So, my new multi-camera approach is as follows: I connect my content to three framebuffers (At the second one, everything gets rotated by 120deg, and at the third one by 220 deg). Then I stitch these three parts together to one continuous video using Extended View Toolkit.
My new question: Isn't there some easy way to do the same thing?
Le 14/04/2012 18:47, Marian Weger a écrit :
ok, i now can give some answers myself:
Is it somehow possible to get a 360 degree angle-of-view with the GEM camera inside a framebuffer?
I just noticed, that the camera clips at 180deg (using the "perspec" message). That means, outside 180deg nothing but the background color is rendered.
The camera in GEM is an "ideal" camera, which has no angle, but only a size. So it is technically not possible to get more than 180 degrees.
I then tried to build a virtual multi-camera system using two framebuffers with 180deg camera angle each. But apparently the camera direction inside the framebuffer is fixed and can not be set. Or can it somehow?
The same result can be achieved by rotating the content.
So, my new multi-camera approach is as follows: I connect my content to three framebuffers (At the second one, everything gets rotated by 120deg, and at the third one by 220 deg). Then I stitch these three parts together to one continuous video using Extended View Toolkit.
My new question: Isn't there some easy way to do the same thing?
have you seen the example 10.example/13.panoramic? replacing images by frambuffer information would allow an easier stitching to a big panoramic image.
Cheers Cyrille
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hi Marian,
I've not tried this, but:
On 14/04/12 17:47, Marian Weger wrote:
Is it somehow possible to get a 360 degree angle-of-view with the GEM camera inside a framebuffer?
Isn't there some easy way to do the same thing?
I don't think so.
You could use a vertex shader to implement your own projection algorithm[0] to reduce any strange effects from stitching together multiple perspective projections. Perhaps "angular fish eye"[1] for the "wide" direction only (modelling a cylinder instead of a sphere).
Almost surely[2] it will still be necessary to render a few wedges of the cylinder to get a full 360 without bad problems at the edge cut[3].
An example of a "bad problem" with full 360 wide angle camera: something directly opposite the direction of the center of the view gets drawn as a huge wide thing that crosses from near far left to near far right instead of two small things one that goes from near far left to the far left edge and the other that goes from near far right to the far right edge. Little ASCII diagram:
| <--------------------------------> | bad problem |--> <---| what it should really be
Claude
[0] http://www.google.co.uk/#q=vertex+shader+360+wide+angle+projection+-xbox [1] http://paulbourke.net/miscellaneous/domefisheye/fisheye/ [2] http://en.wikipedia.org/wiki/Almost_surely [3] http://en.wikipedia.org/wiki/Branch_point#Branch_cuts
Thanks, Claude!
The stitching process is really not the problem, as all this is already implemented in Extended View Toolkit [1]. My problem is more the computational effort, that is multiplied by 3 when using 3 virtual cameras. Plus the stitching part.
Perhaps I need to explain more what I want to do: I have a very complex 3d scenery inside GEM. Now I want to view this scenery from the center and then project the image onto an immersive panoramic video screen. The screen is not a full dome, but more a cylinder surrounding the visitor. So the virtual camera inside GEM ideally also covers a cylindrical area.
Le 14/04/2012 20:44, Marian Weger a écrit :
Thanks, Claude!
The stitching process is really not the problem, as all this is already implemented in Extended View Toolkit [1].
oups, sorry, i forgot that EVT did also include this part.
My problem is more the computational effort, that is multiplied by 3 when using 3 virtual cameras.
use display list to optimise bus transfer.
Plus the stitching part.
this should be quitte fast.
Perhaps I need to explain more what I want to do: I have a very complex 3d scenery inside GEM. Now I want to view this scenery from the center and then project the image onto an immersive panoramic video screen. The screen is not a full dome, but more a cylinder surrounding the visitor. So the virtual camera inside GEM ideally also covers a cylindrical area.
yes, i think you're doing it right. display list is the only i can imagine to optimised rendering.
Cheers Cyrille
[1] http://extendedview.mur.at
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list