Here's an esoteric specialty item for those producing fulldome movies.
Paul Bourke developed a method of fulldome projection using a spherical mirror. It requires that dome master fisheye frames be distorted or warped, so the projected result on the dome looks correct. While Paul's MacOS Fisheye movie player tools can do the warping "on-the-fly", Apple hardware is required. In order to play from non-Apple hardware, one can pre-warp the fisheye image frames, and make movies for playback using conventional media players.
For that specific purpose, Paul authored a utility called TGAWARP. Point it to sequentially-numbered fisheye dome master frames; it runs through the sequence, outputting warped frames with a prepended "w_" in the filename. The resulting frames are then used as source material in other applications to encode movies — typically MPGs or MP4s.
Through his Web site, Paul makes TGAWARP available — but only for Mac OS-X users. If that's what you're looking for, we encourage you to get it there!
We wanted a version that would run on a PC platform. So we obtained Paul's C source code, and asked Richard S. Wright Jr. of Software Bisque to compile a Windows binary from it. The result: IMGWarper for Windows. We've run it successfully on our Windows 2000, XP, XP-64bit, Win7 and Win7-64bit, Win10-64bit, and Win11-64bit systems (it does not run on Windows 98 and earlier systems).
It's a UNIX, command-line style application. There's no fancy GUI, no installer, no tutorial, no hand-holding. You have to know what you want to achieve beforehand; it assumes you are already familiar with the warping process. In other words, you probably know already if you need this program. So if this is what you're looking for, you can order it from us.
There are actually three executable files provided — TGAWarper, JPGWarper, and PNGWarper. They operate identically; just use the module that matches the source material. They will not convert one file format to another; JPGs in, JPGs out.
NOTE: IMGWarper for Windows by itself does not make movies. It only makes frame sequences. You use your own software solutions to make movies from those frame sequences.
Sorry, we have no "demo" or "trial" version.
FISHEYE MOVIE (TRUNCATED FORMAT)
We made this movie from full circle fisheye frames — although we did truncate the circle for optimal Web display, as you can see. This is the format our definiti PD projector displays; most fulldome systems project full circles.
WARPED MOVIE
We made this movie from full circle fisheye frames that have been warped using IMGWarper for Windows. This 16:9 format is used by many spherical mirror projection systems.
All the documentation and usage instructions that exist are basically what you find on Paul Bourke's Web site. We have reproduced much of it here for reference, adapting his text a little for clarity. The utility also provides this information from the command line, when running it without the expected parameters. The command line syntax is given below.
NOTE: This is a command-line utility, not an interactive Windows application. You run it from a "DOS prompt"; executing the program from Windows Explorer will just give you a flash of the screen and exit. Select Start->Run->CMD
to open a DOS box, then enter the commands to run the utility from the command line prompt within the DOS box. You might need to open the DOS box with Run As Administrator.
Usage: tgawarper(jpgwarper)(pngwarper) [options] filemask mapfile Options: -w n width of output image, height is determined by aspect ratio of mesh -a n antialiasing level, default is 2 (minimum recommended) -n n set the first frame number, default is 0 -m n set the frame step, default is 1 -f flip image vertically -i ignore intensity mapping, default is to apply intensity -l s use previously created lookup table -t assume top truncated fisheye, default is full fisheye -o s set output file mask, default is derived from input mask -q n set the quality of the output jpg file, 0 to 100 (JPGWarper only) Example 1: tgawarper -w 1024 frames%d.tga xyuv.map Expects frames called frame0.tga, frame1.tga,... etc. in the current directory. Will create output files called w_frame0.tga, w_frame1.tga,... etc. in the current directory. The frames will be 1024 pixels wide with 2x2 antialiasing. The map file "xyuv.map" is expected in the current directory. Example 2: jpgwarper -w 1400 -a 3 -n 1 -o ../output/%05d.jpg ../input/%05d.jpg xyuv.map Expects files 00001.jpg, 00002.jpg ... etc. in the directory "../input/". Will write the warped files 00000.jpg, 00001.jpg ... to "../output/". The frames will be 1400 pixels wide with 3x3 antialiasing. The map file "xyuv.map" is expected in the current directory.
Notes:
• The width of the output image should match the native resolution of the intended display, normally a data projector. The aspect ratio and hence height of the image is determined automatically from the warp meshmap file.
• Antialiasing is implemented as supersampling antialiasing, and plays a major role in the performance and memory requirements. Typically a value of 2 is sufficient.
• The initial internal computation of a lookup table can take a significant amount of time, especially for large output image sizes and high antialising values. Once calculated, though, the lookup table is saved to a file and used for subsequent runs, bypassing that step thereafter. For this to work, it requires the same warp file, output dimensions and antialiasing level be used; the lookup table has these parameters encoded into its file name. For example, if the warp file is called dell5100.data
then the lookup table will be saved in the same location and called dell5100_1920_1080_2.lup
, where the output image width is 1920px, the height 1080px, and the antialiasing level 2. The software automatically looks for a matching lookup table file, or the user can specify it using the -l
command line option.
• The -t
option is intended for frames where the fisheye image is truncated as per the common fisheye lens projection arrangement. Since the spherical mirror projection can generally cover more of the dome than the truncated fisheye, if one is working from such truncated frames the dome coverage of the warped result will be less than if full fisheye frames were used.
• The filemask naming convention uses the variable %0#d
; e.g., the #d
indicates the number of digits, the 0
indicates the presence of leading zeroes. If the program returns a file naming error, try using two percent symbols instead of one.
• When attempting to use the -o output filemask
option and the filemask contains a folder structure or drive letter, the program will prepend its w_
onto the filemask instead of the actual filename. Instead of creating an expected d:/output/w_filename.tga
, it will try to write to w_d:/output/filename.tga
which will likely fail, w_d:/
being a non-existent drive. So unfortunately, in its current implementation this option does not function fully as expected. We advise simply running the program from within the same folder as the frames, not specifying a destination, and allowing it to write to the same folder by default (it should not overwrite your original files). You can move the warped frames to your desired destination afterward.
• Default meshmaps are provided, including those for ePlanetarium 1400x1050 and 1920x1080 Newtonian systems. Depending on your target configuration, you could modify those maps or create your own. Read more here.