前回は「約一年ぶりの更新である」などと書いていたのだが、今回は
実に4年ぶり
の更新である(笑)
いや、もう更新するつもりなど全く無かったのだが、他に適切な書く場所が無かったのでここにメモ代わりに書いてるだけである(ぉぃ)。
先日、サウイーさんの名古屋フォトシーナリの位置修正をするために、久しぶりに TerraBuilder の最新版(といっても最新版は去年のだが)を使ったのであるが、これ動作がすごく変っすよ。
まず、プロジェクトを新規作成した瞬間に勝手にコンパイルが始まる。やめれー。後から補正するつもりなのにぃ。
そして、テクスチャが正しく変換されない。何度プロジェクトの設定を見直してもだめだ。しばらく理由がわからなかったのだが、今日になって,やっとわかった。TerraBuilder は、resample がはき出した BMP ファイルを FS Texture Converter に渡して DXT1 形式に変換するのだが、kの直前に、このビットマップを別のディレクトリに動かす。このとき "0*.bmp" というワイルドカードを使ってファイルをコピーしているのだが、日本付近のビットマップはファイル名が 1 から始まっているので、ビットマップがコピーされないのだ(ぉーぃ)。
まあ、これは手でファイルをコピーしてやればいいので、まあなんとか回避できる。だが、もう一つ致命的な問題があるのだ。それは
テクスチャの解像度の解釈が間違っている
という点だ。
TerraBuilder のドキュメントを見ると、テクスチャの解像度は 4.8m/pixel でなければならないとなっている。この解像度と異なる値でテクスチャを処理しようとすると、文句を垂れるのだが、これは無視しても一応作業を進めることができる。だが、生成された .inf ファイルは解像度 4.8m/pixel を前提としたパラメータを吐く(具体的には CellXdimensionDeg, CellYdimensionDeg の2つ)ので、生成されるシーナリのサイズが全然合わないのだ。
まあ、そういうことならおとなしく 4.8m/pixel の解像度にテクスチャをリサイズしてやればいいような気もするのだが、実は
4.8m/pixel の解像度では必ずしも必要な品質が得られない
のである。
南北方向については確かに 4.8m/pixel で合っているのであるが、東西方向は実は違う。東西方向の正しい解像度は 6.4 * cos(緯度) m/pixelである。つまり、高緯度になるほどより高い解像度を要求されるのである。
東京(北緯 35度付近)だと 5.2m/pixel なのでまあそれほど問題はないが、稚内(北緯 45度)などになると 4.5m/pixel なので、4.8m/pixel では情報量が足りなくなってしまう。
この辺の議論は、avsim.com の TerraBuilder Forum の Optimal Texture Resolution? のスレッドを参照されたい。
とりあえず仕方がないので、当面はTerraBuilder が出力した .inf ファイルを手で修正してしのぐしかなさそうだ。TerraBuilder のソースが公開されていれば直しようもあるのだが、、、