プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
テクスチャアトラス縮小
統合したパターンテクスチャ(縮小画像)
16パターンの画像を1枚の画像に統合して生成するようパターンテクスチャ自動作成ツールを改修した。



◎地形変更テスト

G案改修後、ゲーム中に地形を変更するテストをしてなかったので、実施しました。

自作地形28   地形変更テスト
地形変更前(左図)と地形変更後(右図)

狭域、広域に関わらず約1秒で地形が変化します。
これで火計や洪水による地形変化もバッチリです!



◎そしてH案へ

「そろそろXSIもやらないと」と思いつつ、地形プログラム未完成のままでは落ち着かないので、結局H案(G案&F1案)に取り組むことにしました。



◎パターンテクスチャの統合

パターンテクスチャ自動作成ツールを改修して、パターンテクスチャを統合しました(冒頭図参照)。
2048×2048の中に、16パターン埋め込みました。

画像生成速度を考慮したプログラミングを試みたのですが、透明度情報を持つピクセルのGetPixel/SetPixelは癖があってなかなか思うようにいかず、結局ベタなプログラムになりました。

頻繁に実行するツールじゃないし、ベタでも1分かからないので、少しぐらい待つことにします。



◎大失敗!

パターンテクスチャが準備できたので、いよいよメインプログラムの改修です。
テクスチャ座標をセットして……できました!

テクスチャアトラス失敗01

ぐはっ…酷いもんですね。何が悪かったのでしょうか?パターン判定もテクスチャ座標値も異常は見当たらないようですが…うん?テクスチャ座標?

しまった~!!!

パターンテクスチャ方式をテクスチャアトラスに対応させるには、テクスチャ座標データを4倍に増やさないといけないのでした!昔それに気付いてテクスチャアトラスの採用見送ったの、すっかり忘れてました~!!!

ああ、今の自分のバカさ加減に呆れてしまいます(><)



◎GPUのメモリ空間

テクスチャ座標を4倍にしたら、メモリはどれほど圧迫されるのでしょうか?

現在の描画頂点数は51万だから、今後の増分を考慮して百万頂点と仮定すると、1頂点あたり3byte増えるから、3MB増える計算になります。

GPUのメモリ空間は未調査ですが、全体で128MB以上持っていると仮定すれば、多分大したことないよね?
よ~しこのまま続行だ~!



◎4種類のテクスチャ座標の使い分け

というわけで、まず頂点フォーマットを改造して、4種類のテクスチャ座標をセットしました。

0番:頂点右上に存在するパターンテクスチャの左下座標
1番:頂点左上に存在するパターンテクスチャの右下座標
2番:頂点右下に存在するパターンテクスチャの左上座標
3番:頂点左下に存在するパターンテクスチャの右上座標


ところで、4種類のテクスチャ座標を用意したものの、シェーダーは何を頼りに使い分ければ良いのでしょうか?テクスチャ番号やパターン番号では判断基準にならないし…う~む。

…そうか!インデックス番号ですね!
現在は、1マスにつき2ポリゴン(=6頂点)を

(始点)→右→右上、(始点)→右上→上

の順番で描画しているので、シェーダー内部で頂点描画順序をカウントし、順番の位置に相当するテクスチャ座標を使用すれば良さそうです。つまり、

0番→1番→3番→0番→3番→2番

上記の順番でテクスチャ座標を使用すれば良い、ということです。



◎均一のシェーダー入力

…で、プログラミングした結果が、こんな感じです。

テクスチャアトラス失敗02

HLSLサンプルコード

パターンがぐちゃぐちゃなのは、HLSLのcounter変数が常に0→1だからです。

頂点を描画する度に、カウントアップして欲しいのですが、externやsharedで宣言しても、定数レジスタを明示しても、毎回初期化されてしまうようです。まいったな~。


HLSLマニュアルを確認したら、「均一のシェーダー入力」という項目に「均一データは、シェーダーの複数の実行に対して一定です。」と書かれていました。
グローバル変数って、そういうものだったんですね…。



◎次回予告

パターンテクスチャ方式を維持しつつ、テクスチャアトラスを導入するのは、予想以上に難しいですね。

次回で決着するといいなぁw

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)



copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。