体验 Silverlight 5 3D开发之环境搭配篇

时间:2012-10-08 20:14来源:博客园作者:吉心 点击:180次
项目组现在要做一个三维的项目,我们几个童鞋,讨论了N久,最后决定基于Silverlight 5做3D开发。说到开发,先得搭配环境,Silverlight 5微软自家的产品,环境的搭配应该比较容易,但,事实出乎了我们的意料。 昨天爬完几个网站的数据后,我也开始了环境的搭配,虽然出现了N个错误,总体来说,在前人摸索的基础上,相对还算

  项目组现在要做一个三维的项目,我们几个童鞋,讨论了N久,最后决定基于Silverlight 5做3D开发。说到开发,先得搭配环境,Silverlight 5微软自家的产品,环境的搭配应该比较容易,但,事实出乎了我们的意料。

  昨天爬完几个网站的数据后,我也开始了环境的搭配,虽然出现了N个错误,总体来说,在前人摸索的基础上,相对还算比较容易。

  一、必备条件:

  1、Visual Studio 2010,这个还是要装的,不然都没IDE环境,开发什么呢?

  2、Visual Studio 2010 SP1补丁,必须打,不打Silverlight 5不让你装的。

  3、Silverlight 5 Tools,微软网站有得下载,google一下 就出来了。

  4、Silverlight Toolkit (December 2011) for Silverlight 5。

  二、初步折腾记

  装完了上面的那个4个必需品,你可能就觉得可以用了,但事实会让你哭笑不得,新建项目,压根就没有Silverlight的模板……

  

  囧……这到底是怎么回事呢?继续问万能的google,总算找到了下面的方法:

  1、进入Silverlight安装目录(默认路径为:C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight),然后找到英文语言目录1033,在这个目录下有Silverlight Unit Test Project.zip、Silverlight3dApp.zip、Silverlight3dLib.zip三个项目模板文件。你比如说,我的是64位系统,那上面那个目录就是C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\1033。

  

  2、进入VS安装目录中SL的模板路径(默认路径为:C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\2052),粘贴上面复制的Silverlight Unit Test Project.zip、Silverlight3dApp.zip、Silverlight3dLib.zip三个项目模板文件。我的VS装在D盘,则路径为:D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\2052。

  

  3、通过CMD命令行(vista及以上系统,记得要“以管理员身份运行”),进入VS安装目录(默认路径为:cd C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE),我的路径为:D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE。

  4、执行devenv /setup 命令。

  5、执行devenv /installvstemplates 命令。

  

  执行完上面的步骤后,重新打开VS 2010,新建SL项目,你会发现出现了上图中的3个3D相关的选项。

  三、再次折腾记

  但折腾还没有结束,新建项目后,直接报错“创建子项目 Silverlight3dAppContent 时遇到问题。无法找到指定的模板。请检查完整路径是否正确。

  

  几度崩溃,但我还得待她如初恋……这是什么问题……赶紧google,又发现了问题,缺少XNA Game Studio 4.0,真是伤不起啊,赶紧google下载地址,装上。(微软下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=23714)

  

  四、深入折腾记

  经过上面的折腾,能新建SL 的3D项目了,按了下F5,结果又来错误了,Error 1 Compile error -2147024770

  (0, 0): error : Unknown compile error (check flags against DX version) (myfile.slfx)。

  

  我那个昏迷啊!继续google,发现是缺少DirectX的相关运行库(XP可能没有这个问题,Win 7估计会遇到),google,google,救命的大神,她告诉我,需要去 http://www.microsoft.com/download/en/details.aspx?id=8109 上给下一个叫”directx_Jun2010_redist.exe“的安装包,解压,安装下。好吧,照做!编译的错误总算解决了。

  本以为能正确出来结果了,但胜利似乎还在彼岸!

  

  继续google大神,又来解决方法了。

  1、在Silverlight项目属性中,选中“允许在浏览器外运行应用程序“和”在浏览器内运行时需要提升的信任“,这时项目的Properties目录下将产生对应的OutOfBrowserSettings.xml和InBrowserSettings.xml两个文件,而后续步骤的设置将改变这两个文件的内容。

  2、点击“浏览器外设置”,勾选“使用GPU加速”与“在浏览器之外运行时需要提升的信任” ,以保证使用GPU加速,如果此两项不选,则会出现RenderModeReason.GPUAccelerationDisabled的情况。

  

  3、现在我们需要将第一步生成的OutOfBrowserSettings.xml和InBrowserSettings.xml两个文件加入到生成的XAP文件内容中,具体做法是在项目中分别选择两个文件,在其属性中的“生成操作”选择为“内容”。

  

  4、最后由于Silverlight 5正式版考虑到客户端环境的差异(包括有无显卡、显卡是否支持3D加速等多种情况),加入了对浏览器内3D内容的显示权限管理,因此,我们需要根据客户端实际情况提示使用者打开对本网站的3D显示权限。代码如下(注:最好是添加在3D展现的InitializeComponent();后面):

