1

How do I generate a cubic projection (AKA cubemap) with Hugin? I have enough images for a 360 view of my scene. I see the Cubic Projection in the Hugin documentation but I see no mention of it in the software itself. Preferably, I would like to output each face of the cube in a separate image.

  • 1
    See: vinayhacks.blogspot.com/2010/11/…. Looks like it's more a CLI task with Hugin/Panotools. If you want a GUI, commercial software like Pano2VR or the Flexify PS plugin are possible solutions. – inkista Aug 4 '14 at 0:41
  • Hm, I tried this tutorial using their CLI interface but I'm getting errors: Can't locate auto/Win32/Win32.dll at (eval 1) line 36. Compilation failed in require at /loader/0x1b468fc/Cwd.pm line 643. BEGIN failed--compilation aborted. – yxk Aug 6 '14 at 13:45
  • 1
    Well, that tutorial is for Linux users. I think what's going on is that you basically are creating a script/project file that does the six viewpoints as rectilinear remappings with a specified FoV of 90º. If you want to try creating the script directly, this thread on the panoguide forums might help you out. Personally, I just ponied up for Pano2VR. :) – inkista Aug 6 '14 at 18:52
  • awesome, the panoguide was it. I had to find the documentation for the scripting/program parameters. I'll answer soon with a sample script. Thanks @inkista – yxk Aug 7 '14 at 5:45
  • Yeah, the guys on the panoguide board are THE source for messing about with equirectangulars. – inkista Aug 7 '14 at 16:23
1

Pano2VR or Flexify are probably your simplest solution, but if you're a scripting geek and have to use Hugin tools, then scripting nona commands is the way to go.

Since the panoguides board went down in sea of spam, I go to the Internet archives and post DorinDXN's answer (with some minor edits) of a Windows .bat file to create six nona_gui scripts and run them to create the six cube face images.


This is the equi2cubic100.bat file.

You'll need nona_gui.exe from the Hugin distribution. In the same folder with nona_gui.exe, place the pano.tif that is the equirectangular file.

You can change w1500 h1500 with the desired cube-face dimension in pixels w6000 h3000 with the size of the equirectangular and v100 (100°) for the FoV of the cubic.

Each line starts with @, don't break it into sublines.

@echo press any key if pano.tif was produced by PTGui
pause
@echo.
@echo -----------------------------------------------------
@echo Generating Face_0 FRONT
@echo p f0 w1500 h1500 v100 >script.txt
@echo m g1 i2 f0 m0>>script.txt
@echo o w6000 h3000 f4 p0 r0 v360 y0  u10 m0 n"pano.tif">>script.txt
@nona_gui -o cube_0.tif script.txt

@echo.
@echo -----------------------------------------------------
@echo Generating Face_1 RIGHT
@echo p f0 w1500 h1500 v100 >script.txt
@echo m g1 i2 f0 m0>>script.txt
@echo o w6000 h3000 f4 p0 r0 v360 y270  u10 m0 n"pano.tif">>script.txt
@nona_gui -o cube_1.tif script.txt
@echo.

@echo -----------------------------------------------------
@echo Generating Face_2 BACK
@echo p f0 w1500 h1500 v100 >script.txt
@echo m g1 i2 f0 m0>>script.txt
@echo o w6000 h3000 f4 p0 r0 v360 y180  u10 m0 n"pano.tif">>script.txt
@nona_gui -o cube_2.tif script.txt
@echo.

@echo -----------------------------------------------------
@echo Generating Face_3 LEFT
@echo p f0 w1500 h1500 v100 >script.txt
@echo m g1 i2 f0 m0>>script.txt
@echo o w6000 h3000 f4 p0 r0 v360 y90  u10 m0 n"pano.tif">>script.txt
@nona_gui -o cube_3.tif script.txt
@echo.

@echo -----------------------------------------------------
@echo Generating Face_4 UP
@echo p f0 w1500 h1500 v100 >script.txt
@echo m g1 i2 f0 m0>>script.txt
@echo o w6000 h3000 f4 p270 r0 v360 y0  u10 m0 n"pano.tif">>script.txt
@nona_gui -o cube_4.tif script.txt
@echo.

@echo -----------------------------------------------------
@echo Generating Face_5 DOWN
@echo p f0 w1500 h1500 v100 >script.txt
@echo m g1 i2 f0 m0>>script.txt
@echo o w6000 h3000 f4 p90 r0 v360 y0  u10 m0 n"pano.tif">>script.txt
@nona_gui -o cube_5.tif script.txt
@echo.
@del script.txt
  • If you add the command @Echo off to the start of your batch file you won't need to pre-pend each individual echo command with an @. – Peter M Mar 28 '17 at 12:47
1

The input file (pano.tif above) needs to be a full, spherical panorama, as indicated by 'f4' and the 2:1 aspect ratio.

Each cube face will be a rectilinear panorama, as indicated by 'f0' above. The field of view for the face should probably be 90 degrees, rather than 100 as selected by 'v100' above.

Here is a shell script from MacOS with Hugin installed:

#!/bin/sh

# create cube faces
# $1  # path to equirectangular ("full spherical") panorama file (360x180 degrees)
# $2  # cube dimension in pixels
# $3  # cube field of vision (default 90)
# $4  # width of $1 in pixels
# $5  # height of $1 in pixels [should be 0.5 * $4]

# faces are "$1"-{left,right,front,back,up,down}.jpg

p="p f0 w$2 h$2 v$3"       # p-line describes rectilinear panorama on cube face
m="m g1 i2"                # m-line: gamma 1.0 spline36 interpolator
o="o f4 w$4 h$5 v360 r0"   # o-line selects from spherical full panorama

# path to "nona"
nona='/Applications/Hugin/HuginStitchProject.app/Contents/MacOS/nona'

# temporary file for script
tmp="/tmp/$$.oto"
trap 'rm -f $tmp' 0

# remove previous faces, if any
rm -f "$1"-*.jpg

# create scripts and extract the faces
cat > "$tmp" << eof
$p
$m
$o p0 y0 n"$1"
eof
"$nona" -m JPEG -z 95 -o "$1"-front.jpg "$tmp"

cat > "$tmp" << eof
$p
$m
$o p0 y270 n"$1"
eof
"$nona" -m JPEG -z 95 -o "$1"-right.jpg "$tmp"

cat > "$tmp" << eof
$p
$m
$o p0 y180 n"$1"
eof
"$nona" -m JPEG -z 95 -o "$1"-back.jpg "$tmp"

cat > "$tmp" << eof
$p
$m
$o p0 y90 n"$1"
eof
"$nona" -m JPEG -z 95 -o "$1"-left.jpg "$tmp"

cat > "$tmp" << eof
$p
$m
$o p270 y0 n"$1"
eof
"$nona" -m JPEG -z 95 -o "$1"-up.jpg "$tmp"

cat > "$tmp" << eof
$p
$m
$o p90 y0 n"$1"
eof
"$nona" -m JPEG -z 95 -o "$1"-down.jpg "$tmp"

Here is an archive with an Automator workflow as a graphical user interface for the shell script.

protected by Community May 13 '18 at 18:44

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.