Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[2761] エッジ設定をしたオブジェクトの描画について / mqouser
[Question] Response
catmull-clarkのエッジ設定をしたオブジェクトが曲面化が無効になる簡易表示にしても、描画速度が遅いのですが、これは仕様なのでしょうか?
ローポリゴンであれば気になりませんが、数千ポリゴンになると簡易表示にしてもかなり重いです。
2012-10-13 00:03
[2763] Re: エッジ設定をしたオブジェクトの描画について / Administrator
情報がいろいろ不足していて何とも言いようがないので、
・使用バージョン
・使用環境(OS、CPU、ビデオカード)
・表示モード(Direct3D、OpenGL、ソフトウェア)
・Catmull-Clarkのみなのか、曲面タイプ1/2ではどうなのか
・何か副作用を引き起こすプラグインを入れていないか
 (別の言い方をすればプラグインをすべて外すとどうなのか)
・他のDirect3D/OpenGLなどを使っているソフトの動作はどうか
・その他特定の状況でのみ重くなるのか、全体的に重いのか
など何らか影響がありそうな事項、条件は一通りご記載ください。
古いPCならともかく、ここ2、3年程度のPCであれば数千ポリゴン程度で重くなることはありませんので、
ハードウェア障害を含めてさまざまな原因が考えられます。
2012-10-14 14:39
[2764] Re: Re: エッジ設定をしたオブジェクトの描画について / mqouser
・使用バージョン
ver3.1beta2からbeta7まで

・使用環境(OS、CPU、ビデオカード):
OS windows7,CPU intel core i7, ビデオカード radeon HD5650

・表示モード(Direct3D、OpenGL、ソフトウェア)
Direct3Dのみのようです。OpenGL、ソフトウェアでは軽快でした。

・Catmull-Clarkのみなのか、曲面タイプ1/2ではどうなのか
曲面化なし、曲面タイプ1,2、catmull-clarkのいずれでも再現。

・何か副作用を引き起こすプラグインを入れていないか
 (別の言い方をすればプラグインをすべて外すとどうなのか)
プラグインなしの環境でも再現しました。
 
・他のDirect3D/OpenGLなどを使っているソフトの動作はどうか
影響はないようです。

・その他特定の状況でのみ重くなるのか、全体的に重いのか
面を表示した場合に非常に重くなるようです。辺、点表示では軽快に動作します。
簡易表示、または曲面化を設定しない状態でも、エッジ設定のない曲面化した状態のオブジェクトよりも動作が重いです。
2012-10-14 23:56
[2765] Re: Re: Re: エッジ設定をしたオブジェクトの描画について / Administrator
エッジの設定をしてもしなくても速度面ではせいぜい1%未満しか違いがないはずなので、
原因がまったくわからないですね…。

エッジ設定のないオブジェクトは軽快なのでしょうか、それともマシという程度なのでしょうか?
また一つでもエッジの折れ目をONすると重くなるのか、それともONにした数に比例して重くなっていくのでしょうか?

ダメ元ですが、
・CATALYSTを最新版にしてみる
・HLSLフォルダを外した状態で起動してみる(表示されるエラーは気にしない)
も試してみていただけないでしょうか。
2012-10-15 12:25
[2769] Re: Re: Re: Re: エッジ設定をしたオブジェクトの描画について / mqouser
誤認があったようです。
正しくは、エッジ設定の有無ではなく、使用している材質の数に関係していたようです。
エッジの設定の無いものと比較していましたが、材質の設定が同一ではなかったので誤認したようです。
改めて、エッジの設定をなくした同一のオブジェクトと比較したところベンチマークで同程度のfpsになりました。
このオブジェクトは五種類の材質を使用していましたが単一の材質で塗りつぶしたところ、ベンチマークの速度が五倍以上の改善が見られました。
ver3.0でも同じ結果になったので、DirectXの仕様上の問題と見るべきなのでしょうか。
エッジの設定の有無による速度の違いはご指摘のとおりの結果で、エッジ設定の無いものと比較して大きな差異はありませんでした。
2012-10-15 19:49
[2770] Re: Re: Re: Re: エッジ設定をしたオブジェクトの描画について / mqouser
・CATALYSTを最新版にしてみる
なんらかの原因で更新がうまくいかないようなので、出荷時のバージョンです。検証できませんでした。
ビデオカードのドライバーは最新になっています。

・HLSLフォルダを外した状態で起動してみる(表示されるエラーは気にしない)
効果がありませんでした。

directXのみ症状がでると書きましたが、そもそも、DirectXがピクセルシェーダーであるのに対して、OpenGLとソフトウェアがバーテックスシェーダーな時点で描画の品質が違うので、比較してDirectXの動作が重いのは当たり前のことでした。
暫くぶりにハイポリゴンを扱ったのでその辺りの感覚を忘れていたようです。
不具合ではないようなので対応は不要です。無用な手間をかけてしまい申し訳ありません。
2012-10-15 20:07
[2771] Re: Re: Re: Re: Re: エッジ設定をしたオブジェクトの描画について / Administrator
>このオブジェクトは五種類の材質を使用していましたが単一の材質で塗りつぶしたところ、ベンチマークの速度が五倍以上の改善が見られました。
>ver3.0でも同じ結果になったので、DirectXの仕様上の問題と見るべきなのでしょうか。

DirectXそのものの仕様ということでもないですが、表示の際に材質が複数混在していると切り替えのためのコストが発生するので、
材質が交互に切り替わるような配置になっていると顕著に重くなる事例も出てくると思います。

OpenGL表示でも同様の切り替えコストがあるのですが、材質ごとにソートしてから表示するようにしているので速度差はほとんどありません。
DirectXでも以前のバージョンだと切り替えコストが少なかったためソートせずに描画していたのですが、現時点ではソートしたほうが速度低減を抑えらえるかもしれません。
Ver3.1はリリースが近いので、現状のまま変えるつもりはありませんが。
2012-10-15 20:36