我正在通過渲染傳遞到FrameBufferObject,以便我可以在下一個渲染過程中將結果用作紋理。看教程,我需要調用:OpenGL FrameBuffer和glViewport
glBindFramebuffer(GL_TEXTURE2D, mFrameBufferObjectID);
glViewport(0, 0, mWidth, mHeight);
其中mWidth和mHeight是幀緩衝區對象的寬度和高度。似乎沒有這個glViewport調用,沒有得到正確的繪製。什麼奇怪的是,一旦開始了下一幀,我需要調用:
glViewport(0, 0, window_width, window_height);
這樣我就可以回到窗口的我以前寬/高;但調用它似乎只能渲染我的東西在原始窗口大小的一半。所以我只能看到屏幕四分之一的東西被渲染到(是的,整個場景都在它上面)。我試着放一個斷點,看寬度和高度值,它們是原始值(1024,640)。這是爲什麼發生?我嘗試將這些加倍,並且正確地繪製在我的整個窗口上。
我在Mac上通過xcode和glew來做到這一點。
目的這個問題可能是你沒有表現出代碼的這個環節。 – ybungalobill
這是帶有視網膜屏幕的Mac嗎?您可能會在邏輯像素中的分辨率與屏幕上的實際物理像素之間混淆。或者無論正確的術語是... –
是的,我在Mac xcode上使用它。 – ChaoSXDemon