나는 오우거를 처음 접했고 기본 자습서를 읽었지만 마우스 휠 확대/축소를 사용하여 궤도 카메라를 만드는 방법을 이해할 수 없습니다. 여기 확대/축소 기능을 사용하여 궤도 카메라를 만드는 방법
내 카메라 코드// Create the scene node(orbit camera)
node = mSceneMgr->getRootSceneNode()->createChildSceneNode("orbit", Ogre::Vector3(0, 100, -150));
node->attachObject(mCamera);
// create the second camera node(freecam)
node = mSceneMgr->getRootSceneNode()->createChildSceneNode("free", Ogre::Vector3(0, 100, 400));
// create the third camera node (3rd person robot cam)
node = mSceneMgr->getRootSceneNode()->createChildSceneNode("robocam", Ogre::Vector3(0, 100, -80));
입니다 그리고 여기 내 키 누르기 기능
bool BasicTutorial05::processUnbufferedInput(const Ogre::FrameEvent& evt)
{
Ogre::Vector3 transVector1 = Ogre::Vector3::ZERO;
if (cam1 == true)//when cam 1 is selected, bool cam1 will be true;
{
if (mKeyboard->isKeyDown(OIS::KC_S))
{
mSceneMgr->getSceneNode("orbit")->pitch(Ogre::Radian(-0.012f));
}
if (mKeyboard->isKeyDown(OIS::KC_W))
{
mSceneMgr->getSceneNode("orbit")->pitch(Ogre::Radian(0.012f));
}
if (mKeyboard->isKeyDown(OIS::KC_A))
{
mSceneMgr->getSceneNode("orbit")->yaw(Ogre::Radian(0.012f));
}
if (mKeyboard->isKeyDown(OIS::KC_D))
{
mSceneMgr->getSceneNode("orbit")->yaw(Ogre::Radian(-0.012f));
}
}
mSceneMgr->getSceneNode("orbit")->translate(transVector1 *evt.timeSinceLastFrame, Ogre::Node::TS_LOCAL);
}
및 확대 마우스 휠입니다
//zooming for orbit camera
Ogre::Vector3 transVector2 = Ogre::Vector3::ZERO;
if (mMouse->getMouseState().Z.rel != 0){
transVector2.z = -mMouse->getMouseState().Z.rel;
}
하지만 난 주위 궤도의 수 정렬 할 수 있습니다 카메라가있는 지점이지만 점을 중심으로 회전하는 대신 휠 스크롤 줌을 사용할 때만 카메라가있는 곳에서 회전합니다. 포인트를 한 번만 돌리면 어떻게 바꿀 수 있습니까?
... 귀하의 질문은 어디에 있습니까? –
포인트를 한 번만 돌리면 어떻게 바꿀 수 있습니까? 현재는 카메라가있는 지점에서 회전합니다. 그러나 마우스 휠 줌을 사용하면 카메라가있는 위치가 회전합니다. – user2640299