Re: 指定TriangleListのマテリアルインデックスの取得 ( No.1 ) |
- 名前:管理人 日時:2018/04/23 01:28
|
Re: 指定TriangleListのマテリアルインデックスの取得 ( No.2 ) |
- 名前:gufo(解決) 日時:2018/04/24 19:50
迅速なご対応をありがとうございます。
希望していた機能の動作を確認しました。
今後も宜しくおねがいします。
|
Re: 指定TriangleListのマテリアルインデックスの取得 ( No.3 ) |
- 名前:gufo 日時:2018/04/24 23:11
申し訳ありません。(解決)を付けてしまいましたが、これに関係して気づいたことがあるので質問させてください。
DX_MV1_VERTEX_TYPE_NMAP_1FRAMEのモデルをMV1DrawModel()で描画すると視錐台外のモデルはドローコールが呼ばれませんが
MV1DrawTriangleList()でTriangleList毎に描画すると視錐台外のモデルもドローコールが呼ばれます。
これは仕様通りの挙動でしょうか?(描画負荷軽減のためにMV1DrawTriangleList()でも視錐台カリングを有効にしたいです)
|
Re: 指定TriangleListのマテリアルインデックスの取得 ( No.4 ) |
- 名前:管理人 日時:2018/04/25 00:13
はい、仕様となります
可視判定の情報の最小単位はフレームなので、それ以下の単位であるメッシュやトライアングルリスト単体での
描画では可視判定は行いません
申し訳ありませんが CheckCameraViewClip や CheckCameraViewClip_Box などを使用して自前で可視判定を行ってください m(_ _;m
// 指定の座標がカメラの視界に入っているかどうかを判定する
// ( 戻り値 TRUE:視界に入っていない FALSE:視界に入っている )
int CheckCameraViewClip( VECTOR CheckPos ) ;
// 二つの座標で表されるボックスがカメラの視界に入っているかどうかを判定する
// ( 戻り値 TRUE:視界に入っていない FALSE:視界に入っている )
int CheckCameraViewClip_Box( VECTOR BoxPos1, VECTOR BoxPos2 ) ;
あと、負荷軽減という点ではトライアングルリスト毎に描画するより、メッシュ毎に描画したほうが高速なのですが、
何かトライアングルリスト毎で描画しなければならない事情があるのでしょうか? (・・
|
Re: 指定TriangleListのマテリアルインデックスの取得 ( No.5 ) |
- 名前:gufo 日時:2018/04/29 11:34
質問への回答有り難うございます。
そして返信が遅くなり申し訳ありません。
>>あと、負荷軽減という点ではトライアングルリスト毎に描画するより、メッシュ毎に描画したほうが高速なのですが、
>>何かトライアングルリスト毎で描画しなければならない事情があるのでしょうか? (・・
現在、モデルの移動速度を描画対象テクスチャに出力するために前フレームのローカルワールド行列を頂点シェーダに与えるというプログラムを作成しています。
そこで、頂点シェーダをVertexType毎に切り替える必要があると思ったのですが、
VertexTypeを調べる関数がMV1GetTriangleListVertexType()とTriangleList単位で取得するものだったので、
モデルのトライアングルリスト毎に頂点シェーダを切り替えながら描画するプログラムを作成しました。
|
Re: 指定TriangleListのマテリアルインデックスの取得 ( No.6 ) |
- 名前:管理人 日時:2018/04/30 01:38
ご返答ありがとうございます
なるほど、確かにオリジナルシェーダーを使用して描画する場合はトライアングルリスト毎に
描画を分ける必要がありますね・・・
疑問が解消されました、ありがとうございます m(_ _)m
|