OPENGL固定图形渲染管线可以粗略地认为由下面的阶段衔接而成:

顶点颜色,光照,材质三个输入在光栅化前控制绘制管线的操作。光照和材质不能单独使用。顶点颜色,光源颜色,材质颜色都有alpha值,它们的alpha经过运算最后会保存在光栅化后的图元中,也就是说它们的影响也就在上图中红色虚线上方。输入是顶点(几何坐标、顶点颜色),矩阵,光照(光源,参数),材质,输出是片元。

纹理映射的过程的本质是根据纹理信息对片元的再处理,这个过程可能改变片元的alpha值。输入是片元,纹理(纹理坐标、各种参数),输出还是片元。

Alpha值最终通过Alpha混合阶段影响绘制效果,输入时片元,输出是帧缓存颜色值。

一,概述
        当前OpenGL的版本为3.3,基于可渲染管线,实现模型生成,渲染,图像输出等工作。

可渲染管线就是把三维顶点经过一系列加工变成二维的离散的像素点。并且用户可以在特定着色阶段自由配置(如在顶点着色和片段着色阶段,这也是和固定流水线最大的不同)。可渲染管线简要流程如下图所示。

二,详细流程
        上图所示基本上是正确的,但不太直观,一个三维顶点怎么变换成像素的呢?我把它分为两大步,先把三维顶点二维化,在把二维顶点离散化(像素化)。

1,三维坐标变换成二维坐标
(1)模型顶点构建

模型顶点都是相对模型自己的坐标构建的,即物体坐标。只能表达模型的形状,无法得到它的位置和姿态,这就必须引入世界坐标。

(2)变换到世界坐标

世界坐标表达一个更大的坐标域,模型的每个顶点都可以由世界坐标表达出来,由物体坐标到世界坐标,需乘以一个世界矩阵,这样就得到了相对世界坐标的模型。

(3)世界坐标变换相机坐标

世界坐标变换相机坐标,由物体坐标到世界坐标,需乘以一个观察矩阵,这样就得到了相对于相机坐标的模型。

(4)相机坐标变换屏幕坐标1

相机坐标变换屏幕坐标。任何三维模式都是以二维形式(屏幕)显示的。所以三维模型通常要转化为二维。首先要以相机为原点构建视锥体。

(5)相机坐标变换屏幕坐标2
        接下来模型的三维坐标就要变换到二维坐标了,需乘以透视矩阵,最终得到了一个投影于视锥体近平面的二维模型。


2,二维顶点像素化
        经过透视投影得到的顶点是线性的,无法显示在屏幕上,还需要进行像素化,如下图:

————————————————
版权声明:本文为CSDN博主「先锋小牛」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/niu2212035673/article/details/78627307

OPENGL图形渲染管线图解的更多相关文章

  1. [转]OpenGL图形渲染管线、VBO、VAO、EBO概念及用例

    直接给出原文链接吧 1.OpenGL图形渲染管线.VBO.VAO.EBO概念及用例 2.OpenGL中glVertex.显示列表(glCallList).顶点数组(Vertex array).VBO及 ...

  2. OpenGL图形渲染管线、VBO、VAO、EBO概念及用例

    图形渲染管线(Pipeline) 图形渲染管线指的是对一些原始数据经过一系列的处理变换并最终把这些数据输出到屏幕上的整个过程. 图形渲染管线的整个处理流程可以被划分为几个阶段,上一个阶段的输出数据作为 ...

  3. openGL图形渲染管线

    在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应屏幕的2D像素.3D坐标转为2D坐标的处理过程是由OpenGL的图形渲 ...

  4. OpenGL图形管线和坐标变换[转]

    1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection Transformation).做个比 ...

  5. 3D图形渲染管线

    3D图形渲染管线 什么是渲染(Rendering)    渲染简单的理解可能可以是这样:就是将三维物体或三维场景的描述转化为一幅二维图像,生成的二维图像能很好的反应三维物体或三维场景(如图1):    ...

  6. OpenGL图形管线和坐标变换

    转:http://blog.csdn.net/zhulinpptor/article/details/5897102 1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(Mo ...

  7. [OpenGL ES 02]OpenGL ES渲染管线与着色器

    [OpenGL ES 02]OpenGL ES渲染管线与着色器 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循"署名-非商业用途-保持一致"创 ...

  8. OpenGL 图形管道(graphics pipeline)过程

    1.总结:Graphics pipeline 主要分为两部分工作 把3D坐标转换成2D坐标 把2D坐标转换成真实的有颜色的像素 2.下图就是一个顶点数据经过几个步骤后转化成显示在屏幕上像素的过程(一般 ...

  9. Android平台下OpenGL图形编程

    ref: Jayway Team Blog中OpenGL ES简明开发教程https://blog.jayway.com/tag/opengl-es/ OpenGL ES 开发教程http://www ...

随机推荐

  1. 升级mongodb数据库2.6.6到3.0.3,切换引擎,主从同步数据

    只升级mongodb的版本极为简单,更新/替换 bin/目录下的可执行文件即可. debian和osx上的升级,按步骤来,没什么好说的. http://docs.mongodb.org/manual/ ...

  2. CAD 卸载工具,完美彻底卸载清除干净cad各种残留注册表和文件

    CAD提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装CAD失败提示CAD安装未完成,某些产品无法安装,也有时候想重新安装CAD的时候会出现本电脑windows ...

  3. python实现经典冒泡算法

    利用for循环,完成a=[1,7,4,89,34,2]的冒泡排序 冒泡排序:小的排在前,大的排在后面

  4. 吴裕雄--天生自然HTML学习笔记:HTML 框架

    通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面. iframe语法: <iframe src="URL"></iframe> 该URL指向不同的网 ...

  5. 吴裕雄--天生自然HTML学习笔记:HTML 文本格式化

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. cas单点登录打包时下载慢!

    环境:win10 百度网盘下载 版本:  cas-overlay-template-5.3  提取码    d1b6 添加阿里的到pom.xml    注意添加到第一列 <!--阿里云仓库--& ...

  7. 我的第一个Quartz代码

    创建Maven项目   打开Eclipse->File->Project->Maven ->Maven Project直接下一步输入Group Id和Artifact Id , ...

  8. 云服务器 ECS--查找公网ip使用终端连接云服务

    前段时间购买了阿里云服务器,购买之后一直没用使用,今天来操作一波,可谓一波三折,只能说,不看他们的操作指南你可能连地方都找不到,所以,在这里,我想给初次购买阿里云服务的童鞋门,写写我是怎么使用阿里云服 ...

  9. 为啥Waymo和Uber间的官司,这么难界定?

    自动驾驶作为被众多巨头和创业者看好的技术及领域,已有众多企业涉足其中.在自动驾驶尚未完全落地.制定统一标准前,每家企业都在争分夺秒地进行研发,试图率先抢占自动驾驶的高地.毕竟一旦成功,就能够创造巨大的 ...

  10. 测试工程师不懂AI,还有未来吗?

    阿里妹导读:近几年人工智能.机器学习等词漫天遍地,似乎有一种无AI,无研发,无AI,无测试的感觉.有人说:不带上"智能"二字,都不好意思说自己是创新.我们先暂且不评论对错,只探讨这 ...