EnvMapTooL
No description available
Install / Use
/learn @podgorskiy/EnvMapTooLREADME
#EnvMapTool - Cross-platform tool for working with environmental maps.
Performs a set of different actions:
- Converts cube map to sphere map
- Converts sphere map to cube map
- Blurs cubmap
- Assembles cubemaps from a set of images
- Disassembles cubemap to a set of images
Supported formats fow read/write:
- DDS. Not compressed.
- TARGA
- PNG
#Usage: Input and output files can be specified in two ways:
- As single file. Use keys -i / -o
- As six files that represent x+, x-, y+, y-, z+, z- faces, use keys -I / -O
Specify output format with key -f. It can be: TGA, PNG, DDS. For example -f PNG. Default is TGA.
Specify desired action:
cube2sphere- converts cube map to sphere mapsphere2cube- converts sphere map to cube mapblurCubemap- blurs cubemap using Monte Carlo method. Accurate but slow approach.fastBlurCubemap- blurs cubemap using Monte Carlo method. Inaccurate but fast approach.convert- this action does nothing. Should be used to convert cubemap from one format to other.
If you specifed a single file for output, that does not support multiple faces (not DDS format), than omly one face will be written. This face can be specified by flag -F
You may specify gamma for input texture -g, and gamma for output texture -G. Default is 2.2
You may specify size of output texture using keys -W and -H.
For actions blurCubemap and fastBlurCubemap you may set bluring radius by use of key -b
For action blurCubemap blur quality can be specified by key -q. Effects the number of samples in Monte Carlo integration. Reasonable values are between 4 - 10. Large values will increase calculation time dramatically. Default is 4
#Exapmles
##Converting DDS to a series of png files: Let we have cubemap in DDS format: uffizi_cros.dds To convert it to six *.png files that represent x+, x-, y+, y-, z+, z- faces you need to execite following command:
EnvMapTool -i uffizi_cros.dds -O 1.png -O 2.png -O 3.png -O 4.png -O 5.png -O 6.png -f PNG convert
The output will be:

##Converting DDS cubemap to sphere map Lets convert uffizi_cros.dds to sphere map and specify size of sphere map of 765x765:
EnvMapTool -i uffizi_cros.dds -o sphere.png -W 765 -H 765 -f PNG cube2sphere

##Converting sphere map to cubemap Lets convert generated in previous example sphere map to a series of png texture of size 256x256:
EnvMapTool -i sphere.png -O xp_.png -O xm_.png -O yp_.png -O ym_.png -O zp_.png -O zm_.png -W 256 -H 256 -f PNG sphere2cube

##Bluring cubemap using Monte-Carlo approach and converting it to spheremap:
EnvMapTool -i uffizi_cros.dds -O 1.png -O 2.png -O 3.png -O 4.png -O 5.png -O 6.png -W 256 -H 256 -f PNG blurCubemap -b 60 -q 10
EnvMapTool -I 1.png -I 2.png -I 3.png -I 4.png -I 5.png -I 6.png -o bluredSphere.png -W 765 -H 765 -f PNG cube2sphere

##The same as above, but using fast blur:
EnvMapTool -i uffizi_cros.dds -O 1.png -O 2.png -O 3.png -O 4.png -O 5.png -O 6.png -f PNG fastBlurCubemap -b 30
EnvMapTool -I 1.png -I 2.png -I 3.png -I 4.png -I 5.png -I 6.png -o fastBluredSphere.png -W 765 -H 765 -f PNG cube2sphere

##Detailed usage:
USAGE:
./EnvMapTool {-o <Output file>|-O <Output files> ... } {-i <Input file>
|-I <Input files> ... } [-f <Output format>] [-F <Face to
write>] [-q <Blur quality>] [-b <Blur radius>] [-l] [-g
<Input gamma>] [-G <Output gamma>] [-H <Output texture
height>] [-W <Output texture width>] [--version] [-h]
<cube2sphere|sphere2cube|blurCubemap|fastBlurCubemap
|convert>
Where:
-o <Output file>, --output <Output file>
(OR required) The output texture file.
-- OR --
-O <Output files>, --outputSequence <Output files> (accepted multiple
times)
(OR required) The output texture files for cube map. You need specify
six files: xp, xn yp, yn, zp, zn
-i <Input file>, --input <Input file>
(OR required) The input texture file. Can be of the following
formats: *.tga, *.png, *.dds
-- OR --
-I <Input files>, --inputSequence <Input files> (accepted multiple
times)
(OR required) The input texture files for cube map. You need specify
six files: xp, xn yp, yn, zp, zn. WARNING! All the files MUST be the
same format and size!
-f <Output format>, --format <Output format>
Output texture file format. Can be one of the following "TGA", "DDS",
"PNG". Default TGA.
-F <Face to write>, --faceToWrite <Face to write>
If cubemap texture is written to format that does not support faces,
this face will be written
-q <Blur quality>, --blurQuality <Blur quality>
Effects the number of samples in Monte Carlo integration. Reasonable
values are between 4 - 8. Large values will increase calculation time
dramatically. Default is 4
-b <Blur radius>, --blurRadius <Blur radius>
Gaussian blur radius. Default is 10.0
-l, --leaveOuter
If flag is set, than while cubemap -> sphere transform area around the
sphere circule are not filled black, but represent mathematical
extrapolation.
-g <Input gamma>, --inputGamma <Input gamma>
Gamma of input texture. Default is 2.2
-G <Output gamma>, --outputGamma <Output gamma>
Gamma of output texture. Default is 2.2
-H <Output texture height>, --outputHeight <Output texture height>
Height of output texture. Default is the same as input, or 4 times
upscaled in case of cube2sphere transform, or 4 times downscaled in
case of sphere2cube transform
-W <Output texture width>, --outputWidth <Output texture width>
Width of output texture. Default is the same as input, or 4 times
upscaled in case of cube2sphere transform, or 4 times downscaled in
case of sphere2cube transform
--version
Displays version information and exits.
-h, --help
Displays usage information and exits.
<cube2sphere|sphere2cube|blurCubemap|fastBlurCubemap|convert>
(required) Action. Can be:
cube2sphere - Converts cube map texture to spherical map
sphere2cube - Converts spherical map texture to cube map
blurCubemap - Gaussian blur of cubemap
convert - Do nothing. Just to convert txture from one format to
other
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
