mcjSphericalCam



Introduction

     
   important note: the results obtained using this script are not perfect, in fact there's image
distortions that may become very apparent. I
n the future i may return and improve this ... but not soon
 
     

This script helps you create spherical background panorama images ( aka equirectangular )
When panoramas of this type are applied on gigantic spheres
and your camera is inside that sphere, you get the illusion of being 
at the same location this image was taken ( it's like Google Streetview and Quicktime VR )



History



--------------- initial release
28 june 2015 10:53 am - V2 fixed a bug 




Installation



The script is in a zip package is found at the bottom of this page

unzip it in your daz content folder, typically 


C:\Program Files\DAZ\Studio\content\ 
or

C:\Program Files (x86)\DAZ\Studio\content\


once installed, it will appear in your content library, under Studio / Scripts / mcasual 


or


C:\Users\Public\Documents\My DAZ 3D Library\


once installed, it will appear in your content library, under My DAZ 3D Library / Scripts / mcasual
 



Pre-requisite 1 : imagemagick

You must install the imagemagick utilities ( just what they call the binaries ) on your PC

http://www.imagemagick.org/script/binary-releases.php

we only need the convert.exe and the montage.exe utilities
Personally i always install them in c:\imagemagick
but C:\Program Files\ImageMagick is also good

Then, at least once, you must run the mcjSphericalCam script
use the "Location of imagemagick" button
then browse to and select c:\imagemagick\convert.exe

pre-requisite 2 : mcjSqueeze

Actually this is optional, but the results are greatly improved if you install/use this

Install the mcjSqueeze.exe in the same folder where imagemagick's convert.exe utility is installed



Use


Create a camera, and select it. Make it your current view camera

While we're learning to use the script,  preferable to set the Timeline's current frame to frame 0

Launch the script.


This script can animate the camera so that it scans the entire surface of an imaginary sphere around it

Usually you will set it up so that it covers the sphere in 72 camera poses ( 12 columns by 6 rows ) or 128  camera poses ( 16 columns by 8 rows )

For our example, set the "Horizontal tiles" slider to 12

The number of rows is always half of that: 6. So there will be 72 image tiles


Step 1 - Focus


This system only works if the focal length ( or field of vision ) is properly set up

You can use the "Auto Focal Length" button and the script will adjust your camera's focal length to an ideal focal length.

standard focal lengths are 

Horizontal tiles : 16 ( 22.5 degrees )

Focal length at most : 83 mm.

FOV is 23.8121 degrees.


Horizontal tiles : 12 ( 30 degrees )

The focal length at most: 61 mm.

FOV 32.0148 degrees.





Step 2 - Animate the camera


"Click the "Animate Camera" button

The script created 72 poses for your  camera ( starting at frame 0 if that's where you were )




Step 3 - Render your tiles


Exit the script

Render the 72 frames, as 72 images ( not as a movie file ), the only restriction is that the images must be square

if you use a rendered image size of 512 x 512 pixels

then the resulting panorama at the end of the process will be 12x6  x  512 x 512 ..... 6144 by 3072 pixels



Step 4 - stretch the tiles - Option A  - Using mcjSqueeze ( Recommended )

Select your camera again

launch the script

( remember you were supposed to install mcjSqueeze in the same folder as imagemagic's convert utility )

click the  "Create stretcher.bat" button

you will then be asked to select an image from your series of 72 renders

then you will be asked for the name to be given to your batch file

This batch file must be created in the same folder as the images

we suggest the name stretcher.bat

you can launch this batch file "manually" by double-left-clicking on it in Windows Explorer

or you can launch it by clicking the "Run Stretcher.bat" button

if your rendered images were named pic00.jpg, pic01.jpg ... pic71.jpg

then you will see 72 pictures appear in the same folder with the names

out_pic00.jpg, out_pic01.jpg ... out_pic71.jpg

The script with the help of the mcjSqueeze.exe utility, cropped and stretched just the useful areas of the rendered tiles



Step 4 - stretch the tiles - Option B - Using convert.exe ( not recommended )


this method uses an approximation of the tile shapes, the resulting mozaic is quite defective

click the  "Create cropStretch.bat" button

you will then be asked to select an image from your series of 72 renders

then you will be asked for the name to be given to your batch file

This file must be created in the same disk folder as the images

we suggest the name cropstretch.bat

you can launch this batch file "manually" by double-left-clicking on it in Windows Explorer

or you can launch it by clicking the "Run CropStretch.bat" button

if your rendered images were named pic00.jpg, pic01.jpg ... pic71.jpg

then you will see 72 pictures appear in the same folder with the names

out_pic00.jpg, out_pic01.jpg ... out_pic71.jpg

The script with the help of the ImageMagick utility, cropped and stretched just the useful areas of the rendered tiles



Step 5 - Assemble the panorama-mosaic


Click the "Create montage.bat" button

you will then be asked to select an image from your series of 72 cropped and stretched images

the image out_pic00.jpg for example

then you will be asked for the name to be given to your batch file

This file must be created in the same disk folder as the images

we suggest the name montage.bat


you can launch montage.bat "manually" by double-left-clicking on it in Windows Explorer

or you can launch it by clicking the "Run montage.bat" button

and there should now be a big panoramic image in the folder !



Notes about mcjSqueeze.exe 
( this section is for the not-yet-published version 3 of mcjSphericalCam )

You don't really need to know this, but FYI the command line format for mcjSqueeze is

mcjSqueeze.exe VSlices tileY FOV fileIn fileOut

ex: 

set squeeze="c:/imagemagick/mcjSqueeze.exe"
%squeeze% 6 0 32.0148 datone.tga nuone.tga

VSlice: the number of vertical ( elevation) rows of image tiles for this spherical panorama
tileY : the row of the spherical panorama for this image-tile
FOV: the field of vision ( angle ) that was used to render this image tile
fileIn the image file name - only 24-bit uncompressed TGA images are acceptable
fileOut the processed image file name - 
24-bit uncompressed TGA format

mcjSqueeze's delicate task is to crop the part of your rendered tile
that belongs to one of the mozaic's tiles and stretch it until it's a square

License

// by mCasual/Jacques 
//
// You can use this script freely for personal or commercial use.
//
// You may not sell, resell, sub-license or rent this script in any way./
//
// you may credit this script  to mCasual/Jacques
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

ċ
mcjSphere128x128.obj
(1718k)
mCasual Jacques,
Jun 27, 2015, 8:44 AM
ċ
mcjSphere12x6.obj
(5k)
mCasual Jacques,
Jun 24, 2015, 6:35 AM
ċ
mcjSphere16x8.obj
(10k)
mCasual Jacques,
Jun 24, 2015, 6:35 AM
ċ
mcjSphere24x12.obj
(24k)
mCasual Jacques,
Jun 24, 2015, 6:35 AM
ċ
mcjSphere32x16.obj
(43k)
mCasual Jacques,
Jun 24, 2015, 6:35 AM
ċ
mcjSphericalCam.zip
(67k)
mCasual Jacques,
Jul 2, 2015, 6:02 AM
ċ
mcjSqueeze.rar
(4k)
mCasual Jacques,
Jul 2, 2015, 5:33 AM
ċ
mcjSqueeze.zip
(5k)
mCasual Jacques,
Jul 2, 2015, 5:33 AM
ą
mCasual Jacques,
Jun 26, 2015, 7:05 PM
Comments