3D空間に大量に描画したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
早苗明紗
記事: 9
登録日時: 9年前
連絡を取る:

3D空間に大量に描画したい

#1

投稿記事 by 早苗明紗 » 9年前

初めて質問をさせていただきます、早苗明紗と申します。(当方の作成しておりますシミュレーターのイメージキャラクターの名前です。)

DXライブラリを利用させていただいてオリジナルシミュレーターの開発を始めました。

今回質問させていただきたいのは、タイトルの通り3D空間への大量描画に関してです。
現在は規模を小さくしておりますが、それでも100*100個ほど描画しなければなりません。
それが完成したら次は100*100*100個へと拡張していきたいと考えております。

しかし、単純に3Dモデルを一つ用意してそれをMV1DuplicateModelでコピーして利用するとモデルハンドルの上限が将来的に超えてしまいます。
そこで次に考えたのがDXライブラリの基本図形描画関数を用いることです。
モデル自体はモデルの向いている向きが分かればかまわないため、円錐を描画することにしました。
予定していたことは一応できたのですが、非常に重くなってしまい
Windows7 Intel Corei5 M480 2.67GHz(i5第一世代)
で少し重く感じます。
上記のPCよりもスペックの低いPCでも動くことを目標としていますので何とかして軽量化しないといけないのですが
どのようにしたらよいのでしょうか。

なお、ビルボードのような画像描画は3次元的な「向き」を表現できないと判断し利用していません。

よろしくお願いします

アバター
usao
記事: 1887
登録日時: 11年前

Re: 3D空間に大量に描画したい

#2

投稿記事 by usao » 9年前

オフトピック
円錐ではく,三角形2個(円錐の円の側から見たときに + に見える形に配置)
とかにすれば 多少軽くなったり?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 3D空間に大量に描画したい

#3

投稿記事 by softya(ソフト屋) » 9年前

同じモデルを向きと場所を変えて描画するだけなら、座標と角度変えてDrawModelを繰り返せばよいだけです。
MV1DuplicateModelは必要ありません。
ただ、100*100*100個は重いかもしれませんね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

早苗明紗
記事: 9
登録日時: 9年前
連絡を取る:

Re: 3D空間に大量に描画したい

#4

投稿記事 by 早苗明紗 » 9年前

usao さんが書きました:円錐ではく,三角形2個(円錐の円の側から見たときに + に見える形に配置)
とかにすれば 多少軽くなったり?
時間は計測していませんが、体感的にはあまり変わりませんでした。
softya(ソフト屋) さんが書きました:同じモデルを向きと場所を変えて描画するだけなら、座標と角度変えてDrawModelを繰り返せばよいだけです。
MV1DuplicateModelは必要ありません。
ただ、100*100*100個は重いかもしれませんね。
現在の100*100では円錐描画よりも重くなりました

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 3D空間に大量に描画したい

#5

投稿記事 by h2so5 » 9年前

ソフトウェアの特性からして、DXライブラリを使うのはあまりオススメできません。
同じモデルを大量に描画する場合はGeometry Instancingという方法があるのですが、DXライブラリでは無理だと思います。

早苗明紗
記事: 9
登録日時: 9年前
連絡を取る:

Re: 3D空間に大量に描画したい

#6

投稿記事 by 早苗明紗 » 9年前

ありがとうございます。
DirectXの勉強をしてみますが、やはりDXライブラリにも実装されているとありがたいですね。
DXライブラリのほうに要望として出してみるだけ出してみようと思います。

みなさん、ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る