OpenGL渲染管线---概述(一)

渲染管线是OpenGL渲染场景的一整个过程,是将3D对象渲染到平面上的流程。OpenGL的渲染管线经历了由传统的固定管线(渲染过程中的步骤都是事先定义好的)到目前最新的可编程的方式(使用Shader实现),这主要得益于当前显卡的发展,新的显卡提供了用户可编程的能力。这一些列文章主要是描述OpenGL渲染管线的方方面面,从固定管线到可编程管线的差异说起,尽管固定管线目前被标识为Deprecated,但是从学习的意义上来说还是有价值的,让我们更好的了解图形学专家是如何设计这一流程的。通过对渲染管线的过程的学习,同时引入在学习过程中的一些理论知识以及其中涉及到的API。随着对这些内容的了解,尝试使用软的方式来模拟渲染的过程。

本文是这系列文章的开篇,主要简单介绍渲染管线的过程。

  • 固定管线
OpenGL固定管线的过程如下图所示:
OpenGL渲染管线---概述(一)_第1张图片
上图中仅描述了对于顶点数据的处理,对于顶点类型的数据的处理过程描述的比较详细。事实上OpenGL也提供了对于Pixel-Based数据的处理,综合这两种数据,固定管线的一个描述如下图所示:
OpenGL渲染管线---概述(一)_第2张图片

  • 可编程管线
可编程管线相比固定管线,将固定管线中的一部分内容可以用编程的方式实现,相对比较灵活。如下图所示:
OpenGL渲染管线---概述(一)_第3张图片

可以看到主体没有什么变化,但是固定管线中的几何变换和光照计算被VertexShader(顶点Shader)取代了,固定管线中的纹理映射、雾效处理等被FragmentShader(片元Shaser)取代了。考虑到对于Pixel-Based数据的处理,详细的可编程管线的图示如下:
OpenGL渲染管线---概述(一)_第4张图片



你可能感兴趣的:(OpenGL渲染管线)