我正在嘗試使用gluLookAt方法設置3D相機。所以我得到了一個10x10x10的立方體,現在我想移動該立方體內的相機。我有類似的東西:OpenGL 3D相機gluLookAt
gluLookAt(camera->x,camera->y,camera->z, camera->eyeX, camera->eyeY, camera->eyeZ, 0, 1, 0);
現在我前進/後退:
if(GetKeyState(VK_UP) <0)
{
camera->x += sin(camera->angleX)*0.1f;
camera->eyeX += sin(camera->angleX)*0.1f;
camera->z -= cos(camera->angleX)*0.1f;
camera->eyeZ -= cos(camera->angleX)*0.1f;
}
現在我轉左/右:
if(GetKeyState(VK_LEFT) <0)
{
camera->angleX -=0.1f;
camera->eyeX = sin(camera->angleX) +camera->x;
camera->eyeZ = -cos(camera->angleX) + camera->z;
}
讓所有的作品完美但現在我想按住SHIFT鍵的同時向上/向下旋轉。所以我有這樣的事情:
if(GetKeyState(VK_SHIFT) <0)
{
if(GetKeyState(VK_UP)<0)
{
camera->angleY +=0.1f;
camera->eyeY = sin(camera->angleY) +camera->y;
}
實際上有些奇怪的事情發生。相機一直在上下搖擺,然後慢慢前進。另外,我想補充一點,當我擡頭向前移動時,相機實際上就是在那裏看起來的。所以基本上,情況如下:我是一個被困在10x10x10立方體中的鬼魂,可以隨意走動。我想移動到右上角?我只是去那裏。所以...任何想法我應該改變/添加?
我試圖用向上的方式做點什麼,但我不認爲這是問題...我想說我錯過了像camera-> y =和camera-> eyeY = 任何其他想法我可能會添加/更改什麼? –
L3M0L
2013-04-07 10:05:06
我其實改爲:camera-> eyeY = tan(camera-> angleY)+ camera-> y;它不再彈起來,但現在我想朝這個方向前進。有任何想法嗎? – L3M0L 2013-04-07 10:47:39
哦,是的......我編輯了我的答案;請讓我知道如果解決這個問題。 – WhitAngl 2013-04-07 16:46:53