3D空間内でHPの描画などにDrawBillboard3Dを用いてみました。
敵のモデルを描画するタイミングでHPの画像も描画してみているのですが、例えばMap上で山を挟んで自分と敵が居る場合に
敵のモデルは見えないが、HPのバーは見えてしまう状態となってしまっております。
ステージよりHPを後に描画しているせいなのですが、MV1DrawModelの様に画像もカメラを考慮して
障害物より先に画像があれば見えなくなる様に描画するにはどの様にしたら宜しいでしょうか?
・力技としてカメラからHpバーの位置までレイを飛ばして接触が無ければ描画というのを考えてみましたが、かなり処理が重そうで実用性は無いと感じます。
・板ポリゴンを用意し、それにテクスチャとしてHPバーの画像を貼り付ける。このモデルをMV1DrawModelで通常通り描画する。
ビルボード描画の自作?ですが、これが果たして正しいのか自信がないため、より良い方法をご存知の方に教わりたい一心です・・・m(_ _)m
3D空間のビルボード描画について
Re: 3D空間のビルボード描画について
なぜ処理が重いと考えているのでしょうか。coco さんが書きました: ・力技としてカメラからHpバーの位置までレイを飛ばして接触が無ければ描画というのを考えてみましたが、かなり処理が重そうで実用性は無いと感じます。
例えば敵に攻撃が当たるかどうかの判定でもそのような処理は必要なわけで、その程度で重いとなると何もできないんじゃないかと思いますが、
その方法だと遠くの敵のHPバーは小さくなりますがそれは良いのでしょうか。coco さんが書きました: ・板ポリゴンを用意し、それにテクスチャとしてHPバーの画像を貼り付ける。このモデルをMV1DrawModelで通常通り描画する。
ビルボード描画の自作?ですが、これが果たして正しいのか自信がないため、より良い方法をご存知の方に教わりたい一心です・・・m(_ _)m
Re: 3D空間のビルボード描画について
環境が書かれていませんが、DXライブラリでしょうか。
DXライブラリの仕様は知りませんが、ビルボードはZバッファの対象にされていないんですかね。Zバッファを有効にして描画していますか?
DXライブラリの仕様は知りませんが、ビルボードはZバッファの対象にされていないんですかね。Zバッファを有効にして描画していますか?
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
糸冬
――――――――
制作・著作 NHK
――――――――
制作・著作 NHK
Re: 3D空間のビルボード描画について
>>h2so5さん
通常のビルボード描画に比べるとレイを飛ばしてポリゴンと衝突判定を行うため、重くなると考えておりました。
攻撃判定で同様の処理を行ってますから、描画で行った所で今はまだ処理落ちが発生するとかはありません。
しかしこういうものは積もり積もって結果として処理落ちに繋がっていくと考えておりますので、どの処理でも
自分としてはなるべく軽い処理を優先してます。
距離によるサイズ変化は確かに発生してしまいますね・・・。
一応今DrawModiBillboard3Dを用いて距離によるサイズ変化への対応を行っておりましたので、
もし板ポリゴンの方法が採用されるのであれば同様にMV1SetScaleで距離に応じたサイズ変化を行おうかと考えておりますが
如何でしょうか・・?
>>nullptr
すみません、DXライブラリとC++です。
リファレンスから
DrawSphere3D, DrawCapsule3D, DrawCone3D, DrawPolygon3D, DrawPolygonIndexed3D の3D図形描画関数で描画処理をする際にZバッファを使用するかどうかを設定します。
一応試してみたのですが、どうもビルボードは該当しない?様です。
通常のビルボード描画に比べるとレイを飛ばしてポリゴンと衝突判定を行うため、重くなると考えておりました。
攻撃判定で同様の処理を行ってますから、描画で行った所で今はまだ処理落ちが発生するとかはありません。
しかしこういうものは積もり積もって結果として処理落ちに繋がっていくと考えておりますので、どの処理でも
自分としてはなるべく軽い処理を優先してます。
距離によるサイズ変化は確かに発生してしまいますね・・・。
一応今DrawModiBillboard3Dを用いて距離によるサイズ変化への対応を行っておりましたので、
もし板ポリゴンの方法が採用されるのであれば同様にMV1SetScaleで距離に応じたサイズ変化を行おうかと考えておりますが
如何でしょうか・・?
>>nullptr
すみません、DXライブラリとC++です。
リファレンスから
DrawSphere3D, DrawCapsule3D, DrawCone3D, DrawPolygon3D, DrawPolygonIndexed3D の3D図形描画関数で描画処理をする際にZバッファを使用するかどうかを設定します。
一応試してみたのですが、どうもビルボードは該当しない?様です。