
INPUT this
|

OUTPUT this
|
|
TGAWarper/JPGWarper for Windows
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-X movie-player application WarpPlayer can do the warping on-the-fly, it requires Apple hardware with some pretty high-end graphics capability. In order to play from non-Apple hardware, or from a lower-end platform that may not be able to support the warp-on-the-fly capability, 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 to encode movies — typically MPG or QuickTime MOVs. It's a UNIX, command-line style application; there's no fancy GUI, no installer, no hand-holding. You have to know what you want, and it assumes you are already familiar with the warping process beforehand. In other words, you probably know already if you need this program.
Through his Web site, Paul makes tgawarp available — but only for MacOS-X or Linux users. If that's what you're looking for, we encourage you to get it there!
We wanted a version that would run on Windows. 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: TGAWarper for Windows. We've run it successfully on our Windows 2000 and XP systems (it does not run on Windows 98 systems).
If this is what you're looking for, you can order it from us. There are actually two executable files — one for Targa images, the other for JPGs. They operate identically; both are provided.
Now what we would really like to have is a version of Paul's warp-on-the-fly media player that runs on Windows. Then we wouldn't have to go through all the gyrations to pre-warp our content, and users could play fisheye movies directly — ours or anyone else's. But such a player does not exist yet, so we have to go through the pre-warping routine using TGAWarper in the meantime.
CATALOG NUMBER
|
DESCRIPTION |
PRICE
|
TJW-Z
|
TGAWarper/JPGWarper for Windows
Zip file sent as e-mail attachment
|
$30
|
TJW-R
|
TGAWarper/JPGWarper for Windows
Data CD-R
|
$40
|
|
All the documentation, installation, and usage instructions that exist are basically what you find on Paul'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.
Usage: tgawarper(jpgwarper) [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 mesh map 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 1920, the height 1080, 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 the presence of leading zeroes. If the program returns a file naming error, try using two percent symbols instead of one.
When using 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 "d:/output/w_filename.tga", it will create "w_d:/output/filename.tga" (which will likely fail). So you may not find this feature very useful.
Default mesh maps are provided, but you will probably modify those or create your own, depending on your target configuration. Read more here.
|