トップページ > 記事閲覧
SetCameraViewMatrixについて
名前:ギウ 日時: 2017/08/14 16:54

お世話になっております。 SetCameraViewMatrixですが、モデル用の座標に * -1.0f して全て逆方向にしないと正しい位置にならないのですが、 何かの設定が足らないのでしょうか。 具体的には、 MATRIX mat = MGetTranslate(VGet(0,0,200.0f)); SetCameraViewMatrix(mat); MV1SetMatrix(mdl, mat); MV1DrawModel(mdl); とした場合、 画面には、Z方向に +200.0f の位置にモデルがあり、-200.0f の位置にカメラがある状態で表示されます。(モデルとカメラの距離が400.0fある状態) 回転させる場合も、全て逆方向になってしまってます。 ご意見お願いいたします。
メンテ

Page: 1 |

Re: SetCameraViewMatrixについて ( No.1 )
名前:管理人 日時:2017/08/14 18:57

SetCameraViewMatrix はカメラの位置や回転を設定するためのものではなく、 一般的な3Dレンダリングにおける『ビュー行列』を自前で設定するための関数です 『ビュー行列』は『カメラに映るものをカメラの目の前に移動するための行列』なので、 カメラが Z=200.0f の位置にある場合の『ビュー行列』は MGetTranslate( VGet( 0,0,-200.0f ) ); となります ( 例えば 2D のゲームでワールド座標( 1000, 2000 )-( 1640, 2480 ) の範囲を画面に表示したい場合に  DrawGraph( ObjX - 1000, ObjY - 2000, GrHandle, TRUE ) ; と、映したい座標分引き算を行うのと  同じような感じです ) SetCameraPositionAndTarget_UpVecY などを使用することで逆の考え方などをせずに済みますので よろしければお使いください m(_ _)m
メンテ
Re: SetCameraViewMatrixについて ( No.2 )
名前:ギウ(解決) 日時:2017/08/15 06:20

有難うございます! そういうことでしたか; 注視点も計算したかったので、SetCameraPositionAndAngle を使うことにしました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存