2014年12月18日 星期四

14/12/8 coding:WG-Map加入多個animal model

最近開始,學一個東西資料讀累後,跑去讀另一個東西,然後就開始實作那另一個東西,等做完這令一個東西要回來寫原來的東西時,發現進度到哪都忘光光了........,所以coding週記,開始 ^_^

12/18

project.1
目標:WG-Map加入多個animal model,註解標題:自定義的要打倒的動物
路徑:D:\work\WebGL Learning\WG-map
  • 要先在require加入threeX.romemodelsWG,done
  • 程式能run,但是看不到動物
  • test:是否Require.js用錯,再另一個project下放minecraft的人物
  • project: D:\work\WebGL Learning\threex.romemodelsWG\examples\select.html
  • 稍微研究一下發現,若要把threex.romemodelsWG改用require.js去寫,那幾乎是整個project重寫,所以乾脆重新開個project寫比較實際
  • 新project:D:\work\WebGL Learning\WG.requirejs testing
  • 連renderer.setClearColor( 0xbbbbbb );的背景顏色都沒出來,所以有可能是require.js的問題
  • 為了測試問題是什麼,以minecraft為主,romemodelsWG為輔,開了一個新project:WG.MinecraftAndAnimals
  • D:\work\WebGL Learning\WG.MinecraftAndAnimals
  • 找出失敗原因:兩個model居然連在一起
  • 後來把minecraft的model關掉後發現讀不到animal的skin
  • 為了測試問題是什麼,以romemodelsWG為主,minecraft為輔,開了一個新project:WG.AnimalAndMincraft
  • D:\work\WebGL Learning\WG.AnimalAndMincraft\examples\Ani_n_craft_basic.html
  • 太詭異了,幾乎一模一樣的code複製貼上,Ani_n_craft_basic.html居然能夠run
  • 後來發現,作動畫的array命名不同,Ani_n_craft_basic.html裡動畫是用var onRenderFcts = [],而craft_n_Ani_basic.html的動畫是用var updateFcts = [];。
  • 當初craft_n_Ani_basic.html是用threex.mincraft裡的basic.html改的,然而Ani_n_craft_basic.html是用threex.romemodels裡的basic.html改的。
  • 馬已經能動了,但是馬的皮膚還是出不來

  • 終於找到原因了,因為minecraft的model是直接讀皮膚,不用打光也看得到,然而threex.romemodels裡model是皮膚跟著model一起存成json格式的,我剛剛居然忘記給craft_n_Ani_basic.html上打光的code =..=
  • 回去看WG-Map,可惜不是動畫命名的差異,WG-Map裡動畫的array皆是var onRenderFcts = [];
  • 必須要回去測試用require.js讀取他處.js,回到D:\work\WebGL Learning\WG.requirejs testing
  • 為了要先測試WG.requirejs testing裡的code是能run的,我在D:\work\WebGL Learning\WG.AnimalAndMincraft\examples\下新增一個test require code.html,camera與light的設定採用Ani_n_craft_basic.html,下午9:52初步camera與light的設定成功。
  • 用了requirejs testing裡,"讀取animal的models"、" Minecraft 人物model"這兩個區塊的Code,失敗,所以是code本身就有問題
  • 經測試" Minecraft 人物model"區塊裡的code不能run"讀取animal的models"區塊的code可以run
  • 所以說至少"讀取animal的models"區塊的code,在requirejs testing裡頭要能夠run,但是卻失敗了
  • 所以要來研讀requirejs的用法
  • 在研讀requirejs前,測試requirejs testing裡面的code不用requirejs用正常的寫法能不能run,發現失敗
  • D:\work\WebGL Learning\WG.AnimalAndMincraft\examples\下新增一個test require code2.html,不過修改three.js與threex.romemodels.js存放的位置
  • D:\work\WebGL Learning\WG.AnimalAndMincraft\examples\test requirejs code2.html 採用 D:\work\WebGL Learning\WG.requirejs testing\index.html(未使用require.js)的code能夠run
  • 反覆失敗後,測試用老派的方法,index.html外面的資料夾有著我們的threex.romemodels.js與model資料夾,看看會有什麼效果,經實測後可以run
  • 路徑:D:\work\WebGL Learning\WG.requirejs testing\old way,進去old way\example\index_oldWay.html
  • 後來回去讀threex.romemodels.js的code發現,在threex.romemodels.js裡,與我們的model有關的,是show 動畫的index.html與models資料夾的相對位置
  • 為了測試,我把D:\work\WebGL Learning\WG.requirejs testing\bower_components\threex.romemodelsWG下面的threex.romemodels.js改名為threex.romemodelsRorReq.js
  • threex.romemodelsRorReq.js裡的THREEx.RomeModels.baseUrl從 '../'改成'./bower_components/threex.romemodelsWG/',如此一來我們的index.html才會相對應到model資料夾所在的位置


  • 我把D:\work\WebGL Learning\WG.requirejs testing下的index.html改名為:index_success romemodel.html
  • 對於require.js的測試,我改用WG.requirejs testing底下的index_do_requirejs,無聊試了一下require.js依舊無法run,明天有必要好好研究一下require.js怎麼用了。

沒有留言:

張貼留言