OpenGL常用名词解析

刚进入学习OpenGL的阶段,先大致总结一下一些常用基本名词&概念吧~有不恰当的理解欢迎指出

渲染?

        也叫绘制,是将图形、图像从数据转换成可视图像的操作,代码行间通常以render字样出现。

        垂直同步,显示器刷新是逐行进行的,每一帧完整的刷新后发出的信号,称为垂直同步信号;利用两次信号之间的时间间隔进行缓冲区交换,称为垂直同步技术。

        而把图像渲染上屏,初期运用的是双缓冲区的设计,以解决绘制过程中,图像显示不完整的问题;后期进行优化有了三缓冲区,其想法是等待垂直同步时,来回交替两个离屏的缓冲区,达到充分利用硬件性能的目的。



上下文context

        类比OC里的CoreGraplhic使用场景,OpenGL在执行任何操作之前,需要先创建一个上下文环境。这个环境里包含了OpenGL提供给开发者可供修改的各种状态,是一个状态机池容器。

        OpenGL的函数是面向过程的,通过对这些函数指令操作的封装,就成为了可供开发者直接调用的面向对象的图形API了。

        可以通过创建不同的上下文,共用纹理、缓冲区等资源,并分发到不同线程去处理的方案,来解决切换上下文带来的巨大开销的问题。

状态机

        例如glClearColor(1.0,1.0,1.0,1.0)的调用,就是一个通过接受开发者输入的参数,去记录一个颜色值的状态,并在稍后重绘的时候进行渲染。


顶点数组

        包括图形所有顶点的坐标数据,存放在内存中,由GPU调用。而顶点缓冲区,则是为了提升顶点绘制的效率,由GPU在显存中开辟的一部分空间作为顶点数据缓存。

管线

        指OpenGL在渲染过程中,经历的各个节点,汇聚成一个任务流水线,有制定好的执行顺序。

        固定管线:早期OpenGL封装好不可改变的管线,只能实现预设好的场景。

        可编程管线:在不改变整个执行顺序的前提下,OpenGL开放了两个模块可供编程,分别是顶点着色器、片元着色器。

            顶点着色器vertexShader:处理图形的顶点,根据顶点数量来决定调用次数。

            片元着色器fragmentShader:为每一个像素点计算和填充颜色。

光栅化

        把顶点数据圈定的区域,转换成可供渲染的片元,以及片元里的每一个像素点。

纹理

        就是像素级的图片,渲染的时候作为纹理贴上去

混合Blending

        如果通过了隐藏面剔除等操作后,像素依然存留需要渲染,会跟帧缓冲区中的颜色进行混合,混合算法由OpenGL提供。

变换矩阵Transformation

        图形发生位移、旋转等变化时,用的容器载体

投影矩阵Projection

        把3D坐标转换为2D的容器载体

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容