像素着色器入门-matplotlib官方参考文档

时间:2024-06-23 10:58:33
【文件属性】:

文件名称:像素着色器入门-matplotlib官方参考文档

文件大小:5.51MB

文件格式:PDF

更新时间:2024-06-23 10:58:33

DirectX 9 3D 翁云兵

第十八章 像素着色器入门 ((( ( IntroductionIntroductionIntroduction Introduction tototo to PixelPixelPixel Pixel ShadersShadersShaders Shaders ))) ) 像素着色器是一个执行在图形卡的 GPU 上的程序,它运行在对每个像素进行光栅化处理时。(不 像顶点着色器,Direct3D 不会以软件模拟像素着色器的功能。)它实际上替换了固定功能管线的多纹 理化阶段(the multitexturing stage),并赋予我们直接操纵单独的像素和访问每个像素的纹理坐标的能 力。这种对像素和纹理坐标的直接访问使我们可以达成各种特效,例如:多纹理化(multitexturing)、 每像素光照(per pixel lighting)、景深(depth of field)、云状物模拟(cloud simulation)、焰火模拟(fire simulation)、高级阴影技术(sophisticated shadowing technique)。 图形卡支持的像素着色器的版本可以通过 D3DCAPS9 结构的 PixelShaderVersion 成员和 D3DPS_VERSION 宏进行检查。下列代码片断展示了这点: 目标目标目标 目标  获得对多纹理化概念的基本理解  学习如何编写、创建并使用像素着色器  学习如何使用像素着色器实现多纹理化效果 18.118.118.1 18.1 多纹理化概览多纹理化概览多纹理化概览 多纹理化概览 多纹理化(Multitexturing)可能是用像素着色器实现的最简单的技巧了。此外,因为像素着色器 替换多纹理化阶段,那么接下来我们应该对多纹理化“是什么”和“做什么”有一个最基本的理解。 本节介绍多纹理化的简明概览。 当我们一开始讨论纹理化(texturing)的时候(第 6 章),我们忽略了固定功能管线中对多纹理化 的讨论,这有两个原因:第一,多纹理化是有一点棘手的过程,我们考虑到这在当时是一个高级话题 ; 此外,固定功能多纹理化阶段被新的和更强有力的像素着色器替换掉了。因此花时间在已经过时的固 定功能纹理化阶段上是无意义的。 多纹理化后面的概念有一点和混合(blending)相关。在第七章中我们了解到:可以将正要被光栅 化的像素与之前写入后台缓冲的像素进行混合来达成一种特效。我们延伸这种相同的思想到多纹理化 中(multiple texture)。也就是说,我们一次使用几个纹理,然后定义这些纹理如何被混合在一起,以 // 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.


网友评论