ゲームプログラムなら俺に聞け28
■ このスレッドは過去ログ倉庫に格納されています
0072デフォルトの名無しさん
2013/05/07(火) 18:54:17.25すまんが、言いたいことがよく分からん。
相対指定も絶対指定も指定するために必要なものは変わらんと思うが。
今回施す変換行列と、変換の基準となる行列、この2つを指定すればいい。
相対指定なら、基準となる行列とは前回まで積み重ねた結果の変換行列のこと、
絶対指定なら、基準となる行列とはなにか適当な変換行列のこと(キャラの中心とか、ワールド座標系とか)。
> 回転移動伸縮回転移動伸縮…したあとで移動だけ絶対指定した場合
そのような要望をするのは、そのライブラリを使うプログラマ側だよな。
なにを絶対指定の基準とするかはそのプログラマにしか分からん。
であれば、基準となる変換行列はプログラマ側に指定させるしかない。
> 現在の変換行列に移動を打ち消す行列かけてから新しい移動行列かけるわけだよな
それは絶対指定にならないのでは? 打ち消す行列をかけた時点で誤差が蓄積する。
> 相対指定の履歴を全部で保存しておいて逆順に逆行列掛けてくのがいい?
絶対指定(を以後続けること)において、記憶させておかなければならないことは、
今までの変換の履歴ではなくて、基準となる変換行列の方だと思うが。
並進変換(平行移動)だけ絶対指定して、回転変換などは相対指定したいのなら、
並進変換の基準となる変換行列だけプログラマに保存してもらえばいい。
逆に相対指定の場合は、基準となる変換行列は今までの変換の積み重ねだが、これはライブラリ側で把握可能だ。
今までの積み重ね全てではなく、前回の最終計算結果だけ保存しておけばいい。
インターフェースとしては、基準となる変換行列を null 値で指定されたら、
相対指定されたとみなして、最終計算結果を基準となる変換行列として計算すればいい。
そうすれば、相対指定と絶対指定でインターフェースを分ける必要がなくなる。
■ このスレッドは過去ログ倉庫に格納されています