zoukankan      html  css  js  c++  java
  • Pixel Shader 像素着色

    Introduction

    Pixel Shader是一段执行在GPU上的程序,只限于光栅化阶段。与Vertex Shader不同的是,D3D不会使用软件模拟Pixel Shader,Pixel Shader基本上取代了fixed pipeline中的multitexturing阶段,它使我们能够直接操作单独的像素,访问他们的纹理坐标,这使我们能够获得许多特效,比如多重纹理,逐像素光照,depth of field, 云效果,火焰效果,以及一些成熟的着色技术。

    Multitexturing

    因为Multitexturing是能用Pixel Shader实现的最简单的技术,所以我们有必要看一下什么是Multitexturing以及它能做什么?

    多重纹理与Blending非常类似,// to be continue…

    input and output

    input:color and texture coordinates

    output:color

    其中输入取决于Vertex Shader的处理结果,假设Vertex Shader输出了两个颜色和三个纹理坐标,那么Pixel Shader的输入就是相面的形式

    struct PS_INPUT
    {
         vector c0 : COLOR0;
         vector c1 : COLOR1;
         float2 t0 : TEXCOORD0;
         float2 t1 : TEXCOORD1;
         float2 t2 : TEXCOORD2;
    };

    而输出则只包含颜色信息

    struct PS_OUTPUT
    {
         vector finalPixelColor : COLOR0;
    };
    
    作者:zdd
    出处:http://www.cnblogs.com/graphics/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    Linux 搭建SVN server
    GREENPLUM简单介绍
    监听手机录音
    Java NIO与IO的差别和比較
    元数据驱动思考实例分析
    jQuery推断复选框是否勾选
    BitBlt介绍
    Android灭亡论之Firefox OS操作系统出现
    CEGUI添加自定义控件
    IFrame和Ajax比較
  • 原文地址:https://www.cnblogs.com/graphics/p/1592402.html
Copyright © 2011-2022 走看看