強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Appleの公式サイトにテクスチャ圧縮のサンプルが追加されたみたい

最近、iPhone Dev Centerにログインしていないなぁ。と思い、久しぶりにログインしたところ12/8、9にサンプルが追加されていたみたいです。
※今までにリリースされたものも一部アップデートされたものも有るみたいです。

その一つが「テクスチャ圧縮」についてのサンプルだったので自分は既に検証済みですが折角なのでビルドしてみました。

PVRTextureLoader
https://developer.apple.com/iphone/library/samplecode/PVRTextureLoader/index.html

そこでちょっとハマり箇所が有ったので解説しておきます。

(2009/03/26 修正)
ハマり箇所としてはPVRTCフォーマットのファイル(圧縮されたテクスチャファイル)は付属しておらず自分で生成しないといけないというところです。
ビルド時の前処理で生成している様です。詳しくは「グループとファイル」「ターゲット」「PVRTextureLoader」「Encode Images」をダブルクリック、「一般」タブを参照。

まぁ、以前解説したこちらのエントリーを参照して貰えば生成できると思いますが念のため解説しておきます。

1. サンプル解凍後のフォルダ内の Images フォルダへ移動。
2. そのフォルダ内で以下のシェルスクリプトを作成し、 pvrtc.sh という名前で保存。

#!/bin/sh

TEXTURE_TOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/texturetool
cmd="${TEXTURE_TOOL} -e PVRTC --channel-weighting-linear --bits-per-pixel-2 -p ${1%.*}_linear2bpp.png -o Brick_2.pvr -f PVR ${1}"
echo ${cmd}
${cmd}

cmd="${TEXTURE_TOOL} -e PVRTC --channel-weighting-linear --bits-per-pixel-4 -p ${1%.*}_linear4bpp.png -o Brick_4.pvr -f PVR ${1}"
echo ${cmd}
${cmd}

cmd="${TEXTURE_TOOL} -m -e PVRTC --channel-weighting-linear --bits-per-pixel-2 -p ${1%.*}_mipmap_linear2bpp.png -o Brick_mipmap_2.pvr -f PVR ${1}"
echo ${cmd}
${cmd}

cmd="${TEXTURE_TOOL} -m -e PVRTC --channel-weighting-linear --bits-per-pixel-4 -p ${1%.*}_mipmap_linear4bpp.png -o Brick_mipmap_4.pvr -f PVR ${1}"
echo ${cmd}
${cmd}

3. そのスクリプトに実行権限を追加し、以下の様に実行。

./pvrtc.sh Brick.png

PVRTCフォーマットのファイルの作成方法は以上となります。後は普通にビルドすれば実行できます。

PVRテクスチャの読み込みのサンプルとしてだけでなく、「ミップマップ」や「テクスチャの拡大・縮小時のフィルタ」の品質比較用として使える中々、良いサンプルでした。