我使用Opengl作爲小型車模擬的基礎。根據3D物體的位置旋轉相機
我已經導入了一輛模型車,它開車很好,相機跟着它。不幸的是,當汽車轉向時,我似乎無法讓相機的位置移動(或留在汽車後面)。它只是在現場旋轉。
例如,如果汽車左轉,攝像頭就會跟着它旋轉,但不會直接移動到汽車後面。
我已經看過這些問題here和here,但仍似乎無法使其工作。
我這是怎麼計算汽車的位置(這只是驅動在XZ平面現在):
velocity.x = sin(rotX_rad);
velocity.z = cos(rotX_rad);
globalPos.x + velocity.x*delta;
globalPos.z + velocity.z*delta;
glTranslatef(globalPos.x,globalPos.y,globalPos.z);
glRotatef(rotX, 0.0, 1.0, 0.0);
這是目前我如何有我的lookAt功能:
gluLookAt(camX+globalPos.x,
camY+globalPos.y,
camZ+globalPos.z,
lookX+globalPos.x+sin(rotX_rad),
lookY+globalPos.y+cos(rotX_rad),
lookZ+globalPos.z-cos(rotX_rad),
camNX, camNY, camNZ);
我希望攝像機是這樣的:(其中Y是Z)
我看到它的方式,它應該是:
camX + globalPos.x+ sin(rotX_rad)*(distFromCar),
camY,
camZ + globalPos.z- cos(rotX_rad)*(distFromCar),
但奇怪的行爲....
什麼我不這樣做?
+1的圖片:) – SAKrisT