TWaver - 專注UI技術(shù)

          http://twaver.servasoft.com/
          posts - 171, comments - 191, trackbacks - 0, articles - 2
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          如何用TWaver加載大型游戲場景

          Posted on 2015-01-06 13:41 TWaver 閱讀(4238) 評論(1)  編輯  收藏

          游戲中經(jīng)常會出現(xiàn)一些大型的戶外場景,例如一個小鎮(zhèn)、一座古城等。通常這種場景中包含了較多的建筑、道路、橋梁等等元素,其3D模型比較大且復雜。在使用TWaver加載時,可使用一些技巧,讓加載速度更快、顯示更流暢。
          twaver-3d-town-1

          TWaver 3D支持導入json或obj等格式的3D場景。如果是obj格式,可將obj文件、mtl文件、所有貼圖文件,以字符串參數(shù)形式傳給TWaver進行加載。當然這些文件也都可以是網(wǎng)絡上的URL字符串。

          1
          2
          var loader = new mono.OBJMTLLoader();
          loader.load(obj, mtl, images);

          TWaver支持在加載過程中對每一個物體進行進一步處理。例如材質(zhì)貼圖、特性等。我們通過下面的代碼,可以將每一個加載的物體強制用白模顯示:

          1
          2
          3
          4
          5
          6
          var loader = new mono.OBJMTLLoader();
          loader.load(obj, mtl, images, function (object) {
            box.addByDescendant(object);
            box.forEach(function(element){
              element.setStyle('m.texture.image',null);
            });

          twaver-3d-town-2

          或者直接使用wireframe的方式忽略物體表面,直接顯示物體的線條形狀:

          1
          2
          3
          4
          5
          6
          var loader = new mono.OBJMTLLoader();
          loader.load(obj, mtl, images, function (object) {
            box.addByDescendant(object);
            box.forEach(function(element){
              element.setStyle('m.wireframe',true);
            });

          twaver-3d-town-3

          308

          309

          這個obj文件超過16兆,TWaver解析的過程不超過5秒。但是實際應用中,資源文件可能存在網(wǎng)絡上,網(wǎng)絡傳輸則需要一定的時間??梢詫bj文件或json文件進行打包壓縮,加快傳輸效率。對于材質(zhì)也可以適當降低精度,在顯示出場景后再逐漸加載或按需加載高精度的貼圖,進行動態(tài)的更換。


          評論

          # 開心魔盤  回復  更多評論   

          2015-01-07 12:09 by 開心磨盤
          羊年大吉,愿新的一年有更大的收獲

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 札达县| 亳州市| 唐山市| 沈阳市| 石狮市| 灌南县| 教育| 耒阳市| 车险| 资溪县| 紫金县| 兰州市| 乌拉特前旗| 尉氏县| 疏勒县| 永清县| 鸡泽县| 静安区| 广水市| 驻马店市| 青岛市| 土默特左旗| 闸北区| 佛学| 盐津县| 饶平县| 崇义县| 镇沅| 正阳县| 周至县| 德安县| 三台县| 辽中县| 麻城市| 紫云| 南通市| 山东省| 博爱县| 沙坪坝区| 紫阳县| 卢龙县|