书法字典:https://www.shufadict.com

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;
};

posted on 2009-10-29 16:38  翰墨小生  阅读(1513)  评论(2编辑  收藏  举报

导航

书法字典:https://www.shufadict.com