我正在通过渲染传递到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