Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > [DirectX] Движение камеры


Автор: sfok3 5.8.2009, 17:23
DirectX
вращаю камеру вокруг точки, всё гуд.
теперь чтобы двигать камеру мне нужно изменять значения в векторах vEyePt, vLookatPt или использовать d3dXMatrixtranslation? что то не выходит ни так ни эдак

Автор: sfok3 5.8.2009, 18:47
используя d3dXMatrixtranslation камера передвигается, но сбивается точки, откуда смотрит камера и куда, а мне нужно чтобы камера двигалась за объектом

Автор: Bitter 6.8.2009, 16:26
sfok3, изменяй vEyePt, vLookatPt и снова вызывай D3DXMatrixLookAtLH.

И..  почитай книги - это самые азы. если ты с этим не можешь сам разобраться, то дальше точно ничего не получится

Автор: sfok3 6.8.2009, 23:45
читал Есенина Delphi и DirectX. Там разбирается только построение и отображение объектов, но не рассматривается ничего другого...
какие норм книги можете посоветовать?

Автор: Bitter 17.8.2009, 13:07
По делфи - Краснова возьми http://delphidevelop.ru/load/2-1-0-75

Автор: sfok3 11.9.2009, 00:12
Код

D3DXMatrixIdentity(matWorld);
vEyePt := D3DXVector3(0.0, 5.0, -iks+5);
vUp :=  D3DXVector3(0.0, 1.0, 0.0);
vLookatPt :=  D3DXVector3(0.0, 0.0, -iks);
D3DXMatrixLookAtLH(matView, vEyePt, vLookatPt, vUp);
g_pd3dDevice.SetTransform(D3DTS_VIEW, matView);


объект тоже передвигается в зависимости от iks

но получается так что камера забегает вперед через некоторое время и смотрит на объект сверху а потом отражается....

Автор: sfok3 1.10.2009, 00:21
двигал оказывается я всё верно, проблема где то в другом

Автор: sfok3 2.10.2009, 19:56
Код

vEyePt := D3DXVector3(0.0, 5.0, 5);
vLookatPt :=  D3DXVector3(0.0, 0.0, 0.0-iks);

проблема решена, если vEyePt высчитывается у меня, то зачем я от него тоже отнимаю значение iks

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)