1

我正在为我不那么简单的 OpenGL 游戏制作简单的 GUI。由于有一个包含大量控件的大菜单,我将控件分组并将它们放入可以通过主菜单中的按钮访问的不同窗口中。所以现在我想用每个窗口的可点击缩略图替换按钮,这就是为什么我需要将 GUI 渲染为纹理。

目前我的电脑装有 Windows 7 和 Geforce 210 显卡,支持 OpenGL 到 3.3.0 版本(但我不在乎我将使用什么版本)。我有 Delphi 的 'dglOpenGL.pas' 库。我想用纹理控件来渲染这些窗口,但因为我在这些事情上很n00b,所以我做不到(我尝试了 C# 教程,但到目前为止没有工作结果)。任何帮助,将不胜感激。

4

1 回答 1

3

OpenGL 中的渲染到纹理包括创建帧缓冲区对象 (FBO) 并将其附加到纹理。查看帧缓冲区对象的文档以获得基本概述。

一般的工作流程是这样的:

  • 使用glGenFramebuffers创建一个帧缓冲区对象
  • 使用glBindFramebuffer激活帧缓冲区
  • 使用glFramebufferTexture将帧缓冲区附加到要渲染的纹理
  • 调用glCheckFramebufferStatus以确保它正常工作。
  • 设置视口以匹配您要渲染到的纹理的尺寸。(这通常涉及调用 glViewport 和 glOrtho,我相信你已经熟悉了,所以我不会在这里链接它们。)
  • 做你的渲染。
  • 完成后,停用 FBO(再次调用 glBindFramebuffer 并将 0 作为 FBO ID 值传递)并重置您的视口。
  • 无论您渲染什么,现在都应该在纹理中。
于 2013-05-16T18:54:15.217 回答