Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[1467] ver2.5への要望 / mqdl
[From old BBS] Response
BlogでVer2.5への予定を拝見しましたが、細かな修正だけでなくファイルフォーマットや仕様の見直しを進める時期に来ていると考えています。

例えば現状のマテリアルの仕様に関しては、その古さから外部ソフトとのやり取りに支障を来たす場合があります。(色設定できるのが拡散色のみで反射光の色設定が出来ません)

ローカル座標に関しても、mqoファイルに記録されるのはワールド座標とローカルの行列情報になっているので、操作の度に頂点位置がずれていく場合もあります。
この点など過去のフォーマットとの互換性を考慮されての事であると思いますが、一方いつの間にかIncludeXmlなどが追加され、外部ソフトで開けない事象も見受けられます。
プラグインAPIの整備は有難い事ですが、プラグインからでは対応し難いMetasequoia本体の仕様やファイルフォーマットの見直しのご検討をお願い出来ますでしょうか。
2008-09-01 00:58
[1469] Re: ver2.5への要望 / O.Mizno
通常はこの類のものについては返答しておりませんが、
他ソフトとの相互運用の面などのこともありますので、
現時点での私の考えを述べさせていただきます。

まず、mqoファイルフォーマットの仕様を大きく変えることは考えておりません。
一番の理由はmqoファイルを直接取り扱う他ソフトとの互換性のためです。
互換性のない構造のファイルを出力することは最も忌むべきことです。

もともとmqoは階層化可能なチャンク構造を取っているため、
新しいパラメータを任意に追加することができるようになっております。
また既存の構造で対応できないものについては、今後インクルードxmlファイルでの記述を考えています。

一部の外部ソフトでインクルードxmlファイル関連で開けない事象というのはこちらで把握しておりませんが、
プラグインSDKのmqoインポートのサンプルのソースコードを適切に活用していれば、
今後mqoファイルの仕様が拡張されてもそのまま読み込めるか、
またはわずかなソースコードの修正で対応可能であると考えています。

ご指摘の点でローカル座標の編集で座標が微妙ずれるというのは、
ファイルにどのような形式で出力するかではなく、
適切な精度保障が行われてないことに起因しています。
内部計算をfloatで処理していることが最も大きなファクターであり、
ファイルフォーマットによる影響は軽微なものです。
あえて言えば、出力される回転角の小数点桁数が不十分なだけで、
それと比べるとワールドかローカルかというのは極めて微小なことに過ぎません。
2008-09-02 00:34
[1470] Re: ver2.5への要望 / O.Mizno
昨日の書込みで具体的な解決策の記載を忘れていましたが、
まず第一段階としてローカル座標の行列の演算精度を上げて
計算誤差を最小限に抑えるというのでよろしいでしょうか?

実証はしておりませんが、現在floatで内部処理している行列演算を
doubleに変更するだけでずれの発生はかなり解消できると考えています。
2008-09-02 22:06
[1471] Re: Re: ver2.5への要望 / mqdl
返信ありがとうございます。
まず、私の説明が足りず誤解を招くものであった事を
お詫びさせて頂きます。大変失礼致しました。

申し上げたい件としてはファイルフォーマットの仕様変更ではなく
仕様の拡張や見直しです。それは既に書かせて頂いた通りマテリアルの反射光設定や
ローカル座標の扱いに関する不整合に伴う、その結果としての
フォーマットの変更になります。
mqoフォーマット自体の見直しでは御座いません。
2.5で望むものとしてはマテリアルの仕様拡張や複数ライト対応等
ご検討頂ければと存じます。

>また既存の構造で対応できないものについては、今後インクルードxmlファイルでの記述を考えています。
はい、そう言った対応で問題ないと考えています。

>それと比べるとワールドかローカルかというのは極めて微小なことに過ぎません。
こちらに関しては若干認識が異なります。
数値としては誤差とも言えぬ微小な結果であると考えておりますが、
視覚的に大きく差が出る場合があります。
オブジェクトにミラーリングの設定をし、その基準軸をローカル座標と

Show more...
2008-09-02 22:21
[1472] Re: Re: ver2.5への要望 / mqdl
返信が入れ違いになりました。

>昨日の書込みで具体的な解決策の記載を忘れていましたが、
>まず第一段階としてローカル座標の行列の演算精度を上げて
>計算誤差を最小限に抑えるというのでよろしいでしょうか?

こちらに関しては精度の問題だけではなく、演算の基準として
まずワールド座標ありきである事に問題があると考えておりますが
如何でしょうか。
2008-09-02 22:34
[1473] Re: Re: Re: ver2.5への要望 / O.Mizno
てっきりファイルフォーマットの仕様変更要求かと思っておりました。
失礼しました。

さて、いただいた返信についてですが、

>こちらに関しては精度の問題だけではなく、演算の基準として
>まずワールド座標ありきである事に問題があると考えておりますが
>如何でしょうか。

ローカル座標ありきに変えると、今度はワールド座標を基準とした
処理にまったく同じ問題が発生するのではないかと思います。
また、内部コードだけでなく既存のプラグインすべてがワールド座標
での処理にしか対応していない以上、内部処理をローカル座標
ベースに変更することは現実的ではありません。

ともあれ、具体的な問題の再現法の提示をいただきありがとうございます。
ローカル座標基準の回転については特に計算誤差の影響が大きい部分なので、
やはり計算精度の向上、またミラーリング時のマージンをもう少し
大きめにすることによって解決するのではないかと思うのですが、
検証を含めてVer2.5での検討課題とさせていただきます。
2008-09-02 23:51
[1494] Re: Re: Re: Re: ver2.5への要望 / mqdl
ご連絡が滞っており、申し訳ございません。
先に結論から申し上げると、やはりローカルを基準に座標の
保持をするべきだと考えています。
ただし、こちらは即実装を要望するものではなく今後の
検討材料にして頂ければと存じます。

それを踏まえた上で、一点よろしいでしょうか。
>やはり計算精度の向上
floatをdoubleに置き換えた精度の向上は労力に比べて効果が
薄いかも知れません。
デフォルトでmqoフォーマットは小数点4桁までを記録しますので
ここで大幅に精度は落ちます。つまり今後は保存前と保存後の
データの差異が表面化が想定されますのでミラーのマージン調整の
ご検討をお願い致します。
2008-09-16 23:29
[1499] Re: Re: Re: ver2.5への要望 / O.Mizno
>・基本図形で球体を作成
>・X<0の座標の頂点を削除
>・適応軸をローカルとしてX軸に対するミラーリング
>・"ローカル"モードで回転

Ver2.5 Beta9にて
・計算精度の向上(内部計算を一部double化)
・ミラーリングの0判定の許容誤差を大きめに
することにより、この手順においての左右割れ現象を多少なりとも解消しました。

計算誤差についてはまだfloatの部分が残っていたり、
桁落ちの精度を考慮していないためまだ十分ではありませんが、
今後もローカル座標での計算が支障ないレベルにしていきたいと思います。

ただし、既に申しあげた通りプラグインとの互換性の問題などがありますので
頂点座標をローカル座標で保持するように変更する考えはありません。
2008-09-28 21:56