<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
    你可以使用3DMAX來建模,或者像我一樣使用比較容易上手的建模工具Google SketchUp Pro 6,反正最后導(dǎo)出的文件類型都是Collada。   
       使用Collada模型文件,和我們前面的基本教程中教的內(nèi)容沒有多大差別,唯一不同的地方就是顯示對象換成了Collada類型,并且需要根據(jù)Collada的模型文件中的材質(zhì)貼圖設(shè)置,相應(yīng)的在AS3代碼中進行貼圖。
      
    這一步也是初使用Collada模型的朋友,最容易失敗的地方,這個地方處理好了,就沒什么難度了。
       文本大部分代碼建立在Papervision3D入門-創(chuàng)建PV3D基本內(nèi)置模型(球體,立方體,柱狀體等) 一文中的代碼上。

       首先,需要引用Collada類,并將3D模型文件作為內(nèi)嵌資源,嵌入到程序中: //... 
      
    import org.papervision3d.objects.Collada;
        //...  
       [SWF(width='400',height='400',backgroundColor='0xFFFFFF',frameRate='30')] 
      
       public class Main extends Sprite
       {
            //...
            // 注意Embed標(biāo)簽的source和mimeType值,source是模型文件的相對路徑,mimeType一定不要搞錯了。
           
     [Embed(source='Demo.dae', mimeType='application/octet-stream')]
            private static var DemoModel:Class
            //...
       }

     
      接著,我們需要在初始化3D場景的時候把模型一起初始化:
       //... 
       private function Init3D():void
       {
            var _materialList:Object = {Sketchy_Stone_Ashlar: new BitmapFileMaterial("demo2/Sketchy_Stone_Ashlar.jpg") };
     
            _displayObj = new Collada(XML(new DemoModel()), new MaterialsList(_materialList));
            _displayObj.x = 30;
             _displayObj.y = -60;
       }
       //...

       注意上面的_materialList中的Sketchy_Stone_Ashlar屬性,這個屬性一定要和Collada的模型文件中的材質(zhì)貼圖名稱一樣!
      
    否則什么也顯示不出來,比如我的模型中的材質(zhì)貼圖信息如下:
       <library_materials>
          <material id="Sketchy_Stone_AshlarID" name="Sketchy_Stone_Ashlar">
             <instance_effect url="#Sketchy_Stone_Ashlar-effect"/>
          </material>
          <material id="BackColorID" name="BackColor">
             <instance_effect url="#BackColor-effect"/>
          </material>
          <material id="ForegroundColorID" name="ForegroundColor">
             <instance_effect url="#ForegroundColor-effect"/>
          </material>
       </library_materials>

       Sketchy_Stone_Ashlar對應(yīng)的就是上面的name=”Sketchy_Stone_Ashlar”,我這里沒有相應(yīng)的設(shè)置 BackColor和ForegroundColor,因為這兩個是SketchUp自動生成的,因為這兩個材質(zhì)貼圖不影響我的模型的顯示。
       如果你是用3Ds MAX你可以在設(shè)置材質(zhì)貼圖的時候設(shè)置這個名稱,記得這個名稱要符合命名規(guī)范,3Ds MAX自動給你生成的通常是不符合命名規(guī)范的,用起來會有些問題。
       其它的代碼就和顯示一個球體模型或者立方體模型一樣了,大家參考以前的代碼吧。
       
       如果你和我一樣使用SketchUp的話,那請你再繼續(xù)往下看…
       按我上面的步驟做,顯示SketchUp導(dǎo)出的3D模型時是會出錯的,運行時會報“無法訪問空對象引用的屬性或方法。”。需要對PV3D的代碼做一處小修 改,來避免這個空引用異常。打開PV3D的Collada類的源文件,找到379行處的var len:Number = semVertices.length;,將它改為var len:Number = semVertices == null ? 0 : semVertices.length; 這樣就可以了。

       顯示效果如下:http://flex.unbe.cn/PV3D/Try08_SketchModeling/Main.swf

       PV3D對SkechUp導(dǎo)出的Collada模型似乎支持得不好,或者是SketchUp的Collada模型導(dǎo)出功能還不夠完善,所以顯示出來的效果和建模時的效果有些差別。
      

        完整項目文件:try08_sketchmodeling.rar

       dmh2002注:本文在原文基礎(chǔ)上略有改變。
      
    原文地址:http://www.unbe.cn/blog/?p=385

    posted on 2008-11-13 20:54 seal 閱讀(2246) 評論(0)  編輯  收藏 所屬分類: Flex+ActionScript
    主站蜘蛛池模板: 1000部无遮挡拍拍拍免费视频观看| 污视频网站免费在线观看| 免费在线黄色电影| 亚洲人成网站观看在线播放| 男女超爽视频免费播放| 一本色道久久88综合亚洲精品高清| 久久亚洲AV成人无码国产电影 | 四虎影视永久免费视频观看| 色偷偷尼玛图亚洲综合| 无码不卡亚洲成?人片| 精品在线视频免费| 不卡一卡二卡三亚洲| 久久一区二区三区免费| 亚洲av日韩av激情亚洲| 在线a免费观看最新网站| 久久精品国产亚洲AV蜜臀色欲 | 国产在线不卡免费播放| 免费观看四虎精品成人| 亚洲综合网站色欲色欲| 久久久久久久99精品免费 | 亚洲国产成人精品青青草原| 免费99精品国产自在现线| 亚洲欧洲无码一区二区三区| 亚洲乱码中文字幕手机在线| 成人精品一区二区三区不卡免费看| 亚洲avav天堂av在线不卡| 国产桃色在线成免费视频| 菠萝菠萝蜜在线免费视频| 国产亚洲精品美女久久久| 亚洲免费中文字幕| 立即播放免费毛片一级| 亚洲AV无码专区电影在线观看 | 希望影院高清免费观看视频| 亚洲AV无码国产剧情| 亚洲一区二区三区AV无码| 18成禁人视频免费网站| 精品国产日韩亚洲一区91| 亚洲男同帅GAY片在线观看| 国产精品久久久久久久久久免费 | 2021国内精品久久久久精免费| 亚洲色最新高清av网站|