第三章 介绍像素着色器
阅读此文表明您已同意文末的声明
像素着色器是在对每个像素进行光栅化处理期间在图形卡的GPU上执行的程序。(不像顶点着色器,Direct3D不会以软件模拟像素着色器的功能。)它实际上替换了固定功能管线的多纹理化阶段(the multitexturing stage),并赋予我们直接操纵单独的像素和访问每个像素的纹理坐标的能力。这种对像素和纹理坐标的直接访问使我们可以达成各种特效,例如:多纹理化(multitexturing)、每像素光照(per pixel lighting)、景深(depth of field)、云状物模拟(cloud simulation)、焰火模拟(fire simulation)、混杂阴影化技巧(sophisticated shadowing technique)。
图形卡支持的像素着色器的版本可以通过D3DCAPS9结构的PixelShaderVersion成员和D3DPS_VERSION宏进行检查。下列代码片断展示了这点:
// If the device's supported version is less than version 2.0
if( caps.PixelShaderVersion < D3DPS_VERSION(2, 0) )
// Then pixel shader version 2.0 is not supported on this device.
目标
n 获得对多纹理化概念的基本理解
n 学习如何编写、创建并使用像素着色器
n 学习如何使用像素着色器实现多纹理化效果
[声明]:本文译自Frank Luna的《Introduction to 3D Game Programming with DirectX 9.0》,限于译者水平,文中难免错漏之处,欢迎各位网友批评指正;本文仅用于学习交流与参考用途,不得用于任何形式的商业用途;如需转载需事先征得译者同意,保持文章的完整性,并注明译者和出处,译者保留对译文的所有权利。对于违反以上条款造成的后果,译者对此不负任何责任。我的MSN是Raymond_King123@hotmail.com,欢迎热爱3D图形和游戏,并有一定图形编程经验的朋友与我进行交流。