[英]moving camera using glOrtho
使用glOrtho移動相機時出現問題。 我在中央有一個小方形框,我想嘗試使用glOrtho移動相機,但似乎不起作用。 四邊形根本不會移動,所以我猜相機也不會移動。 也許我想念了解glOrtho是如何工作的? 到目前為止,這是我的代碼。
void Camera::updateCamera(float x, float y, float zoom)
{
camX = x;
camY = y;
this->zoom = zoom;
viewWidth = 320;
viewHeight = 240;
//viewWidth = tan(60) * this->zoom;
//viewHeight = tan(45) * this->zoom;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(camX - viewWidth,
camX + viewWidth,
camY - viewHeight,
camY + viewHeight,
-1,
1);
glMatrixMode(GL_MODELVIEW);
}
這是我應用的地方 我試圖將其沿x軸移動25點。
void Engine::renderAll()
{
x += 25;
glClear(GL_COLOR_BUFFER_BIT);
shader->use();
camera.updateCamera(x, y, 1.0);
//shader->setUniform4fv("view", camera.getView());
batchManager->renderBatches();
SDL_GL_SwapWindow(window);
}
是的,我想您誤解了glOrtho的工作原理。 glOrtho的作用是使用正交投影將3D視圖轉換為2D視圖。
如果要在3D空間中定位相機,則正確的功能通常稱為LookAt。 一次,似乎我使用的是舊版OpenGL,您可以嘗試使用glu函數gluLookAt
PS。 在現代openGL中,此功能現在已棄用。 我建議您嘗試學習現代方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.