もきもき3D

アクセスカウンタ

zoom RSS Rotate値の扱い

<<   作成日時 : 2008/01/16 07:14   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

通常、double精度で手動入力出来るのは新シーンエディタだけか。

でも、itemInfo->param(LWIP_ROTATION)やchannelInfo->channelEvaluate()での読み出し時、double値->floatにキャスト->doubleにキャスト->double型に格納、って感じなのか、Float精度の値になるっぽいから意味無し?
取り合えず一度floatでDegreeにしてから再度doubleでradianにする事でdoubleで扱う時の誤差を減らせるか。
きりの良い値でしか試してないけど。

LScriptだとfloatやdoubleで算出した値と違う値になるのが謎('A`)
と思ったけど、勝手に行われる角度変換関係の処理で使われてるPIの精度が低い、とかなのかな('A`)

------
LWS(メモリ)への格納はdoubleだけど、LScript、LWでの書き込みコマンド、読み出しAPI、これらがLWのVerによって精度タイプや有効桁数がバラバラと・・・('A`;;なんだこりゃ
-----
LW7.5/8.5はprintfの%g(%.8g)縛りがある?<LWS書き出し時
9.3のLWS3書き出しでは%.16g相当か。

envFunc->setKey()でdouble精度の値を突っ込んだ後に取得してみた所、float精度の値を返すのはitemInfo->param()だけっぽい。
channelInfo->channelEvaluate()、envelopeFunc->evaluate()、envelopeFunc->getKey()ではdouble精度の値が取れた。
-----
内部はdoubleで持っててChannelやenvelopeでならdoubleのままやり取り出来るけど、基本的なIOであるparamとlscriptではfloat精度でやり取りされ、またLWS書き出しもfloatとして行われる。
paramに依存するRestRotateやPivotRotateはfloat精度でしか取れない。<読み出し手段がparamだけ。
7.5/8.5でのLWSのロード直後はfloat精度の値しか存在しない。
9.xではdouble精度でロードされる。
、って感じか('A`)
-----
LScriptは%.10g相当?

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Rotate値の扱い もきもき3D/BIGLOBEウェブリブログ
文字サイズ:       閉じる