if (GraphicsDeviceManager.Current.RenderMode != RenderMode.Hardware) { string message;
switch (GraphicsDeviceManager.Current.RenderModeReason) { case RenderModeReason.GPUAccelerationDisabled: message = "显示异常描述:3D加速被禁用!\n\n解决方法:请联系站长启用本页面的显卡3D加速参数。";
break; case RenderModeReason.SecurityBlocked: message = "显示异常描述:Silverlight默认安全选项阻止了该站点的3D显示!\n\n解决方法:" + "\n1.在本页面点击鼠标右键;" + "\n2.选择“Silverlight”;"
+ "\n3.在弹出的“Microsoft Silverlight 配置”对话框中选择“权限”选项卡;" + "\n4.找到本站点域名后允许3D安全策略;" + "\n5.点击“确认”按钮;" + "\n6.刷新本页面"; break;
case RenderModeReason.Not3DCapable: message = "显示异常描述:没有找到3D显卡!\n\n解决方法:请更换显卡或安装合适的驱动程序。";break; case RenderModeReason.TemporarilyUnavailable: message = "显示异常描述:您的显卡暂时无法使用!\n\n解决方法:请重启浏览器后刷新本页面。";break; default: message = "显示异常描述:未知错误!"; break; } MessageBox.Show(message, "3D显示异常", MessageBoxButton.OK); }}

  5、现在将Silverlight3dWeb设置为启动项目,将Silverlight3dAppTestPage.html设置为起始页。现在我们再次按下F5进行调试时,将出现旋转的3D立方体(如下图所示)。

  

  总结:

  装到最后,我是很无语了,太麻烦了!不过还好,最终是成功搭建出了环境。下一步得研究怎么就XNA写代码了,继续苦逼……

  还是无心搞科研啊!烦躁!

  本文来自吉心的博客,原文地址:http://blog.jixin.ntxz.net/?p=1989

转载于:https://www.cnblogs.com/aptdo2008/archive/2012/11/08/2759891.html

