快速浏览Silverlight3 Beta:当HLSL遇上Silverlight
来源:互联网 发布:淘宝子账号认证步骤 编辑:程序博客网 时间:2024/06/03 11:57
HLSL 高级着色器语言(High Level Shader Language,简称HLSL),由微软拥
有及开发的一种语言,只能供微软的Direct3D使用。 HLSL是微软抗衡GLSL的产品,同
时不能与OpenGL标准兼容。他跟Nvidia的Cg非常相似。
看了上面的几行话,可能大家还不是很清楚这个东西与当前的Silverlight的关系。
其实在园子里的兄弟发过这篇文章,介绍“silverlight 3滤镜效果”。
而其在源码中所使用的.ps文件(注:这里不是powershell呀),应该就是使用这种语
言编译出来的,源文件貌似使用fx作为扩展名,而这种语言的入门教程可以从这里下载:)
我是在看 mtaulty的BLOG时看到相关滤镜的演示效果的,呵呵:)
源码下载地址:http://mtaulty.com/downloads/Silverlight3/source/Mix09.zip
一开始我还天真的认为silverlight真的支持只有WPF才有的那类“水波纹”效果。因为
演示效果确实很“震撼”。
直到开始写一个相应的“水波纹”示例时,才发现在相应的RippleEffect.cs文件中有这
样一行,即:
{
pixelShader = new PixelShader();
pixelShader.UriSource = new Uri("RippleEffect;component/Shaders/Ripple.fx", UriKind.Relative);
}
而打开Ripple.fx文件之后是“二进制代码”,看来这种滤镜效果是一种变通的实现方式了,
与我一开始想的以C#方式实现的滤镜代码看来是南辕北辙,呵呵。不过好在实现的效果还是很
不错的,基本上运行很流畅,算得上是一个缩了水的“水波纹”吧:)
另外就是其所实现的ShaderEffect接口(位于System.Windows.Media.Effects),
因为任何一种图形效果都是从这个抽象类继承实现的。
看来以后在视觉效果上silverlight可能会集成更多的.ps文件(只要在项目中引用它即可,而
fx文件则可在编译后被排除在外)。集成ps的好处一是引用方便,二是减小xap包的体积。而滤
镜开发这方面的工作目前来看还是交给微软的开发人员了,呵呵:)
参照Mix09.zip所写的“水波纹”效果:
好了,今天的内容就先到这里了。
参照Mix09.zip所写的“水波纹”源码.
注:相关PS的Build Action 以"Resource"方式。图片以“Content”方式编译。
- 快速浏览Silverlight3 Beta:当HLSL遇上Silverlight
- 快速浏览Silverlight3 Beta:当HLSL遇上Silverlight
- 快速浏览Silverlight3 Beta:在浏览器外运行Silverlight应用
- 快速浏览Silverlight3 Beta:数据检验
- 快速浏览Silverlight3 Beta: SystemColor(系统颜色)
- 快速浏览Silverlight3 Beta: SystemColor(系统颜色)
- 快速浏览Silverlight3 Beta:数据检验
- 快速浏览Silverlight3 Beta: 在多个Silverlight应用间传递信息
- 快速浏览Silverlight3 Beta: 在多个Silverlight应用间传递信息
- 快速浏览Silverlight3 Beta: 在多个Silverlight应用间传递信息
- 快速浏览Silverlight3 Beta:使用SaveFileDialog保存到本地文件
- 快速浏览Silverlight3 beta:鸡肋一样的WritableBitmap
- 快速浏览Silverlight3 Beta:在线与离线状态检测
- 快速浏览Silverlight3 Beta:在线与离线状态检测
- 快速浏览Silverlight3 beta:鸡肋一样的WritableBitmap
- 快速浏览silverlight3 Beta: 打包下载文件(共享程序集)
- 快速浏览Silverlight3 Beta:使用SaveFileDialog保存到本地文件
- 当管理者遇上技术
- 80X86汇编_绘制五角星程序
- sqlhelper(李天平)
- OA新建表单绑定菜单无法显示办法
- xerces-c-3.0.1 win32 mingw 二进制库下载
- ECMAscript 对象 (javascript)
- 快速浏览Silverlight3 Beta:当HLSL遇上Silverlight
- 快速浏览Silverlight3 Beta:使用SaveFileDialog保存到本地文件
- C# 海康sdk
- 快速浏览Silverlight3 Beta: 在多个Silverlight应用间传递信息
- Discuz!NT中集成Memcached分布式缓存
- 让JBuilder兼容vista
- Windows 2003中200K上传限制解决
- InstallShield2008使用DLL方法
- 树形