GPU流水线
主要分为两个阶段:几何阶段和光栅化阶段
 
几何阶段
     顶点着色器 ——> 曲面细分着色器(可选)----->几何着色器(可选)----->裁剪——>屏幕映射
 
     顶点着色器
         流水线的第一个阶段,输入来自于CPU,处理的基本单位为单个顶点,输入的每个顶点都会调用一次顶点着色器。
         主要工作是:坐标变换(比如改变顶点位置模拟水面、布料等)和逐顶点光照,并输出后续阶段需要的数据(常见的输出路径是经光栅化后交给片元着色器处理)。
     曲面着色器
         一个可选的着色器,用于细分图元。
     几何着色器
         用于执行逐图元操作,或者用于产生更多的图元
     裁剪
         将不在摄像机视野的顶点裁剪掉,并剔除某些三角图元的面片(主要处理一部分在视野内另一部分在视野外的图元。
     屏幕映射
         将每个图元的x和y坐标转换到屏幕坐标系(二维坐标系,与屏幕分辨率有很大关系)
 
光栅化阶段
     三角形设置 ——> 三角形遍历 -----> 片元着色器(可选)——>逐片元操作——>屏幕图像
 
     三角形设置
        该阶段计算光栅化一个三角形网格需要的信息。具体来说,上个阶段输出过来的都是三角网格的顶点,即三角网格每条边的两个端点。但如果要得到整个三角网格对像素的覆盖情况,我们就必须计算每条边上的像素坐标。为了能够计算边界像素的坐标信息,我们就需要得到三角形边界的表示方法。这就是一个计算三角网格表示数据的过程。
     三角形遍历
        该阶段会检查每个像素是否被一个三角网格覆盖,如果被覆盖就会生成一个片元。该阶段会根据上一阶段的计算结果判断一个三角网格覆盖了哪些像素,并用三角网格的三个顶点的信息对覆盖区域的像素进行插值。这一阶段会输出一个片元序列。
     片元着色器
        顾名思义,给每个像素着色。该阶段可由开发者编程实现一些渲染效果,并完成很多重要的渲染技术,如纹理采样等。片元着色器仅能影响单个片元。
     逐片元操作
        在DriectX中又称为输出合并阶段。
        主要任务:1)决定每个片元的可见性。如进行深度测试、模板测试。
                        2)如果一个片元通过了所有的测试,就需要把这个片元的颜色值和已经存储在颜色缓冲区中的颜色进行合并,或者说混合。
        过程: 片元——>模板测试——>深度测试——>混合——>颜色缓冲区。

GPU渲染流水线的简单概括的更多相关文章

  1. Unity 渲染流水线 :CPU与GPU合作创造的艺术wfd

    前言 对于Unity渲染流程的理解可以帮助我们更好对Unity场景进行性能消耗的分析,进而更好的提升场景渲染的效率,最后提升游戏整体的性能表现 Unity的游戏画面的最终的呈现是由CPU与GPU相互配 ...

  2. 移动端 像素渲染流水线与GPU Hack

    什么是 像素渲染流水线 web页面你所写的页面代码是如何被转换成屏幕上显示的像素的.这个转换过程可以归纳为这样的一个流水线,包含五个关键步骤: 1.JavaScript:一般来说,我们会使用JavaS ...

  3. Shader 入门笔记(二) CPU和GPU之间的通信,渲染流水线

    渲染流水线 1)应用阶段(CPU处理) 首先,准备好场景数据(摄像机位置,视锥体,模型和光源等) 接着,做粗粒度剔除工作. 最后,设置好每个模型的渲染状态(使用的材质,纹理,shader等) 这一阶段 ...

  4. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第五章:渲染流水线

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第五章:渲染流水线 学习目标 了解几个用以表达真实场景的标志和2D图像 ...

  5. Unity Shader 之 渲染流水线

    Unity Shader 之渲染流水线 什么是渲染流水线 一个渲染流程分成3个步骤: 应用阶段(Application stage) 几何阶段(Geometry stage) 光栅化阶段(Raster ...

  6. Unity Shader入门精要学习笔记 - 第2章 渲染流水线

    来源作者:candycat   http://blog.csdn.net/candycat1992/article/ 2.1 综述 渲染流水线的最终目的在于生成或者说是渲染一张二维纹理,即我们在电脑屏 ...

  7. 移动GPU渲染原理的流派——IMR、TBR及TBDR

    移动GPU渲染原理的流派--IMR.TBR及TBDR 移动GPU相对桌面级的GPU仅仅能算是未长大的小孩子,尽管小孩子在某些场合也能比成人更有优势(比方杂技.柔术之类的表演).但在力量上还是有先天的区 ...

  8. [GEiv]第七章:着色器 高效GPU渲染方案

    第七章:着色器 高效GPU渲染方案 本章介绍着色器的基本知识以及Geiv下对其提供的支持接口.并以"渐变高斯模糊"为线索进行实例的演示解说. [背景信息] [计算机中央处理器的局限 ...

  9. [原]关于flash GPU渲染的一些不完全测试(wmode,ie,chrome)

    关于flash GPU渲染的一些不完全测试(wmode,ie,chrome) 测试环境: 随意取一段优酷超清视频,在本地以网页最大化方式播放,分辨率约1080P左右. 观察不同wmode值下,flas ...

随机推荐

  1. How Many Processes Should Be Set For The Receiving Transaction Manager (RTM)

    In this Document   Goal   Solution   References APPLIES TO: Oracle Inventory Management - Version 10 ...

  2. Bootstrap 简介: 创建响应式、移动项目的工具

    原文链接: Introduction to Bootstrap: A Tool for Building Responsive, Mobile-First Projects 下载: 示例代码Boots ...

  3. Java深拷贝浅拷贝

    首先,Java中常用的拷贝操作有三个,operator = .拷贝构造函数 和 clone()方法.由于Java不支持运算符重载,我们无法在自己的自定义类型中定义operator=.拷贝构造函数大家应 ...

  4. UML之协作图

    面向对象动态建模,用于建立行为的实体间行为交互的四种图,状态图(Stage Diagram),时序图(Sequence Diagram),活动图(Activity Diagram)前面的博客中,我们已 ...

  5. 菜鸟玩云计算之十五:在Ubuntu上创建和管理Redhat虚拟机

    菜鸟玩云计算之十五:在Ubuntu上创建和管理Redhat虚拟机 chedou@hgdb.net 虚拟机给工作带来巨大的便利,不仅仅体现在资源的按需使用,而且配置的迁移特别方便.本文将使用Ubuntu ...

  6. LIRe 源代码分析 4:建立索引(DocumentBuilder)[以颜色布局为例]

    ===================================================== LIRe源代码分析系列文章列表: LIRe 源代码分析 1:整体结构 LIRe 源代码分析 ...

  7. navicat为mysql建立索引

    索引的目的是大大提高查询效率,还有读写效率. kettle向sql里面插入,更新时,也要建立索引,可以大大提升处理时间. 但是建立索引报错:Specified key was too long; ma ...

  8. MarioTCP:一个单机可日30亿的百万并发长连接服务器

    原文:http://blog.csdn.net/everlastinging/article/details/10894493 注:如果用此服务器做变长data的传输,请在业务处理函数中为input ...

  9. XSS攻击过滤处理

    关于XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中. XSS漏洞的危害 网络钓鱼,包括盗取各类用户账号: 窃取用户cooki ...

  10. 我对Spring的理解。

    1.Spring实现了工厂模式的工厂类(在这里有必要解释清楚什么是工厂模式),这个类名为BeanFactory(实际上是一个接口),在程序中通常BeanFactory的子类ApplicationCon ...