渲染管线

  • 具体流程图
  • 顶点着色器
  • 光栅化
  • 片段着色器
  • 测试混合阶段

具体流程图


步骤:

1.首先输入了1,2,3,4四个顶点的数据
2.Vertex Processing : 经过变换、投影等操作,将这些点投影到屏幕上。
3.Triangle Processing : 投影到屏幕上的一个个点都是离散的,将其连接起来,成为三角形
4.Rasterization : 形成三角形之后要将三角形画在屏幕上,屏幕是由一个个像素组成的,是离散的,所以要经过光栅化将三角形离散成一个个像素(这里fragment是opengl中的概念,片段的意思,在这里我们就把它理解成像素)
5.Fragment Processing : 对每个像素进行着色
6.Framebuffer Operations : 得到屏幕上最终显示出来的图像

顶点着色器


顶点着色器主要功能是进行坐标变换。将输入的局部坐标变换到世界坐标、观察坐标和裁剪坐标。虽然我们也会在顶点着色器进行光照计算(称作高洛德着色),然后经过光栅化插值得到各个片段的颜色,但由于这种方法得到的光照比较不自然,所以一般在片段着色器进行光照计算(phong计算)。

光栅化


经过图元组装以及屏幕映射阶段后,我们将物体坐标变换到了窗口坐标。光栅化是个离散化的过程,将3D连续的物体转化为离散屏幕像素点的过程。包括三角形组装和三角形遍历两个阶段。光栅化会确定图元所覆盖的片段,利用顶点属性插值得到片段的属性信息,然后送到片段着色器进行颜色计算,我们这里需要注意到片段是像素的候选者,只有通过后续的测试,片段才会成为最终显示的像素点。

片段着色器


片段着色器:片段着色器在DirectX中也成为像素着色器(Pixel Shader)。片段着色器用来决定屏幕上像素的最终颜色。在这个阶段会进行光照计算以及阴影处理,是渲染管线高级效果产生的地方。

上面采用顶点着色器逐顶点绘制图形(高洛德着色)
下面采用片段着色器进行逐像素绘制(冯着色)

测试混合阶段

管线的最后一个阶段是测试混合阶段。测试包括裁切测试、Alpha测试、模板测试和深度测试。没有经过测试的片段会被丢弃,不需要进行混合阶段;经过测试的片段会进入混合阶段。Alpha混合可以根据片段的alpha值进行混合,用来产生半透明的效果。Alpha表示的是物体的不透明度,因此alpha=1表示完全不透明,alpha=0表示完全透明。测试混合阶段虽然不是可编程阶段,但是我们可以通过OpenGL或DirectX提供的接口进行配置,定制混合和测试的方式。

