Hi guys!
Previously I was working with JOGL and I was able to generate seamless 360° panoramas just by taking screenshot, rotating to 45°, taking screenshot again … and then concatenating all the screenshots together.
Now I’m trying to get the same result with JME offscreen rendering. According to wiki.jmonkeyengine.org/doku.php/jme3:advanced:camera frame of view angle of the camera is 45°, so I tried to apply the same approach (sorry as a new user I can’t put images in posts directly):
http://panorama360.site44.com/45.htm
It’s obvious that screenshots overlap, so 45° is not enough rotation. 60° is a bit better but still not perfect:
http://panorama360.site44.com/60.htm
I wonder what is the right angle to rotate to make ideal seamless panoramas? Or is there anything wrong with my approach?
If some code could help, I’ve done the rotation by putting
cam.setRotation(turns[rotateCounter++]);
to public void simpleRender(RenderManager rm) method of the Application where turns is:
private static Quaternion[] turns = new Quaternion[8]; { turns[0] = new Quaternion();turns[0].fromAngleAxis(FastMath.PI * 0 / 180, new Vector3f(0, 1, 0)); turns[1] = new Quaternion();turns[1].fromAngleAxis(FastMath.PI * 45 / 180, new Vector3f(0, 1, 0)); turns[2] = new Quaternion();turns[2].fromAngleAxis(FastMath.PI * 90 / 180, new Vector3f(0, 1, 0)); turns[3] = new Quaternion();turns[3].fromAngleAxis(FastMath.PI * 135 / 180, new Vector3f(0, 1, 0)); turns[4] = new Quaternion();turns[4].fromAngleAxis(FastMath.PI * 180 / 180, new Vector3f(0, 1, 0)); turns[5] = new Quaternion();turns[5].fromAngleAxis(FastMath.PI * 225 / 180, new Vector3f(0, 1, 0)); turns[6] = new Quaternion();turns[6].fromAngleAxis(FastMath.PI * 270 / 180, new Vector3f(0, 1, 0)); turns[7] = new Quaternion();turns[7].fromAngleAxis(FastMath.PI * 315 / 180, new Vector3f(0, 1, 0)); }
Thanks a lot!