【转】体验 Silverlight 5 3D开发之环境搭配篇相关推荐

  1. E2Cloud体验-快速构建一个开发项目环境

    http://www.sinovdc.com/blog/category/e2cloud%e6%bc%94%e7%a4%ba%e8%a7%86%e9%a2%91/

  2. lex编译dos命令_Lex与Yacc学习(一)之环境配置篇

    Abstract 在开发程序的过程中经常会遇到文本解析的问题,例如:解析 C 语言源程序,编写 脚本引擎等等,解决这种文本解析的方法有很多,一种方法就是自己手动用 C 或者 C++直接编写解析程序,这 ...

  3. Silverlight C# 游戏开发:Silverlight开发环境

    Silverlight C# 游戏开发:Silverlight开发环境 所谓工欲善其事必先利其器,没有好的工具也没有办法做事,我以前曾经想学习C++以外的程序语言,当时有java和C#来选择,当时考虑 ...

  4. Silverlight C# 游戏开发:L5 3D基本的灯光

    Silverlight C# 游戏开发:L5 3D基本的灯光 我们在设计和开发3D的时候最常用的就是灯光,它有的时候比摄像机还要重要,一些花哨漂亮的表现主要通过灯光实现,相比场景中只有一个的主要摄像机 ...

  5. 嵌入式3D-嵌入式3D开发环境的建立-嵌入式linux系统

    由于毕业设计所要进行的是3D图像的开发,那么就必须有一个高效,稳定,安全,可移植性强的嵌入式操作系统,有考虑到我们是一般学生用户,所以也要经济实惠.因此我选择的嵌入式操作系统是Linux.Linux具 ...

  6. centos7开发java体验_centos7之Java开发环境构建

    CensOS7环境 我个人的博客环境如下: 希望这个教程可以帮助到linux新手朋友们或者其他在安装软件时遇到问题的朋友们 当然了,百度上也有很多类似这样的教程,我个人贴出来,一来为分享,二来以后自己 ...

  7. 《Unity 4 3D开发实战详解》一6.7 物理引擎综合案例

    本节书摘来异步社区<Unity 4 3D开发实战详解>一书中的第6章,第6.7节,作者: 吴亚峰 , 杜化美 , 张月霞 , 索依娜 责编: 张涛,更多章节内容可以访问云栖社区" ...

  8. 使用Silverlight for Embedded开发绚丽的界面(2)

    5.Step by Step 为了偷懒,我只是简单翻译一下一个国外朋友的博客文章,文章不错,我只是在此基础上做一点补充,并提供带Embedded XAML Runtime引擎的SDK(下一篇文章),让 ...

  9. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具

    无论您是想搭建桌面端.WEB端或者移动端APP应用,HOOPS Platform 组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务. ...

最新文章

  1. excel函数简要使用
  2. ASP.NET MVC 动态选择VIEW
  3. CentOS7.2安装Python3.6.3
  4. PyPyODBC 0.9.2发布 - 纯Python实现的pyodbc替代库
  5. 【Tyvj1783】【codevs2418】【BZOJ1856】字符串,厉害的组合数与模型转换
  6. 基于张量秩一分解的多目标跟踪方法
  7. 秒杀 985 毕业生的职场技能
  8. Logback分别打印info日志和error日志
  9. 骆天涯:gunicorn部署Flask服务
  10. DPlayer开发弹幕后台
  11. 基于AT89C51的多层电梯控制系统
  12. 一个简易的QQ魔法卡片炼卡消耗计算器
  13. 为什么很多人交易十几年都做不到稳定盈利呢?
  14. 人到底是为了什么活着?
  15. 电脑装两个硬盘在计算机只显示一个,插入U盘出现两个盘符怎么解决?一个U盘显示两个盘符解决方法...
  16. (排序3)希尔排序时间复杂度与直接选择排序
  17. 【歪门邪道】Android页面上快速实现蒙层引导需求
  18. 深入理解设计模式-抽象工厂模式
  19. MVC框架简易留言板实例
  20. 利用Hackrf One进行GPS定位欺骗制作超级跑马机

热门文章

  1. eureka实例相关配置
  2. Java计算多线程运行时间的简单方式
  3. python 冒泡排序_Python中的冒泡排序
  4. mysql+sqlplus命令找不到_bash: sqlplus: command not found 解决方法
  5. vue图片宽高自适应_Echarts图标宽度变成100px,让图表宽度随着父元素自动适应,Vue实时监听宽度的变化,这可能是史上最好的解决方案!...
  6. Oracle 原理:数据装载 ,SQLldr ,外部表
  7. MySQL / 自带的四个数据库介绍
  8. Qt5 中 QWebEngineView 的使用,让桌面客户端和 web 端友好通信
  9. boost / vs2017 编译 boost 1.68.0 的过程说明
  10. Linux IPC / 分类