旧版OpenGL 与 新版OpenGL

旧版OpenGL 与 新版OpenGL

分割线:OpenGL3.0。

3.0之前,所有OpenGL版本都与早期版本完全向后兼容。针对OpenGL 1.1编写的代码可以在OpenGL 2.1实现中很好地执行。

3.0,引入了废弃functionality的想法。许多OpenGL函数被声明为已弃用,这意味着用户应避免使用它们,因为它们可能会从更高版本的API中删除。

3.1,OpenGL 3.1删除了OpenGL 3.0中几乎弃用的所有功能。这包括固定功能管道。

但是,由于许多实现仍然支持那些不推荐使用和已删除的功能,因此某些实现希望能够为更高GL版本的用户提供一种访问旧API的方式。尝试了几种技术,最终将其分为core和compatibility上下文。

具体说就是,引入了新的扩展名ARB_compatibility。此扩展的存在向用户发出信号,表明已弃用或删除的功能仍然可以通过原始入口点和枚举使用。此种实现的行为由单独的,更大的OpenGL规范定义。因此,存在一个向后兼容的规范和一个非向后兼容的规范。(此时并不存在profile:core&compatibility,只是有这么一个规范)

3.2,OpenGL被分为core和compatibility两种配置文件(profile)。核心只需要一种实现来定义,所以并不能保证可获得compatibility。但是大多数实现中,compatibility配置文件是可获得的。

3.2还引入了新的上下文创建机制,可以返回不同版本的上下文。

旧版OpenGL:在2008年,发布了OpenGL规范的3.0版。在此修订版中,固定函数管道以及大多数相关的OpenGL函数和常量已声明为弃用。这些不推荐使用的元素和概念现在通常称为旧式OpenGL。

以上参考:

旧版OpenGL

OpenGL上下文

与此相关的问题:

1.在GLAD中,为什么没有glBegin?

把core切换成compatibility即可。

2.glBegin在哪个版本被废弃?

3.为什么新版OpenGL的core模式强制使用VAO?而VBO和IBO不能直接渲染?

The compatibility OpenGL profile makes VAO object 0 a default object. The core OpenGL profile makes VAO object 0 not an object at all. So if VAO 0 is bound in the core profile, you should not call any function that modifies VAO state. This includes binding the `GL_ELEMENT_ARRAY_BUFFER` with glBindBuffer.

参考:Vertex Specification

4.VAO出现在哪个版本?

3.0。可从API中查找函数glGenVertexArrays对应的版本号。

5.哪个版本强制使用了VAO?

3.2的core模式。

6.GLFW+GLAD,如何不使用VAO,而仅使用VBO和IBO进行渲染?

方法有二:

1)设置3.1及以前的版本。

2)设置3.2及以后的版本,并设置glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_COMPAT_PROFILE);向后兼容。

7.避免使用旧版OpenGL的原因。

参考:旧版OpenGL

8.自Ope​​nGL 2.0以来的大多数硬件都缺少实际的固定功能硬件。而是使用系统构建的着色器模拟固定功能的过程。

参考:固定功能管道

9.固定渲染管线与立即渲染模式关系。

两者是一个东西。参考:核心模式与立即渲染模式

10.既然OpenGL 4.6 都出来了,为什么我们还要学习OpenGL 3.3?

所有OpenGL的更高的版本都是在3.3的基础上,引入了额外的功能,并没有改动核心架构。新版本只是引入了一些更有效率或更有用的方式去完成同样的功能。

详见核心模式与立即渲染模式

11.立即模式(immediate mode) 与 保留模式(retained-mode)。

参考:

What does “immediate mode” mean in OpenGL?

Immediate mode

Retained mode

相关手记

bet体育365官网安全吗 九阴真经无根门承道令挑战攻略_如何成功击败无根门并获取承道令
365bet手机在线 联想本怎么进bios

联想本怎么进bios

08-24 👁️ 7420
365提款一直在审核 门里面一个合是什么字

门里面一个合是什么字

09-26 👁️ 198
bet体育365官网安全吗 打印页面横向怎么设置_打印机横向打印,纵向打印设置与PDF打印不全问题
bet体育365官网安全吗 蚂蚁集团组织架构调整:新成立支付宝事业群
bet体育365官网安全吗 上古卷軸5:天際怎麽和別人啪啪啪 啪啪啪方法分享(攻略)