當前位置:遊戲中心平台 - 頁遊排行榜 - 頁面導覽頁面無法縮放。

頁面導覽頁面無法縮放。

Unity5發布壹個多月了,相信很多人對它的WebGL導出功能特別關註。其實WebGL並不是什麽新鮮事物。早在2012,各大瀏覽器已經登陸。

繼續支持WebGL,壹些基於WebGL的3D引擎如Three.js也相繼出現,但無論是完善程度還是使用門檻都無法與傳統引擎相比,所以大部分

團隊對WebGL依然保持理性的觀望態度。

我在2004年將我的3D引擎打包到IE的ActiveX中。遺憾的是,用戶對瀏覽器插件的看法有對有錯。

經常反感,這嚴重阻礙了web 3 D的發展,雖然這期間有壹些3 D頁面遊戲通過瀏覽器插件取得了不錯的成績,但我始終認為這和端遊沒什麽區別。想玩遊戲的人。

我不介意下載客戶端,Web 3D的目的不僅僅是遊戲。

直到最近,各大瀏覽器廠商都宣布不再支持安裝瀏覽器插件。Unity還聲稱,WebGL將取代WebPlayer和Flash,成為發布到網頁的唯壹方式。現在說這是否預示著3D網頁時代終於到來還為時過早,但至少在技術上,曾經不可逾越的鴻溝已經悄然消失。

去年我的團隊接到壹個項目,做壹個類似91家的模擬裝修軟件。當時只是想做壹個端到端的,有用的Unity4.x後來看到網上DIY系統用WebGL實現的不錯,就想把產品升級到Unity5,試試WebGL導出功能。畢竟這樣的軟件更適合網頁。

目前Unity5的WebGL平臺只是體驗版(預覽版),功能不全,存在壹些問題。這裏分享壹些我們在項目移植過程中積累的經驗,供大家參考。

壹:js效率

這是我之前最擔心的。我們的產品得益於PhysX的超強效率,實現了動態場景的快速烘焙(間接光線預計算)。PhysX編碼成js後效率如何?實驗結果如下:

不同平臺下兩個場景的烘焙時間。單位(秒)

兩個場景的烘焙結果

Firefox的運行效率是令人滿意的。我們知道Unity使用Mozilla提出的asm.js來提高js的運行效率,但是目前其他瀏覽器還沒有對asm.js進行優化,只是時間問題。除了烘焙功能,其他功能在不同瀏覽器中看不出太大的性能差距。

二:js包裝尺寸

我也擔心這壹點,如果頁面加載後不能立即呈現內容,用戶會失去耐心並關閉頁面。設置所有優化選項後,我們產品導出的包大小如下(壓縮後):

主程序(項目名稱。jsgz): 5.1m

內存初始化包(project name.html.memgz): 2.7m。

內置資源(項目名稱。Datagz): 1m

不得不說還是很大的。字體在內置資源中占很大比例。以後可以把所有界面做成網頁,這樣就可以用瀏覽器字體了。嗯,主包是Unity的整體。

Runtime和我們自己的代碼都是壹起編譯的,所以才這麽大。我就此給Unity團隊寫了幾封信,問他們是否有可能不編譯壹些從未使用過的模塊。

是的,他們說會考慮,但是因為耦合度等原因,應該很難。我不太了解內存初始化包。asm.js可能需要,希望Unity推出WebGL正式版的時候。

等到這個問題可以改善的時候。

輸出項目包含兩個文件夾,Release和Compressed,只是保持壓縮狀態。生成的。htaccess文件會自動將地址轉移到這個壓縮版本的包中,並在HTTP請求中添加壹個壓縮頭,瀏覽器下載後會自動解壓縮。

三:移動平臺

是很多人關心的問題。WebGL作為HTML5的壹部分,應該可以在所有平臺上運行吧?但事實是,目前移動平臺對WebGL的支持不太好,我想進入微信。

更是難上加難。在這方面,我們的方案是為用戶創建的每個樣板間保存壹系列360度全景圖。分享到微信上後,可以漫遊,但不能編輯。考慮這樣的計劃似乎是個好主意。

嗯,手機屏幕小,真的不適合做復雜的3D編輯。移動平臺全面支持WebGL後,會有更多適合手機的3D應用出現。

四:圖形界面適配

Unity5

終於支持DeferredShading了,之前的只能叫DeferredLighting。然而,在當前的WebGL中

在1.0上還是不行,只能用延期照明。我們知道WebGL 1.0對應的是OpenGL ES。

2.0,而WebGL2.0對應的是OpenGL ES。

3.0,所以把項目適配到WebGL平臺和適配到移動平臺基本是壹樣的。WebGL2.0的標準剛剛制定,不知道支持的瀏覽器什麽時候推出,所以目前的

適配工作基於WebGL1.0。除了不用MRT,我們還要放3D

紋理是通過拼接2D切片實現的,而DepthTexture要手動編碼成RGBA格式。這些作品太熟悉了,好像是10年前做的,沒辦法。

感嘆實時3D這些年發展這麽慢,好像除了遊戲真的沒有什麽好的應用。

五:材質和全局照明

Unity5新材料系統,可調參數不

很多,所以我們還是用我們原來自己的,也是統壹的材料。新加入的ReflectionProbe感覺很初級,就是世界坐標中的AABB,不能旋轉。事實上,

BPCEM(方框投影

CubemapEnvironmentMapping)可以旋轉,但是仍然無法處理復雜的戶型,矩形邊界外的反射非常錯誤。我們的反射方案是

在BPCEM的基礎上,增加了壹點光線追蹤。雖然還存在壹些問題,但效果很令人滿意。最重要的是它的幀數比SSR(ScreenSpace)好。

反射)要高得多。

改進的反射方案

經過

所有的樣板間都是用戶自己創建的,不能用Unity自己的烘焙系統(Enlighten),傳統烘焙方式生成的光照圖容量太大,根本用不上。

適用於網絡應用。我們自己的烘焙系統把3D空間劃分成128x16x128的方塊,然後用壹個3DTexture保存每個方塊的光照信息,再通過定制。

渲染路徑添加3D光照貼圖。

六:編輯綜合管理後臺

管理後臺要實現模型的管理和上傳功能,所以簡單做了。

UnityEditor。在這裏,我們可以對模型進行CruncherPlugin,調整材質,命名,分類,定價,最終引導商品對應模型。

出資產包並上傳。Unity強大的編輯器API讓這壹切變得非常容易。

模擬裝修平臺只是網頁3D的壹個應用實例。隨著WebGL的不斷規範和成熟,會有越來越多的非遊戲和實際應用出現。最後,把我們的演示地址:

/演示/

因為只是WebGL的壹個實驗,只發布了壹個場景漫遊,沒有編輯功能。操作是拖動鼠標左右鍵,用滾輪縮放。加載和烘焙都很慢,請盡量不要用IE或者手機訪問,如果有彈出錯誤,請忽略。

  • 上一篇:摩爾莊園五色漿果有什麽用?
  • 下一篇:《火影忍者》平民快速提升戰力的方法是什麽?
  • copyright 2024遊戲中心平台