正方形ではない画像をテクスチャとしてアップする時の注意

Haruka

2014年12月11日 02:16


 セカンドライフ技術系 Advent Calendar 2014 - Adventar、二つ目の記事です。割と基本的なことでご存知の方も多いかとは思いますが、画像ファイルをテクスチャとしてアップロードするときの注意点など。

 ご存知のとおり、セカンドライフのテクスチャは任意の画像ファイルをアップロードして作成することができますが、画像のサイズは256px×256pxや512px×1024pxなど、辺の長さが2の累乗のピクセル数に限られます。このことを踏まえて、写真のアップロード時にちょっとだけ気を配ると、よりきれいなテクスチャが得られます。
 まず避けたいのが、上記のサイズになっていない画像をアップロードすること。アップすると画像が強制的に上記のピクセル数にリサイズされてしまいます。オブジェクトに貼るシームレスの模様テクスチャなどは、最初から512×512などの正方形の画像として作成するようにしましょう。

 でも、下の写真のように、スナップショットなどでアスペクト比が4:3や16:9の写真をテクスチャにしたい場合は?



 この場合も、アップロードする画像自体は辺の長さが8の倍数の正方形画像として作成します。PhotoshopやGimpなどの画像加工ソフトで、画像の解像度が上記の数値になるように拡大または縮小して保存し、その画像をアップロードするのです。
 そしてインワールドではボックスなどの表面に貼り付け、そのボックスの縦横の比率をアスペクト比に合わせれば、元の画像をそのまま拡大または縮小した状態で表示されるというわけです。

 さらに、この元画像を作成するとき、あらかじ長辺のピクセル数をアップロードするサイズで作成しておけば、リサイズが発生するのは短辺のほうだけで済みます。4:3のスナップショットをアップロードするなら、最初から1024×768として撮影すれば、画像加工は縦の768を1024に拡大するだけでいいので、リサイズの影響を少なく抑えることができるのです。

 ではなぜこの場合、長辺を固定して短辺を加工するのでしょう?短辺を1024にして長辺を縮小するのではだめなのでしょうか?
 
 理由のひとつは、もともと一般的なアスペクト比(4:3、16:9など)は長辺のピクセル数が2の累乗になっており、そちらを基準としたほうが計算がしやすいこと。そしてもうひとつは、セカンドライフ内でのテクスチャ引き延ばしを避けるためです。

 長辺を固定とした場合、画像加工ソフトで短辺を引き伸ばすことになります。この時、画像加工ソフトは拡大が自然に見えるように計算して引き伸ばされた隙間を自動で補完してくれます。そして引き伸ばされた短辺はインワールドで再度縮小され、元に戻ります。

 一方、短辺を固定してしまうと、画像加工ソフトは長辺を縮小する際に間のピクセルを間引いてしまいます。そしてインワールドで再度引き伸ばされますが、SLのレンダリングエンジンはテクスチャを引き伸ばしても画像加工ソフトほど精巧な補完はしてくれないため、引き伸ばされた長辺の方向にぼやけた感じになってしまうのです。

 テクスチャをアップロードする場合はなるべくSL側でのリサイズが発生しないようにする。リサイズされる場合は拡大よりも縮小が発生するようにする。この原則を覚えていれば、アップロードする画像のサイズを決めるのに役立ちます。

 とはいえ、上記のように気を使ってテクスチャを作成するのは、商品の作成時やフォトコン応募時など品質にこだわりたい場合くらいでしょう。普段遊んでいて撮影したSSを他の人に配る場合などは、あまり深く考えずに適当な大きさのままアップロードしてしまってもそんなに問題にはならないと思います。場合に応じてうまく使い分け、セカンドライフのものづくりを楽しんでください。
Creation