動機
我正嘗試使用WebGL創建一個小型演示應用程序。我選擇使用SceneJS,因爲它看起來是一個簡單的框架,並且足以達到這個目的。將3D模型轉換爲SceneJS JSON,包括紋理
我已經下載了一些.blend模型(Amy Rose等),並使用Blender將它們導出爲Collada(.dae)文件。然後我使用scenejs-pycollada將它們轉換爲json模型。
我剛剛花了幾個小時讓scenejs-pycollada轉換器正常工作。顯然,如果你以前從未使用Python,那麼讓這些Python依賴在Windows中工作並不那麼容易。 ;)
問題
但現在我卡住(再次)。我的問題是模型沒有任何紋理或材質。我使用了SceneJS的Seymour Plane Example。我轉換的模型幾乎不可見。它是黑色的,似乎沒有響應場景中的照明。如果我將飛機和模型一起載入,我可以看到模型已加載,因爲它的胳膊和腿都伸出了飛機。
現在我遵循了幾個教程,可以讓我將紋理導出爲PNG圖像。然後,我修改了JSON模型中的紋理文件名以匹配文件名,但它沒有幫助。
所以我希望有人可以幫助我找到一種方法將Blender模型(或其他常見3D模型)導出到SceneJS使用的JSON格式,包括紋理。
任何其他在SceneJS中加載模型的方法也可以,只要它能夠工作。
如果你有一個免費下載body/figure JSON模型的鏈接,那現在會有所幫助,但我寧願學習它是如何工作的。 :)
我使用
- Windows 7家庭高級版64位
- Python 2.7版(32位的Windows)
我選擇了32位版本,因爲圖書館看似更好的支持,以及更多可用的安裝程序。起初我混合了32位和64位,這給我帶來了麻煩,但現在一切似乎都奏效了(除了紋理,就是這樣)。 - 攪拌機2.59
- SceneJS 0.8.0
我的工作流程
在攪拌機我的模型導出爲COLLADA格式(* .dae)文件,然後使用scenejs-它們轉換爲原始JSON pycollada。這給了我一個包含兩個對象的JSON文件。第一個似乎是現場,第二個模型。我保留第二個,並將其放入一個在SceneJS示例的代碼中使用的Javascript變量。該模型以屬性, "type": "library", "parent": "Scene"
結尾,我需要從代碼中刪除它以使其加載。
謝謝!它似乎與你的版本scenejs-pycollada和SceneJS 2.0一起工作。不需要重新編譯任何東西,所以這很好。 ;)我不會非常指責Numpy的人,安裝不同版本的各種庫是我自己的錯。 在這一刻我正在嘗試GLGE,有人推薦。 (它加載.dae文件而不必轉換它們)。現在我需要讓我的演示工作,但我希望我很快能夠重新調查SceneJS。再次感謝。 – GolezTrol
沒問題,還有更多的bug讓我知道:) –