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. redis学习资料

    http://www.it168.com/redian/redis/ http://down.51cto.com/data/836008 http://www.redis.cn/

  2. 网站论坛同步用户,整合api,实现…

    在网上参考了很多资料后,终于完美实现了网站和discuz!nt论坛的双向整合,整合后网站和论坛之间可以同步注册.登录.退出和修改登录密码操作. 本系统的实现形式是新云CMS网站(ASP)和Discuz ...

  3. LIRe 源代码分析 5:提取特征向量[以颜色布局为例]

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

  4. Gradle 1.12用户指南翻译——第三十九章. IDEA 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  5. Android为什么使用Binder-android学习之旅(101)

    基础知识 Android进程和linux进程一样,他们只运行在进程固有的虚拟空间中.一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间 ,用户空间是非共享的,内核空间是共享的,如下图: ...

  6. Mongodb3.6 基操命令(二)——如何使用help

    前言 在上一篇文章Mongodb3.6 快速入门(一)中,我们主要使用两个命令: 1.mongod #启动服务 2.mongo #连接mongodb 对于刚接触mongo的人来说,该怎么给命令传递参数 ...

  7. Spring2.5整合Ibatis入门级开发实例

      分类: SPRING IBATIS2010-11-22 20:19 1170人阅读 评论(0) 收藏 举报 ibatisspringstringpropertiesclassuser 最近一直在看 ...

  8. Day11 数据库的基本语法(偏重于查询)

    数据库的介绍: 老师博客: MYSQL-1 - Yuan先生 - 博客园 http://www.cnblogs.com/yuanchenqi/articles/7269675.html 作业地址: h ...

  9. python做量化交易干货分享

    http://www.newsmth.NET/nForum/#!article/Python/128763 最近程序化交易很热,量化也是我很感兴趣的一块. 国内量化交易的平台有几家,我个人比较喜欢用的 ...

  10. gitlab钩子搭建

    目标:在本地开发机上push代码到GitLab仓库时,通过钩子同步到测试服务器 准备工作GitLab 服务器一台测试服务器一台本地开发服务器一台 1.在gitlab上新建一个项目,名称test2.在本 ...