首先,我在一个WPF应用程序中使用了OpenTK,但我认为这更像是一个通用的OpenGL。
在我的应用程序中,我希望能够将3D内容渲染到纹理中。我不需要输出到窗口或屏幕上的控件-我只想渲染到背景纹理。
那么,我应该如何设置OpenGL来做到这一点呢?通常,应使用devicecontext作为参数来创建图形上下文。但在我的例子中,我不想输出到devicecontext,而是想渲染到具有设置的固定大小的FrameBufferObject (f.e.1024x1024、32bpp、32位ZBuffer),与窗口或显示器无关。
我希望任何人都有这样的设置经验:)
发布于 2011-01-07 08:01:17
上下文创建超出了OpenGL应用编程接口本身的范围。GL上下文由目标图形系统创建,如Windows GDI、X11/GLX、Quartz/AGL。现在有了一个名为PBuffers的概念,它可用于创建不绑定到窗口的硬件加速OpenGL上下文。但是,PBuffers通常只能作为扩展访问,因此您需要一个OpenGL上下文才能做到这一点。解决方案是创建一个虚拟窗口,该窗口永远不需要在屏幕上可见,使用该窗口可以创建虚拟GL上下文以获得扩展。然后使用该PBuffer和在该OpenGL上创建的上下文。
但是,如果您想要使用FBO,那么您不需要跳过PBuffer环。带有OpenGL上下文的不可见虚拟窗口也完成了这项工作,因为渲染目标将是FBO。
https://stackoverflow.com/questions/4621024
复制相似问题