Opengl和DirectX视口和Rendertargets

时间:2014-10-26 16:15:09

标签: c++ opengl directx

所以我仍然试图在OpenGL和DirectX中获得相同的结果。

现在我的问题是使用Rendertargets和Viewports。

到目前为止我学到了什么:

  • 如果调整Window的大小,DirectX的Backbuffer会延伸 - 渲染纹理的大小更改
  • 如果调整Window的大小,OpenGL的Backbuffer会调整大小 - 渲染纹理保留在渲染的位置

现在我在这里做的是将OpenGL的视口改为窗口大小。现在两者都有相同的结果,渲染的纹理被拉伸。  一个骗局:  -OpenGL的Viewport的大小不能像在DirectX中那样设置,因为它被设置为窗口大小。

现在渲染Rendertarget时会发生这种情况:

  • DirectX:大小很重要,如果Size大于Backbuffer,纹理只需要一个小的位置,如果Size低于Backbuffer,则Texture占用很多位置
  • OpenGL:大小无关紧要,渲染的Context保持不变/延伸。

现在我的问题是:

如何在OpenGL和DirectX中获得相同的结果? 我想在OpenGL中使用DirectX中的相同结果。我的想法到目前为止还是有更好的想法吗?

1 个答案:

答案 0 :(得分:1)

我做了什么:将OpenGL中的所有内容绘制到FrameBuffer并将其blit到backBuffer。现在,内容可以像DirectX一样重新调整大小。