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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.