カメラ2
カメラにトラックとクレーンを追加。
track(トラック):視線を固定して左右に移動
crane(クレーン):視線を固定して上下に移動
回り込みとかのカメラ用語を調べたが出てこないが・・・
前のカメラ制御クラスに追加する形。
実装部分だけ、
void cCameraController::track(float dist) { XMVECTOR eye = m_pCamera->getPosition(); XMVECTOR up = m_pCamera->getUp(); XMVECTOR at = m_pCamera->getLookAt(); XMVECTOR pos = at - eye; XMVECTOR dir = XMVector3Normalize(pos); XMVECTOR right = XMVector3Normalize(XMVector3Cross(dir,up)); dir = dist * right; eye += dir; at += dir; m_pCamera->setLookAtLH( eye, at, up ); } void cCameraController::crane(float dist) { XMVECTOR eye = m_pCamera->getPosition(); XMVECTOR up = m_pCamera->getUp(); XMVECTOR at = m_pCamera->getLookAt(); XMVECTOR pos = at - eye; XMVECTOR dir = XMVector3Normalize(pos); XMVECTOR right = XMVector3Cross(dir,up); up = XMVector3Normalize(XMVector3Cross(right, dir)); dir = dist * up; eye += dir; at += dir; m_pCamera->setLookAtLH( eye, at, up ); }