過去の独りごち/独りごとはこちら
過去のJavaアプレットは
こちら

 

3/18 省力化の方針で

 地形のテクスチャ張りについて思案していました。

 まず、フィルタリングの方法ですが、これはアニソトロピックフィルタのお陰で何の憂いもありません。以前においては地形を表現する場合、特に遠景の表現が問題でした。バイリニアではモアレが酷い事になるし、トライリニアでは完全につぶれてしまい、と苦労が報われない事になっていたのですが、現在は4タップでもいいからアニソトロピックを導入するだけで、非常に美しい出力が得られます。

 フィルタリングはともかくとして、テクスチャの張り込み方法が問題です。僕のMetasequoiaの腕前の問題もありますし、UV座標のハンドリングというのは難しい。ポリゴンで背景も前景も作れる職人さんは凄いと痛感しました。

 ともかくウルティマよろしく地面のポリゴンを分割して、タイル張りのようにしていくと、ライトマップの適用時に困ったことになります。というのも、メタセコイアではUV座標を1組しか持てないので、 ポリゴンの表面に一意なテクスチャ座標が割り振られなくなると、正しくライトマップの焼きこみが出来なくなるからです。

 そういうわけで、安直ながら地面に一枚のテクスチャをべったり張り込むことにしました。地形の細かい修正には対応しづらくなるものの、Photoshopで作業ができるという大きなメリットが生まれます。むしろ、ライトマップを考慮しなくたってそうするのが面倒が無くて良いものです。地形メッシュの各頂点に対していちいちUVを指定しなくてはならないというのは非常に手間ですし…

 では、どのくらい解像度があれば地面をカバーしつつ、鑑賞に耐えうるのか、思案してみました。地形は100m四方で作り、画角45度(カメラ用語では写真の対角線上の角度ですが、SXLibでは画面の水平方向の角度です)に設定しています。

 

 まず、1024ピクセル四方。解像度の比較なので、縮小しては意味がありません。ので、珍しくクリックすると縮小前の画像が見れます。

 いまいちボケが激しいですね…。「妥協してこのくらい」という程度でしょうか?

 1024四方でこれですから、512四方では問題外でしょうね…。

 

 

 次に、2048ピクセル四方です。

 CPUキャラは空気が読めないので、こっちがスナップショットを撮っていても砲撃してきますが、それにもめげず撮影。スナップショットを撮る機能も付けてみました。Form.Canvasを使ってTBitmapを経由してTJPEGImageにアサインするだけという物凄い組み方になっています。Delphi万歳。

 やはりタイル張りに比べるとどうしてもボケが気になりますが、実際のゲーム中はカメラがぐりぐりと動きまくるので、このくらいなら我慢できる画質と言えるんじゃないでしょうか?

 Photoshopでテクスチャを描いてみました。石畳や草地などの素材はLemogからお借りしてきた物を使用しています。ありがとう、メルシー。Lemogはフランスのサイトだけあって、僕のショボい試験プログラムにも、芸術の都パリの高い薫りを運んでくれます。Lemogの管理人さんがパリ在住かどうかは知りませんし、幻想郷は日本にあるそうなんですが…

 ともかくPhotoshopで好きに描いたものが何でも貼れるというのは嬉しい事です。

 VRAMの容量を著しく圧迫することは想像に難くないんですが…32ビット2048x2048ピクセルかつミップマップ付きだと32メガ。まぁ、昨今のビデオカードなら問題ありますまい。

 

Taku Hayase(SANDMAN)

戻る