Silverlight 5已正式发布,新版本的最大亮点是通过引入轻量级的XNA游戏开发框架,从而可以在浏览器内轻松实现网页的3D应用。与此同时,微软正式发布了Silverlight Toolkit (December 2011) for Silverlight 5,这是一个超出开发者想象的工具包,你可以在这里下载,在这一版本中提供了大量对3D的支持工具,提供与3D项目相关的多种Visual Studio项目模板(如图1所示),包括:
lSilverlight3DApp:Silverlight 3D主程序(客户端)
lSilverlight3Dlib:Silverlight 3D主程序类库(客户端类库)
lSilverlightEffect:Silverlight 3D特效库(客户端库)
lSilverlight3DAppContent:Silverlight 3D主程序附带的素材库(客户端)
lSilverlight3DWeb:Silverlight 3D寄宿的Web应用程序(服务端)。
lSilverlight3DWebContent:直接发在服务器端的素材库,用于减少XAP包的大小。
图1 Toolkit中3D模板项目
使用Silverlight Toolkit可以非常容易地实现以前在Web中无法想象的3D特效,包括粒子效果(如图2)、光照效果、角色Skinning效果(如图3)。
图2 通过粒子效果形成烟雾特效
图3 角色Skinning效果
注:使用Silverlight Toolkit for Silverlight 5新建Silverlight3D项目前,需要在开发环境中安装XNA Game Studio 4否则无法打开素材项目。
伴随Silverlight 5正式版发布,已经有第三方3D引擎进行了框架更新,这其中包括非常优秀的Babylon 3D开源引擎,有兴趣的朋友可以通过一下地址获取基于Silverlight 5正式版的3D引擎源码,其中还包括一个顶点着色器、一个像素着色器、一个3D模型导入器和一个示例。对于主流的3D建模软件(包括MAYA、3D Studio Max、Modo、Blender)来说都可以导出.obj文件,这一类型文件可以无缝地集成到Babylon 3D开源引擎中,使得开发Silverlight 3D应用具有更好的兼容性(图4是源码包中的示例)。
图4 Babylon 3D示例
对于Silverlight 5而言,浏览器内的权限控制显得有点苛刻,如果我们需要在实际项目中开发浏览器内的3D应用,那么需要打开应用在浏览器内的权限,操作步骤如下:
1.在Silverlight项目属性中,勾选“允许在浏览器外运行应用程序“和”在浏览器内运行时需要提升的信任“(如图5所示),这时项目的Properties目录下将产生对应的OutOfBrowserSettings.xml和InBrowserSettings.xml两个文件,而后续步骤的设置将改变这两个文件的内容。
图5 提升Silverlight应用程序信任级别
2.点击“浏览器外设置”,勾选“使用GPU加速”与“在浏览器之外运行时需要提升的信任” (如图6所示),以保证使用GPU加速,如果此两项不选,则会出现RenderModeReason.GPUAccelerationDisabled的情况。
图6 开启GPU加速
3.现在我们需要将第一步生成的OutOfBrowserSettings.xml和InBrowserSettings.xml两个文件加入到生成的XAP文件内容中,具体做法是在项目中分别选择两个文件,在其属性中的“生成操作”选择为“内容”(如图7所示)。
图7 权限配置文件的生成操作选择
4.最后由于Silverlight 5正式版考虑到客户端环境的差异(包括有无显卡、显卡是否支持3D加速等多种情况),加入了对浏览器内3D内容的显示权限管理,因此,我们需要根据客户端实际情况提示使用者打开对本网站的3D显示权限。代码如下:
if (GraphicsDeviceManager.Current.RenderMode != RenderMode.Hardware){ switch (GraphicsDeviceManager.Current.RenderModeReason) { case RenderModeReason.GPUAccelerationDisabled: MessageBox.Show("3D加速被禁用,请启用显卡3D加速后刷新本页面!"); break; case RenderModeReason.SecurityBlocked: MessageBox.Show("请在右键的Silverlight菜单中打开“权限”,找到本站点域名后允许3D安全策略!"); break; case RenderModeReason.Not3DCapable: MessageBox.Show("没有找到显卡!"); break; case RenderModeReason.TemporarilyUnavailable: MessageBox.Show("暂时无法使用!"); break; }}
|
浏览器的权限可通过Silverlight程序的右键菜单中选择“权限”选项卡,然后找到应用程序的宿主域名,并将其3D权限设置为“允许”(如图8所示)
图8 客户端3D权限设置
如果您想体验Silverlight 5绚丽的网页3D世界,笔者已经为你整理了更多精彩的示例,还等什么?现在就点击下面的网页来体验一下吧!
http://space.silverlightchina.net/xpeter/demo/3D.htm
Silverlight 5 Toolkit的3D示例程序源码,您可以在其安装目录下找到,默认目录如下:
C:\Program Files\Microsoft SDKs\Silverlight\v5.0\Toolkit\dec11\Source
解压缩该目录下的Sample source code.zip,可以在其中的Xna目录下找到示例源码。
本文笔者只是给大家介绍了Silverlight 5中3D Web应用中的凤毛麟角,对于Silverlight来说构建类似于XNA的大型3D应用基本已经具备条件
分享到:
相关推荐
2. **3D功能**: Silverlight 5引入了对3D图形的支持,通过XNA框架,开发者能够构建具有三维效果的应用程序,为网页带来更生动的视觉体验。 3. **Silverlight Toolkit**: 这是微软提供的一系列扩展库,包含了额外的...
本文将详细介绍如何利用Silverlight 5结合Silverlight Toolkit (December 2011) for Silverlight 5,轻松实现绚丽的3D网页应用开发。我们将从开发环境的搭建开始,一步步引导读者完成一个简单的3D Web应用。 #### ...
尤其在3D技术的应用上,Silverlight提供了强大的工具和API,使得开发者能够在网页中构建出栩栩如生的三维世界。本文将围绕“Silverlight 3D实例”这一主题,深入探讨Silverlight在3D领域的应用及其实现原理。 首先...
在Silverlight 5中,引入了对3D支持的增强,使得开发者可以利用这个平台来构建更加立体、动态的网页应用。 在"Silverlight 3D 引擎"这个主题下,我们关注的核心点是其3D模型加载能力。3D模型通常以文件格式如OBJ、...
**Silverlight 5 下载全指南** Silverlight是一款由微软开发的富互联网应用程序(RIA)平台,主要用于在Web浏览器中创建和展示多媒体内容和交互式用户界面。Silverlight 5是该技术的一个重要版本,提供了许多增强...
总的来说,Silverlight提供了完整的3D图形解决方案,从基本的3D几何形状构建到复杂的光照和动画效果,都能轻松实现。尽管与专业的3D图形引擎相比,Silverlight的3D功能可能稍显简单,但对于Web应用来说,它足够强大...
在安装“silverlight5”这个压缩包时,确保你已经正确安装了Visual Studio 2010 SP1,并且根据文件列表,这个压缩包可能包含了Silverlight 5的安装程序和其他必要的组件。安装完成后,你可以在Visual Studio中创建新...
silverlight5_sdk 安装包
**Silverlight:网页交互的新维度** Silverlight,微软推出的一款强大的富互联网应用程序(RIA)平台,曾经在Web开发领域占据了一席之地。它允许开发者创建丰富的、交互式的多媒体内容,包括视频、音频以及复杂的2D...
Silverlight5_Tools 安装文件
本主题聚焦于在Silverlight 5环境下,利用Visual Studio 2010(VS2010)开发出一个Out-of-Browser(OOB)应用,该应用能模拟浏览器功能,特别强调了如何在这样的应用中实现对电子地图、网页及超链接的访问。...
《Silverlight5下的3D建筑渲染引擎:开启虚拟现实的新篇章》 在信息化与数字化日益发展的今天,3D渲染技术已经成为了建筑设计、游戏开发、虚拟现实等领域不可或缺的一部分。Silverlight5,作为微软推出的一种强大的...
Silverlight5_Tools(内附Vs2010中文版安装silverlight5bate方法以及Silverlight4_Tools) 因为目前 Siverlight 5 beta tools 只有英文版和日文版,所以对于安装visual studio 2010 中文版的同志可是要费一番功夫了...
3. **调试支持**:集成的调试工具使得开发者可以在Silverlight 5应用中设置断点、查看变量值和跟踪代码执行流程,从而更轻松地定位和解决问题。 4. **设计视图**:插件可能增强了设计视图,使得开发者在编写XAML...
【Silverlight开发示例——3D足球】 Silverlight是微软推出的一种基于浏览器的插件技术,主要用于增强Web应用程序的交互性和视觉效果。它允许开发者创建丰富的媒体体验和复杂的业务应用程序,尤其是在2007年发布后...
在本文中,我们将深入探讨"Silverlight5RC 3D Babylon 官方示例"这一主题,这是一组专门设计用于展示如何在Silverlight 5 Release Candidate (RC)环境中利用Babylon.js库进行3D图形编程的示例。Babylon.js是一个强大...
**Silverlight 5 帮助文档概述** Silverlight 是微软推出的一种富互联网应用程序(RIA)平台,主要用于构建和展示丰富的交互式用户界面,尤其是在Web上。Silverlight 5是该技术的一个重要版本,提供了许多增强功能...
这个“Silverlight 5房屋3D设计开源项目”为开发者提供了一个独特的平台,利用Silverlight 5的强大功能,实现房屋设计的三维可视化。通过该项目,用户能够探索并理解如何将3D图形技术应用于房地产、室内设计等领域,...
silverlight5_sdk.exe
Silverlight 5 开发工具包- 中文