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;
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值