QT OpenGL、顶点缓冲区对象和 GLEW?

发布于 2024-12-02 03:30:03 字数 193 浏览 0 评论 0原文

我正在将旧的 openGL 代码(立即模式)迁移到 Vertext-Buffer-Objects。 我意识到我需要为此使用 OpenGL3 API 调用(GL_ARB_vertex_buffer_object)。 所以我打算使用 GLEW 作为扩展加载库。

我的问题是,是否有一种特殊的方法来为 OpenGL3 contexT 初始化 QGLWidget?

I am in the process of migrating my old openGL code (immediate mode) to Vertext-Buffer-Objects.
I realized that I need to use OpenGL3 API calls (GL_ARB_vertex_buffer_object) for this.
So I was going to use GLEW as extension loading library.

My question is , is there a special way to initialize QGLWidget for OpenGL3 contexT?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小草泠泠 2024-12-09 03:30:03

“OpenGL 3 上下文”是什么意思?

您可以通过正常的上下文创建来获得 OpenGL 3.1 或更高版本的支持。现在,如果您想要一个核心 OpenGL 上下文,它实现了核心规范,那么你必须做一些工作。

请注意,兼容性上下文完全没问题。它仍然做核心上下文所做的一切;您不必执行以下任何操作来使用缓冲区对象。

哦,缓冲区对象不再是扩展了。使用核心函数,而不是您在 GL_ARB_vertex_buffer_object 中看到的扩展函数。

注意:以下内容适用于 QT 4.7 或更高版本:

您必须至少熟悉 QGLFormat;您需要一个来创建 QGLWidget。只需使用 QGLFormat::CoreProfile 对该对象调用 QGLFormat::setProfile 即可。

遗憾的是,QT 不允许您指定特定版本。但是,假设您的硬件实现 OpenGL 3.2 或更高版本,这应该足以获得核心 OpenGL 配置文件。

What do you mean by an "OpenGL 3 context"?

You can get OpenGL support for version 3.1 or greater by normal context creation. Now, if you want a core OpenGL context, which implements the core specification, then you have to do a bit of work.

Note that a compatibility context is perfectly fine. It still does everything a core context does; you don't have to do any of the following to use buffer objects.

Oh, and buffer objects are not an extension anymore. Use the core functions, not the extension functions you see in GL_ARB_vertex_buffer_object.

Note: the following is for QT 4.7 or above:

You must be at least semi familiar with QGLFormat; you need one in order to create a QGLWidget. Just call QGLFormat::setProfile on that object with QGLFormat::CoreProfile.

Sadly, QT does not allow you to specify a specific version. But that should be enough to get a core OpenGL profile, assuming your hardware implements OpenGL 3.2 or better.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文