OpenGL 02 - OpenGL下的专业名词

1、Context:上下文

在应用程序在任何OpenGL的指令之前,需要安排首先创建一个OpenGL的上下文,这个上下文是一个非常庞大的状态机,保存了OpenGL中的各种状态,这也是OpenGL指令执行的基础

OPENGL函数不管在哪个语言中,都是类似C语言一眼的面向过程的函数,本质上都是OpenGL上下文这个庞大的状态机中某个状态或者对象进行操作,当然你的首先把这个对象设置为当前对象,因此,通过对OpenGL指令的封装,是可以将OpenGL的相关调用封装称为一个面向对象的图形API的

由于OpenGL上下文是一个巨大的状态机,切换上下文往往会产生较大的开销,但是不用的绘制模块,可能需要使用完全独立的状态管理,因此,可以在应用程序中分别创建多个不同的上下文,在不用线程中使用不同的上下文,上下文之间共享纹理,缓中趋等资源,这样的方案,会比反复切换上下文或者大量修改渲染状态要更加合理高效

2、OpenGL状态机:

(1)OpenGL可以记录自己的状态(例如当前使用的颜色,是否开启了混合功能等)

(2)OpenGL可以接受输入(当调用OpenGL函数的时候,实际上可以看成OpenGL在接收是我们的输入)如我们调用glColor3l,则OpenGL接收到这个输入后会修改自己的“当前颜色”这个状态

(3)OpenGL可以进去停止状态,不再接收输入,在程序退出前,OpenGL总会先停止工作的

eg:

glClearColor(1.0,10,1.0);

glEable(GL_DEPTH_TEST);  // 开启深度测试

发布了79 篇原创文章 · 获赞 42 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/s12117719679/article/details/90232262