光栅化阶段(RS)之后,将进入PS/OM阶段。

参考外文资料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-7/

大致的管线流程应该是这样的:

RS光栅化的fragment达到64或者32(一个wave或者warp)后,PS调度模块会产生一个新的wave或者warp,并把它们传给PS shader阶段,PS shader得到调度信息后,会从video memory中取得PS code,执行shader 代码。注意和vs过程类似,ps过程中,也是每个stream core处理一个fragment。

我们的ps shader代码非常简单,只是单纯的输出颜色值,但要注意的一点是,在ps shader时候,gpu会自动做一件事情,就是属性差值,比如我们的三角形,我们只输入了三个顶点的颜色,但经过光栅化后,我们有很多fragment,系统会自动根据顶点颜色给各个fragment差值出颜色[经常的做法是双线性插值]。

PS shader中还可以执行纹理贴图,还有一些depth cull(这时,early z将会失效)或者颜色blend的功能,后面教程我们学到这些时候,可以再回来讨论D3D11管线。

我们的ps shader代码如下:

struct PixelInputType
{
    float4 position : SV_POSITION;
    float4 color : COLOR;
};

float4 ColorPixelShader(PixelInputType input) : SV_TARGET
{
    return input.color;
}

PS的输出会放在一个FIFO的buffer中,该buffer中内容会和depth block进行通信,之后经过深度测试和模版测试的fragment最终被传输到color block,再执行颜色alpha混合或者其它一些功能后,最终被传到video memory中Framebuffer,然后在屏幕上显示出来。这个过程就是D3D11管线中的MO(合并输出)阶段。

转载于:https://www.cnblogs.com/mikewolf2002/archive/2012/03/25/2416342.html

Directx11教程(18) D3D11管线(7)相关推荐

  1. Directx11教程(14) D3D11管线(2)

    Directx11教程(14) D3D11管线(2) 原文:Directx11教程(14) D3D11管线(2) 下面我们来了解一些GPU memory的知识,主要参考资料:http://fgiese ...

  2. Directx11教程(15) D3D11管线(4)

    本章我们首先了解一下D3D11中的逻辑管线,认识一下管线中每个stage的含义. 参考资料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through ...

  3. Directx11教程(66) D3D11屏幕文本输出(1)

    在D3D10中,通过ID3DX10Font接口对象,我们可以方便的在屏幕上输出文字信息,一个DrawText函数就能解决所有问题,但在D3D11中个,这个变得超级麻烦,因为微软移除了Font接口,要在 ...

  4. Directx11教程四十六之FBX SDK

    在之前的DX11入门系列文章中,有篇有关 Directx11教程四十之加载OBJ模型 读取obj模型数据的博客.不过在obj读取的那篇博客我有些坑并没有说,就是我写的那个obj解析器只能解析特定的ob ...

  5. Directx11 教程(2) 基本的windows应用程序框架(2)

    Directx11 教程(2) 基本的windows应用程序框架(2) 原文:Directx11 教程(2) 基本的windows应用程序框架(2) 在本教程中,我们把前面一个教程的代码,进行封装.把 ...

  6. OD使用教程18 - 调试篇18

    OD使用教程18 - 调试篇18 让编程改变世界 Change the world by program   十八,是一个神奇的数字. 每每提起,总让人心旷神怡. 例如十八精神,例如十八岁的天空,例如 ...

  7. STM32 电机教程 18 - MC Workbench生成工程代码的电机调试

    前言 磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩. PMSM的磁场定向控制框图如下图所示: 上一讲成功实现了基于NUCLE ...

  8. STM32 进阶教程 18 – ADC间断模式

    前言 STM32 的ADC拥有连续扫描模式,也有间断模式,间断模式较扫描模式需要更多的触发事件才能完成所有的通道转换操作,在实际工程应用中,可以利用间断模式实现一些特殊应用.关于间断模式,在STM32 ...

  9. STM32 基础系列教程 18 – IWDG

    前言 学习stm32 独立看门狗(IWDG)接口使用,学会用STM32内部独立看门狗(IWDG)实现程序异常时自复位功能. STM32F10xxx内置两个看门狗,提供了更高的安全性.时间的精确性和使用 ...

最新文章

  1. Delphi 中的颜色常量及效果图
  2. gridView 多余字符显示省略号...
  3. 轻量级日志采集系统Loki+grafana搭建
  4. Image-Based Aging Using Evolutionary Computing (EURO 2008)
  5. C++学习笔记:类的成员函数的声明与定义
  6. ALV打印不显示打印界面的问题
  7. jsapi支付签名_微信支付小程序支付全流程
  8. java cas volatile_每日一个知识点:Volatile 和 CAS 的弊端之总线风暴
  9. 多个会话对表加表级读锁和表级写锁后的操作权限分析(表级读锁+表级写锁)
  10. jpa调用mysql函数_Spring data jpa 调用存储过程处理返回参数及结果集(示例代码)
  11. 基于RV1126平台imx291分析
  12. 毕业设计-JavaWeb项目《图书馆借阅管理系统》-附源码
  13. c语言课程设计--打飞碟源代码,c语言课程设计_打飞碟提高篇.doc
  14. 位置式数字PI控制器C语言
  15. Dubbo笔记 ⑭ :Dubbo集群组件 之 Directory
  16. arm服务器的芯片编年史,64位ARM新篇章 历数史上经典64位处理器
  17. 如何批量删除 Word 中的页眉页脚、图片、超链接等内容?
  18. FME教程:GIS建筑面转CAD格式JMD,还原房屋建筑结构、层数、地物样式,shp转CAD,GIS转dwg
  19. 2018富途证券前端实习面试总结
  20. 立波软件管家:方便管理安卓手机应用、应用搬家、快速摇摇卸载应用、应用备份(souapp.com搜应用网推荐)

热门文章

  1. VTK:Utilities之SparseArray
  2. VTK:结构化网格之StructuredGridOutline
  3. C++反转字符串的算法(附完整源码)
  4. C++实现计数排序(附完整源码)
  5. C++friend 友元类和友元函数
  6. C++重载(overload)和重写(覆盖)的区别?
  7. QT绘制嵌套的圆饼状图
  8. QT实现太阳系系统八大行星
  9. java的算法库_利用Java写开源库 覆盖70多种推荐算法
  10. 「Apollo」class DescriptorBase(metaclass=DescriptorMetaclass)