VBGAME-DIRECT3D

坚持并快乐着!——繁星
posts - 15, comments - 15, trackbacks - 0, articles - 1
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

像素着色器(1)

Posted on 2006-11-24 19:33 繁星 阅读(893) 评论(0)  编辑 收藏 引用

Microsoft DirectX 8.1 (Visual Basic) (pixel shader versions 1.0, 1.1, 1.2, 1.3, 1.4)

Pixel Shader ALU (像素着色器逻辑运算单元)

下图显示了一个像素着色器运算逻辑单元 (ALU) 的平行管线结构。左边的是矢量管线,它操作矢量数据。矢量数据也被叫做颜色数据,包含三个数据通道( RGB )。右边的是一个标量管线,它操作单一一个 alpha 值。管线依照它所操作的数据种类而被分别称为颜色管线和 alpha 管线。

BlockDiag_PixelShader_ALU.gif

解释说明如下:

Input Registers 像素着色器寄存器 为 像素着色器 提供 GRBA 输入数据。

Component Copy 源寄存器选择器 把数据从一个通道复制到另一个通道,这个操作一般被叫做 交叉混合。

Modify Data - 在一个指令被执行之前,源寄存器修饰器 修饰从源寄存器读入的数据。

Execute Instruction - 指令通常用于在像素着色器上实现算术和纹理地址操作。颜色和 alpha 管线并不一定执行相同的指令或者有相同的源寄存器。对于 PS.1.4 ,目的寄存器 可能也可不同。

Modify Result - 在执行结果被写入输出寄存器之前,指令修饰器 修饰执行结果。

Masking - 目的寄存器写入掩码 能控制目的寄存器的哪个分量被指令写入。

Output Register - 在着色器的末尾,像素着色器寄存器 r0 包含最后的输出结果(也就是最后的结果要写入到 r0 中)。
////////////////////////////////////////////////////////////////////////////////////////////////////////
从今以后我会逐渐翻译出MSDN上的PS(1.0-1.4)的内容。水平有限,错误之处再所难免,望请指正。
只有注册用户登录后才能发表评论。