トップページ > 過去ログ > 記事閲覧
MV1DuplicateModelで複写する利点
名前:埴輪 日時: 2011/01/18 22:47

MV1DuplicateModel()の解説で  因みに画像ハンドルのように一つのモデルを使用して 一体描画する度に位置や再生するアニメーションなどを切り替え、 再度描画するといったことをすることでモデルハンドル一つで 複数のキャラクターを表現することは可能ですが、 2Dの画像一枚と違い3Dモデルには色々な状態情報が含まれていますので、 キャラクターの数だけモデルハンドルを作成したほうが速度的には有利です。 とありますが、いずれにせよすべてのモデルに対し 毎フレームMV1SetPositionをしています。 複写すればその分かえってメモリを消費するだけのような気がするのですが、 やはり複写したほうがよいのでしょうか。 またそうだとすれば、それはなぜなのでしょうか。 ふと疑問に思ったことなので、急ぎではありませんがよろしくお願いします。

Page: 1 |

Re: MV1DuplicateModelで複写する利点 ( No.1 )
名前:管理人 日時:2011/01/23 23:10

MV1DuplicateModel を使う利点は以下の条件に片方でも該当する場合です 1.同じモデルを使うキャラクターがそれぞれ違うアニメーションをする 2.同じモデルを使うキャラクターが静止していることがある 逆に、上記二つに該当しない場合は埴輪さんのお察しの通り 使用メモリが増えるだけでデメリットしかありません ( 飛翔する銃弾のように常に座標が変化しつつ且つアニメーションも再生しないようなものは これ( Duplicate をしてもメモリが無駄になるだけ )に該当します ) 上記の1に該当する場合で同じモデルハンドルを使いまわす場合は それぞれ違うアニメーションの状態を一つのモデルハンドルで表現するために 各モデルの描画の度に MV1AttachAnim をする必要があり、この関数が結構重いので その分だけ Duplicate したハンドルを使う場合より処理負荷が高くなります 上記の2に該当する場合で同じモデルハンドルを使いまわす場合は 「座標が変化しなければ描画の前に行われるモデルのフレームの 最終状態( 位置・回転・スケール )がどうなっているかの再計算を行わなくて良い」 という「処理が軽くなる要素」を潰してしまうので、その分 Duplicate した場合より 処理が重くなります
Re: MV1DuplicateModelで複写する利点 ( No.2 )
名前:埴輪 日時:2011/01/23 23:29

わかりやすい回答ありがとうございます。 わかりました。そのように修正させていただきます。
Re: MV1DuplicateModelで複写する利点 ( No.3 )
名前:クラスクラス 日時:2011/01/23 23:55

私も参考になりました、ありがとうございます。 >上記の2に該当する場合で同じモデルハンドルを使いまわす場合は >「座標が変化しなければ描画の前に行われるモデルのフレームの >最終状態( 位置・回転・スケール )がどうなっているかの再計算を行わなくて良い」 これはプログラミング上のテクニックと考えていいですよね?
Re: MV1DuplicateModelで複写する利点 ( No.4 )
名前:管理人 日時:2011/02/05 23:09

はい、高速化の手段の一つとして考えていただければと思います

Page: 1 |