locked
FAQ: 什么是 Pixel Shader 3以及如何在 WPF 4 中使用? RRS feed

  • 问题

  • 为了帮助大家更好地学习 WPF 技术,微软论坛技术支持团队编辑了一些列的 "WPF 常见问题及解答" 精华帖。

    本帖的主题是:什么是 Pixel Shader 3以及如何在 WPF 4 中使用?

    如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

    如果您想阅读更多的 "WPF 常见问题及解答",请打开索引页面:

    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    2011年1月26日 14:07

答案

  • WPF 4建立在对ShaderEffect的支持之上,我们可以通过使用Pixel Shader 3来创建自定义的位图效果。Pixel Shader 是一种着色器程序,通常在一个图像处理单元中执行。这些程序用来完成像素级的效果处理。微软的DirectX支持着色器。并且从DirectX 9.0c开始支持Pixel Shader Version 3,其在支持的硬件上可以完成更多的效果。

    如果一个有效的Pixel Shader 3着色器在一台具备Pixel Shader 3硬件支持的计算机上装载,这个着色器将被忽略。如果此着色器是无效的,将不会有任何异常被抛出。如果计算机上的显示卡有两个或者更多,那么这个效果取决于性能最低的那个显示卡。Pixel Shader 2.0着色器在软件渲染时运行。如果 Pixel Shader 3拥有硬件支持,那么Pixel Shader 3将不会在软件渲染过程中运行。关于Pixel Shader 的更多信息,请参考位于Gamedev.net 上的Fundamentals of Pixel Shaders文章:

    http://www.gamedev.net/columns/hardcore/dxshader3/

    WPF 4中,首先我们可以使用一种称为High Level Shading Language (HLSL)的语言通过Pixel Shader 3来创建一个自定义的效果;然后使用Direct3D 着色器编译器fxc.exeHLSL代码编译为字节代码,其在运行时被执行。在WPF中创建一个PixelShader来装载字节代码并封装这个效果进一个ShaderEffect类。然后我们可以通过设置UIElementEffect属性来使自定义Pixel Shader生效。

    以下资源可以帮助我们理解更多关于WPF中的 Pixel Shader 3 以及 HLSL language:


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    2011年1月26日 14:09