プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
自作地形17
開発中の自作地形
パターンテクスチャを実装したが、赤い部分(複合パターン)は未対処。パターンを描き込めばもっと綺麗になる。



◎最初の誤算

以前テクスチャのパターン数を計算した時は6枚(3頂点同じパターンを追加すると8枚)でした。
実際には、ポリゴンの半分は逆向きなので、6枚のパターンテクスチャを反転/回転させて対応するつもりでしたが、これが出来ないことに気付きました。

通常は、頂点データのテクスチャ座標を変更すれば反転/回転できますが、今回は、頂点データのテクスチャ座標を複数のポリゴンで共有しているため、テクスチャ座標は変更できません。

メモリ内のテクスチャイメージを反転/回転させるという回避策もできなさそうです。



◎大きな誤算

結局、パターン数を増やして対応することにしました。パターンテクスチャ作成プログラムを改造し、地表、川、道で16パターン×3種類=48枚を作成しました。

パターンテクスチャ修正前

パターンテクスチャをXNAに登録し、メインプログラムを改修しようとしたら、これでは足りないことに気付きました。
今回は地形が3種類ありますが、3種類の地形を複合したパターンが不足しています。

さらに、頂点数が3つから4つに増えたため、今後地形種別を増加すると、パターン数が相当増えることになります。
いくらパターン数の上限が無くなったとは言え、このままではさすがにまずい気がします。



◎パターンを減らせ!

全ての組み合わせを無条件で登録すると、ものすごい枚数になるので、パターンの組み合わせに制限を設けることにしました。

・地表と他の地形1種類の組み合わせのみ登録することを原則とする
・地表以外の地形を複数組み合わせる場合は、個別に管理制御する

問題は、カラーマップを注意深く作らない限り、上記後者のケースは自動的に発生してしまうので、その際にどのテクスチャを選択するか、ですね。
デバッグ用に赤色テクスチャを登録しておき、例外パターンは全て赤色で表示して、目視確認しながら個別に潰していくことにします。



◎4次元配列化

4頂点の色の組み合わせから、テクスチャパターンの種類を判別しないといけないわけですが、従来のやり方だとパターン数が多すぎて扱い切れません。
プログラムも複雑で分かり難くなってきたので、思い切ってテクスチャとインデックスバッファの管理配列をそれぞれ4次元配列化しました。

texturePattern[i1, i2, i3, i4]
vertexIndicesStartIndex[i1, i2, i3, i4]
vertexIndicesPrimitiveCount[i1, i2, i3, i4]

forループ内の注目頂点を基準とした場合、i1=上、i2=右上、i3=(注目頂点)、i4=右、に該当させています。

これによってソースが驚くほどシンプルになりました。以前のソースは凄い状態だったので…(^^;



◎パターンテクスチャの実装

少々苦戦しましたが、何とか表示にこぎつけました!
(冒頭図参照)

赤い部分は川と道が混在した所です。いずれ個別パターン等で対応しますので、今は気にしないでください。

え?全然綺麗じゃない?

それは用意したテクスチャパターンがまだ四角形のままで、かつ地形モデルを1つに統合しているからです。テクスチャパターンをきちんと描き込めば、綺麗になります。

それと、滅茶苦茶重いです。飛行テストすると、過去最悪の遅さです。うわ~CPUが2つとも80%超えてる(汗)

う~ん…速度については後で調べるとして、とりあえず見栄えについて試したいことがあります。



◎地表モデルの分離

以前は地表モデルと地形種別モデルの2種類を想定していました。パターンテクスチャは当時のままなので、試しに当時の状態に戻してみましょう。

地表モデル   地形種別モデル
地表モデル(左図)と地形種別モデル(右図)

自作地形18
上記2つを統合した地形

これが当時目指していた状態ですね。川や道が細くなって繊細な感じになりました。

速度が落ちると思ってましたが、地形種別モデルのポリゴン数が少ないたためか、分離前よりも遅くなった感じがしません。速度的な問題がないなら、とりあえずこの状態で継続しましょう。



◎パターンの修正

これだけだと、パターンテクスチャを実装した効果があまり感じられないので、パターンテクスチャを少し修正することにしました。

パターンテクスチャ修正後   自作地形19
修正後のパターンテクスチャ(左図)と適用した地形(右図)

う~む…矢印のあたりをよく見るとカクカクが少し緩和されたのがわかりますが、全体的な印象はさほど変わらないですね。さらなる改善が必要でしょう。



◎今後の課題

・赤い地形(複合パターン)の対処
・パターン判定の見直し
・パターンテクスチャの一括修正
・地形作成速度向上
・地形描画負荷調査&速度向上
・メモリ消費を抑えてカラーマップの解像度を上げる
・カラーマップ修正
・地形種別の追加
・パターンテクスチャの手描き修正

地形関連だけでもこんなに増えちゃいました(^^;

地形プログラムは今月中に完了させるのが目標なので…
ペース上げるぞ~!



◎次回予告

赤い地形が目立つので、先に複合パターンから対処します。

スポンサーサイト

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

コメント

コメントの投稿


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

トラックバック


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



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