2008-10

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Effect.Techniqueのインスタンス呼び出し化(その2)

昨日の続きです。EffectのTechnique指定を文字列による指定から、あらかじめEffectTechniqueクラスにインスタンスを作っておくことで切り替え時の負荷を軽減できるのですが、具体的にはどのぐらい速くなったのかを軽く検証してみました。
現在1フレームで約130個のメッシュを描画しています。メッシュごとにテクニックを指定しているので、これがそのまま指標になるかと思います。同じテクニックを指定した場合の負荷の違いはあるかもしれませんが、今回はスルーさせていただきます。
で、この130のメッシュを描画するのに掛かっている時間ですが、文字列指定の場合は13.1ミリsecなのに対し、インスタンス指定の場合は12.8ミリsecでした。0.3ミリsecは大きいですね~。EffectParameterは検証していませんが、合わせて変更するとかなりの差が出るんじゃないでしょうか。しかし13ミリsecって…。8割描画でもってかれてのか~そんなもんなんでしょうか??
スポンサーサイト

Effect.Techniqueのインスタンス呼び出し化

ここ2日ほどEffect.Techniqueの文字列指定からインスタンス呼び出しに移行作業をしていましたのですが、なかなかうまく動いてくれなくて困っていました。エフェクトパラメーターの方はすでに完了していたので、後はテクニックの方だけなんですが…う~ん。MSのサンプルはシャドウマップのものを参考にしていたのですが、同じようにやっても不思議なエラーがでて悩まされました。Winだと問題なく動作するのですが、360だと起動せず、微妙なところでエラーが出ます(Viewマトリクス指定時に範囲を超えているうんぬんとか言われます)。でも、どう考えても行列には問題がなさそうです。サンプルではエフェクトは1つだけ存在し、複数のメッシュで使いまわしていました。そのため、テクニックの指定にはそのエフェクトから作ってインスタンスで問題なく動作していました。ですが私の場合、テクスチャーのアセット名を各エフェクトに設定しておくために、エフェクトをメッシュ数分クローンしています(BasicEffectと同じですね)。そのためテクニックのインスタンスも同じ数だけクローンする必要があったようです。Effect.Parameterも同じようにやっていたのだから、もっと早く気づけば良かったのですが、なかなか時間を取られてしまいました。
んで、速くなったのかというと…う~ん、あまり実感ないですね…。ヘルプではかなり高速化が期待できるようなことが書いてあったのですが、どちらかというとエフェクトパラメーターの方が効果大きいのかもしれませんね。まぁ、塵も積もればなんとやら、ということで…。

モーションの方はゴブリンさんが基本モーション系が終わったので、次はプレイヤーの基本モーションに入ります。プレイヤーは1セット作ったら、各武器ごとの基本モーションは流用する予定です。そのためには、モーション作業時に両手にいろんな武器と盾を持たせて、それらが体や地面にめり込まないように作らないといけません。これが結構面倒くさいんですよね…。それにファイルサイズがヤバイです。現状のゴブリンはアスキー形式ではありますが、モデルとモーションだけで3M近くあります。プレイヤーはもっと大きくなってしまうので、モーション出力時にもっとキーフレームを減らさないといけないのかも。

NEW ENTRY «  | BLOG TOP |  » OLD ENTRY

プロフィール

Karu_gamo

Author:Karu_gamo
<メールアドレス>
karu_gamo#hotmail.co.jp
#を@に置き換えてえてください。

<自分リンク>
かるがも研究所【新】
YouTubeチャンネル
公開素材置き場
仕様書
旧ブログ(見るとこないです)
管理者ページ

リンク

YouTube動画

FC2カウンター

カテゴリー

Twitter

 

月別アーカイブ

RSSフィード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。