欢迎访问:常州市武进区嘉泽中心小学网站 !今天是:
栏目列表
您现在的位置是:首页>>教师>>计算机技术>>程序设计>>游戏开发>>文章内容
着色器和效果——3.2 像素着色器输入和输出
发布时间:2008-11-20   点击:   来源:本站原创   录入者:佚名
 

3.2 像素着色器输入和输出

两样东西要输入到像素着色器:颜色和纹理坐标。两样都是以每像素为单位的。

注意:回想一下,顶点颜色是在图元的面(face of primitive)间进行插值的。

每个像素的纹理坐标就是简单的 (u , v) 坐标,它指定了像素正准备被映射到的纹理的纹理单元。Direct3D按每个像素来计算颜色和纹理坐标,从顶点颜色和顶点纹理坐标,在进入像素着色器之前。输入到像素着色器的颜色和纹理坐标的数量依赖于顶点着色器输出的颜色和纹理坐标的数量。例如,如果一个顶点着色器输出了两个颜色和三个纹理坐标,那么Direct3D将会按每个像素计算两个颜色和三个纹理坐标并且把它们把它们输入到像素着色器。我们使用带语意的语法(semantic syntax,译者注:参见译文第一章)映射这些输入颜色和纹理坐标进我们的着色器程序的变量里。使用前面的例子,我们可以这样写:

struct PS_INPUT

{

     vector c0 : COLOR0;

     vector c1 : COLOR1;

     float2 t0 : TEXCOORD0;

     float2 t1 : TEXCOORD1;

     float2 t2 : TEXCOORD2;

};

对于输出,像素着色器输出一个单一的计算过的该像素的颜色值:

struct PS_OUTPUT

{

     vector finalPixelColor : COLOR0;

};


附件:
    关闭窗口
    打印文档
    账号登录
    保持登录 忘记密码?
    账号与武进教师培训平台同步