Расположение камеры DirectX (вид от третьего лица)

Я создаю 3D-летающую игру и использую DXUTCamera для просмотра.

Я могу заставить камеру принять положение персонажей, но я хотел бы видеть своего персонажа от третьего лица.

Вот мой сердечник для вида от первого лица

//Put the camera on the object.                     

        D3DXVECTOR3 viewerPos;
        D3DXVECTOR3 lookAtThis;
        D3DXVECTOR3 up         ( 5.0f, 1.0f, 0.0f );
        D3DXVECTOR3 newUp;
        D3DXMATRIX matView;

        //Set the viewer's position to the position of the thing.

        viewerPos.x = character->x;   viewerPos.y = character->y;
        viewerPos.z = character->z;


        // Create a new vector for the direction for the viewer to look

        character->setUpWorldMatrix();
        D3DXVECTOR3 newDir, lookAtPoint;
        D3DXVec3TransformCoord(&newDir, &character->initVecDir,
                                      &character->matAllRotations);

        // set lookatpoint

        D3DXVec3Normalize(&lookAtPoint, &newDir);
        lookAtPoint.x += viewerPos.x;
        lookAtPoint.y += viewerPos.y;
        lookAtPoint.z += viewerPos.z;

        g_Camera.SetViewParams(&viewerPos, &lookAtPoint);

Так у кого-нибудь есть идеи, как я могу перевести камеру в вид от третьего лица? предпочтительно по времени, чтобы движение камеры было плавным. (Я надеюсь, что смогу просто отредактировать этот код вместо того, чтобы вводить другой класс камеры)


person David Sigley    schedule 18.08.2012    source источник
comment
Этот вопрос следует опубликовать в GDSE.   -  person ErikEsTT    schedule 18.08.2012
comment
ааа, никогда не знал, что этот сайт существует - Спасибо!   -  person David Sigley    schedule 18.08.2012
comment
gamedev.stackexchange.com /вопросы/34528/   -  person David Sigley    schedule 18.08.2012


Ответы (1)


Что ж, думаю, я могу теоретически помочь вам перейти от вида от первого лица к виду от третьего лица. Извините, я не могу дать вам реальный код, но я набираю с телефона. Вам нужно будет поместить точку, где ваш взгляд начинается немного позади игрока, и заставить lookAtPoint смотреть на игрока. Кроме того, убедитесь, что , x , y и z перемещаются в соответствии с логикой третьего лица. Надеюсь, это поможет. Извините, если это совсем не помогает, но печатать с телефона для меня довольно сложно, и я не могу объяснить это по-настоящему хорошо.

person elelec    schedule 13.06.2013