视频教程请关注 http://edu.csdn.net/lecturer/lecturer_detail?lecturer_id=440

学习shader之前必须知道的事情,shader(着色语言)到底发生在那个阶段, OpenGL的渲染管线有哪些阶段

对开发人员来说很重要,也许你刚刚接触,或者你在使用已有的产品,很优秀的游戏引擎,或者渲染引擎,你

觉得知道这个没有太大意义,但知道了这些,总归对你没有坏处。

下图是一个非常简化框图流水线的各个阶段,并在他们之间传播的数据。虽然极其简单,它是足够的着色器编程,

提出了一些重要的概念。固定管线中存在很多阶段,并存在很多细节,这里只是粗略的介绍。

(1)顶点变换:

在这里,一个顶点的属性,如在空间的位置,以及它的颜色,法线,纹理坐标,其中包括一组。这个阶段的输入

的各个顶点的属性。由固定的功能所执行的操作,主要完成一下工作:

  1.  顶点位置变换
  2.  计算顶点观照
  3.  纹理坐标变换

(2)图元装配:

这个阶段的输入的变换后的顶点,以及连通性信息。这后者的一块数据告诉顶点如何连接,以形成一种原始的

绘制数据,这个阶段还负责对视锥裁剪操作,背面剔除。光栅扫描确定的片段,和原始的像素位置。

在此上下文中的片段是一块的数据,将用于更新的像素在帧缓冲区中,在特定的位置。片段包含不仅是颜色,

也法线和纹理坐标,其中包括可能的属性,被用来计算新像素的颜色。上面的顶点变换阶段,计算出的值与顶点连接信息相结合,

允许当前阶段来计算相应的属性的片段。比如,每个顶点的变换位置。当考虑到顶点,使一个原语,

是可以计算的原始片段的位置。另一个例子是,使用的颜色。如果一个三角形,然后用不同的颜色有其顶点的颜

色的三角形内的片段片段的相对的顶点的距离加权的三角形的顶点的颜色插值的方式获得。

(3)纹理映射,着色:

  插值片段信息是这一阶段的输入。彩色已经在前一阶段的计算是通过内插法,在这里,它可以结合例如一个纹理像素(纹理元素)。

纹理坐标也已经在前一阶段内插。雾也适用于在这个阶段。每个片段的本阶段的共同的最终结果是一个颜色值和深度的片段。

(4)最后阶段的管道上的片段,进行了一系列的测试:

  1. 裁减测试
      2.Alpha(透明度)测试
      3.模板测试
      4.深度测试

通过测试的片段信息,然后用于更新的像素的值,根据当前的混合模式。请注意,混合只发生在这个阶段,因为片段纹理和着色阶段,

有没有访问帧缓冲区。帧缓冲区是唯一能够在这个阶段。

下图很明了的说明了各个阶段的任务:

最后这个图画 的比较丑,大家见谅(ps 基本属于文盲),鉴于本人能力有限,对各个阶段的理解如有不错误

还请指教。

最后,到shader上场了,shader具体在那个阶段呢(现在的shader已经出到第四版本了,增加了很多新功能)

vertex shader(顶点shader)发生在顶点变换阶段,通过顶点shader可以修改一些基本的图元属性,颜色,光照,发现等

fragment shader(片段shader)主要发生在 纹理着色阶段,主要是对上一阶段输出的数据,进行再次加工。

转载于:https://www.cnblogs.com/zhanglitong/p/3238989.html

