最近为了实现更好更炫酷的 UI 交互效果,我们在尝试使用 3D UI 来做,在网上找了些模型,发现很多 dump 出来模型使用的都是 DDS(DirectDraw Surface) 格式的纹理贴图,而不是通用的诸如 PNG、JPG、BMP、TIF 等文件格式。
由于我主要使用 macOS 作为主力电脑,所以总不想再开个虚拟机去转换这些东西。而且网上很多转换工具也都不是特别好用。最后是使用了 ImageMagick 这个大杀器来解决问题的。
Mac 下面安装很容易,用 Brew 就好了,这个软件我已经「安利」过很多次,不再赘述。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| $ brew install imagemagick ==> Installing dependencies for imagemagick: libtool, jpeg, libpng, libtiff, freetype ==> Installing imagemagick dependency: libtool ==> Downloading https://homebrew.bintray.com/bottles/libtool-2.4.6_1.sierra.bottle.tar.gz
==> Pouring libtool-2.4.6_1.sierra.bottle.tar.gz ==> Caveats In order to prevent conflicts with Apple's own libtool we have prepended a "g" so, you have instead: glibtool and glibtoolize. ==> Summary 🍺 /usr/local/Cellar/libtool/2.4.6_1: 70 files, 3.7M ==> Installing imagemagick dependency: jpeg ==> Downloading https://homebrew.bintray.com/bottles/jpeg-8d.sierra.bottle.2.tar.gz ######################################################################## 100.0% ==> Pouring jpeg-8d.sierra.bottle.2.tar.gz 🍺 /usr/local/Cellar/jpeg/8d: 19 files, 708.2K ==> Installing imagemagick dependency: libpng ==> Downloading https://homebrew.bintray.com/bottles/libpng-1.6.25.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring libpng-1.6.25.sierra.bottle.tar.gz 🍺 /usr/local/Cellar/libpng/1.6.25: 25 files, 1.2M ==> Installing imagemagick dependency: libtiff ==> Downloading https://homebrew.bintray.com/bottles/libtiff-4.0.6_2.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring libtiff-4.0.6_2.sierra.bottle.tar.gz 🍺 /usr/local/Cellar/libtiff/4.0.6_2: 261 files, 3.4M ==> Installing imagemagick dependency: freetype ==> Downloading https://homebrew.bintray.com/bottles/freetype-2.7.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring freetype-2.7.sierra.bottle.tar.gz 🍺 /usr/local/Cellar/freetype/2.7: 61 files, 2.4M ==> Installing imagemagick ==> Downloading https://homebrew.bintray.com/bottles/imagemagick-6.9.6-2.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring imagemagick-6.9.6-2.sierra.bottle.tar.gz 🍺 /usr/local/Cellar/imagemagick/6.9.6-2: 1,465 files, 22.5M
|
安装好以后,进入需要转换格式的贴图文件目录,运行如下命令,即可一键转换:
1 2 3 4
| for file in *.dds do convert "$file" "$(basename "$file" .dds).png" done
|
用 Cinema 4D、Maya 等导入 OBJ 文件,就可以正常贴图了。
我们也可以使用 identify
命令,来看看 ImageMagick
支持哪些文件格式,我这里只关心 DDS
的处理,好像新版本的已经支持 DDS
的读写了:
1 2 3 4
| $ identify -list format | grep DDS DDS* DDS rw+ Microsoft DirectDraw Surface DXT1* DDS rw+ Microsoft DirectDraw Surface DXT5* DDS rw+ Microsoft DirectDraw Surface
|
参考:Convert DDS to PNG using linux command line