计算机图形学中的渲染管线相关推荐

  1. 计算机图形学中向量点乘和叉乘的用途_图形学笔记(一):基础知识

    从这便文章开始整理学习到的计算机图像学相关知识,原则是只写我没在网上找到清楚解释的内容,如果有很好的文章介绍相关内容,我会直接把链接贴上. 首先弄清 Computer Graphics和 Comput ...

  2. c语言 连通域算法 递归,VC++ 6.0编写计算机图形学中的种子填充算法,想用递归的八向连通域,求助!...

    VC++ 6.0编写计算机图形学中的种子填充算法,想用递归的八向连通域,求助!0 填充函数代码如下: void CComputerGraphicsView::PolygonFill2()//区域填充函 ...

  3. 数学系列:数学在计算机图形学中的应用

    宇宙的琴弦 博客园 首页 新随笔 联系 订阅 管理 随笔 - 60   文章 - 0   评论 - 0 数学系列:数学在计算机图形学中的应用 Copyright © 1900-2016, NORYES ...

  4. 计算机图形学中需要掌握的数学基础知识有哪些?

    计算机图形学中使用了大量数学知识,尤其是矩阵和线性代数.虽然我们倾向于认为3D图形编程是紧跟最新技术的领域之一(它在很多方面确实是),但它用到的很多技术实际上可以追溯到上百年前,其中一些甚至是由文艺复 ...

  5. 数学在计算机图形学中的应用

    数学在计算机图形学中的应用 刘利刚 中国科技大学 "学习计算机图形学需要多少的数学?"这是初学者最经常问的问题. 狭义的计算机图形学指的是传统的三维建模,绘制,动画等,而广义的计算 ...

  6. 计算机图形学中的曲线问题

    文章目录 免责 前言 拉格朗日插值多项式 第一步:得到一个基函数 第二步:得到所有基函数 第三步:对所有基函数进行线性组合 举例验证 拉格朗日插值曲线绘制实践 三次埃尔米特插值多项式 第一步:得到第一 ...

  7. 《 线性代数及其应用 (原书第4版)》—— 2.7 计算机图形学中的应用

    本节书摘来自华章出版社< 线性代数及其应用 (原书第4版)>一书中的第2章,第2.7节,作者:(美)戴维C. 雷(David C. Lay)马里兰大学帕克学院 著刘深泉 张万芹 陈玉珍 包 ...

  8. 计算机图形学中的四元数(Quaternions)

    计算机图形学中的四元数 计算机图形学中的四元数(Quaternions) 前言 欧拉角 欧拉角的万向节死锁(Gimbal Lock)与插值问题 四元数 参考 计算机图形学中的四元数(Quaternio ...

  9. 几何学在计算机中的应用,分形几何在计算机图形学中应用.docx

    文档介绍: 分形几何在计算机图形学中应用.docx分形几何在计算机图形学中应用摘要:介绍了分形几何理论的基础以及分形图形的主要生成方法,阐述了分形几何学在计算机图形学中的应用.关键词:分形几何;计算机 ...

最新文章

  1. symfony2是什么?
  2. 最新的全球编程语言,操作系统,web服务器等使用率分析报告
  3. CFRunLoopRef 的内部逻辑(向 ibireme学习)
  4. 替换Android自带apk【转】
  5. WPF窗体置于桌面最底层
  6. [转] C# TextBox、DataGrideView中的数据绑定
  7. python中字符串注意事项
  8. 正则表达式 任意数字_作为运维还不会正则表达式?赶快看这篇学习一下
  9. python对文件的处理_python文件处理fileinput使用方法详解
  10. VC文件读写操作总结
  11. 精通JavaScript DOM事件
  12. Android实现两台手机屏幕共享和远程控制
  13. 一文带你吃透黑盒测试跟白盒测试的区别
  14. (转)一个偷食禁果的女孩--一件我亲眼目睹的真实感人故事
  15. 湖大计算机考研跟南航比,省三也可以逆袭进入985大学?这49所自主招生高校都收省三!...
  16. 松翰单片机数码管c语言,松翰单片机定时中断数码管程序
  17. JAVA边界布局和setbound_深入探究frame和bounds的区别以及setbounds使用
  18. 裸眼3D全息投影技术
  19. java毕业设计青少年心理健康公益扶助网站源码+lw文档+mybatis+系统+mysql数据库+调试
  20. android 行高和字号之间关系,字号与行高

热门文章

  1. PostgreSQL 大象 -- Slonik 的历史
  2. @Repeatable注解信息获取
  3. 解决sougo输入法在Ubuntu下汉字输入出现数字代码的问题
  4. 苹果签名证书失效后该如何处理
  5. html5圆的中心点,HTML5 clearRect()清除圆形区域
  6. 教你制作最近网上很火的,微信带小辫子表情包
  7. futter 通过判定输入框组件是否都有值,对按钮进行禁用/启用。
  8. java 事务嵌套_嵌套事务回滚
  9. go linux 开发工具,使用Go 语言开发必备的5大开源工具
  10. 自定义查询 java_JAVA自定义查询策略