【转】体验 Silverlight 5 3D开发之环境搭配篇
體驗 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开发之环境搭配篇的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 长春天安豪园是毛坯房还是精装修?
- 下一篇: 乌鲁木齐乌房东庭居是毛坯房还是精装修?