OpenGL-渲染管线的流程(有图有真相)相关推荐

  1. OpenGL渲染管线之简单示例(五)

    前言:这一章我们将对前面的所有知识进行实践,通过OpenGL编程,完成一个简单的OpenGL程序.你可以通过访问我的GitHub获取我学习的HelloOpenGL项目.这个项目需要的所有头文件及库均配 ...

  2. OpenGL渲染管线介绍

    一.概述 OpenGL是跨平台计算机图形应用程序的应用规范,广泛应用于仿真.游戏.GIS系统等领域,实现二三维图形的渲染.OpenGL渲染过程需要经历CPU.GPU两个阶段,CPU中进行图形计算,完成 ...

  3. 小强学渲染之OpenGL渲染管线详析

    什么是OpenGL? OpenGL是一套图形硬件的软件API接口库,它直接和GPU交互,将3D场景渲染绘制到2D屏幕上.总结说,OpenGL的功能是将程序中定义的各种2D或3D模型绘制到帧缓存中,或者 ...

  4. OpenGL 渲染管线理论

    这几天稍微看了一些关于GLSL的顶点着色以及片元着色的一些相关知识.目前来讲还有一个着色器则是Geometry_shader..我的显卡用不了这个功能..当然有点遗憾>_<..       ...

  5. 《OpenGL编程指南(原书第9版)》——1.4 OpenGL渲染管线

    1.4 OpenGL渲染管线 OpenGL实现了我们通常所说的渲染管线(rendering pipeline),它是一系列数据处理过程,并且将应用程序的数据转换到最终渲染的图像.图1-2所示为Open ...

  6. OpenGL: 渲染管线理论

    学习着色器,并理解着色器的工作机制,就要对OpenGL的固定功能管线有深入的了解. 零.首先要知道几个OpenGL的术语 渲染(rendering):计算机根据模型(model)创建图像的过程. 模型 ...

  7. OpenGL 渲染管线理论

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 学习着色 ...

  8. opengl渲染管线(Graphics Pipeline)

    opengl渲染管线 前言:在OpenGL中,任何事物都在3D空间中,但是屏幕和窗口都是2D像素数组,因此OpenGL大部分工作都是将3D坐标转化为适应屏幕的2D像素.3D坐标转化为2D坐标的过程是O ...

  9. OpenGL渲染管线解析

    背景: 本篇文章主要偏向理论知识的讲解,实践方面后期会进行讲解.opengl的渲染管线中,如果接触3D渲染不多情况下,比如经常做视频滤镜或视频渲染显示的话,经常接触的两个部分就是顶点着色器.片段着色器 ...

最新文章

  1. 爬虫与浏览器的区别,爬虫产生(出自简书)
  2. 删除u盘mbr多余启动项 linux,高手教你怎么修复U盘的MBR
  3. 观感人故事《我们俩》
  4. 细说angular Form addControl方法
  5. MySQL -A不预读数据库信息(use dbname 更快)
  6. C++ namespace 命名空间
  7. /etc/fstab详解
  8. 标记 (TAG) 您的 k8s 集群资源
  9. 嵌入式开发环境ARM+linux的搭建
  10. GET和POST方式提交参数给web应用
  11. Broadcom获得65亿美元过度贷款以收购Brocade
  12. SharePoint 2013 对二进制大型对象(BLOB)进行爬网
  13. 《硅谷钢铁侠的跨界传奇-埃隆马斯克传》阅读笔记
  14. 泛微云桥e-Bridge安装手册
  15. NES模拟器源码阅读
  16. Android开发者上手宝典(三)
  17. TI AM5728 CPSW网口调试笔记
  18. 记录下在线扩容服务器遇到的问题 NOCHANGE: partition 1 is size 419428319. it cannot be grown
  19. Access to XMLHttpRequest at ‘file:///D:/xx/xxx.json‘ from origin ‘null‘ has been blocked by CORS问题解决
  20. 005-电脑软件安装包20190408

热门文章

  1. Django models文件模型变更注意事项(表结构的修改)
  2. linux命令之上传文件和下载文件
  3. Xcode10 闪退问题
  4. 谈javascript变量声明
  5. 网页设计的12种颜色
  6. 如何在debian 中启用 fbcon
  7. ipvsadm+keepalived安装错误解决
  8. Git远程操作详解【转】
  9. 关于嵌套循环的循环初始化语句问题:
  10. 即日起更新机器学习相关博客