PVRTCのテクスチャコンバート

Apple系の開発リソースにはPVRTC形式のテクスチャがあるそうです。

これは圧縮されたテクスチャのフォーマットで描画の最適化に一役買ってくれそうな気がしたので使ってみました。

というか普通にpngのテクスチャをボカスカ使ってたら簡単に処理落ちしてしまったので色々と調べてたら行き着いたのがこれです。


コンバートの仕方や読み込みなどは
下記のページを参考にさせて頂きました。


・解説など詳しく読み込みのクラスも参考にさせて頂きました。
http://webos-goodies.jp/archives/using_compressed_textures_in_iphone.html


・コンバートの方法など参考にさせて頂きました。
http://ameblo.jp/xcc/entry-10298104084.html

http://d.hatena.ne.jp/nakamura001/20081229/1230557939


そしてXCode上でシェルスクリプトを実行してPVR形式の作成をコンパイルと同時に自動化してしまおうかなと思いスクリプト作成しました。

フォルダ内のpng形式の物を全てpvrコンバートするスクリプトを作成してみました。


TEXTURE_TOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/texturetool
SRC_FILE=$SRCROOT/Data/Texture/PNG
DEST_FILE=$SRCROOT/Data/Texture/PVR

cd $SRC_FILE

#pngのテクスチャが見つかり続ける限りコンバートを行う
for i in *.png ;
do
	#拡張子変換
	echo $i
	ext_change=`echo $i | sed -e s/.png/.pvr/`

	#パスに変更
	SRC_FILE_NAME=$SRC_FILE/$i
	DEST_FILE_NAME=$DEST_FILE/$ext_change

	#pngファイルに更新があればコンバートを行う
	if test ! "$DEST_FILE_NAME" -nt "$SRC_FILE_NAME" ; then
		$TEXTURE_TOOL -m -e PVRTC --bits-per-pixel-4 -o "$DEST_FILE_NAME" -f PVR "$SRC_FILE_NAME"
	fi

done


上記使用する場合はフォルダパスなどを調整して下さい。


単純に元の画像から圧縮されたというのもありますが、
結果めちゃくちゃ起動が早くなりました。