2014-01-11 90 views
0

使用Three.js r64我想從Blender導入帶有平滑組的動畫對象,該文件通過三導出爲JSON。 js攪拌機出口商。Three.js(r64) - Blender JSON輸出未命中法線平滑着色

動畫部分工作正常。

在攪拌機中,模型看起來很好(中心部分有一個小的平滑組)。

圖片http://www.defresne.fr/demo/so/three/smooth_shading/gears.png

在OBJ與「平滑組」和出口時,我可以向achive得到相同的結果「包括法線」選項選中。但是,我無法正確導出JSON文件時正常工作(使用法線)。接下來是現場演示的圖片。

圖片:(與追加下一環節)three_gears.png

現場演示http://www.defresne.fr/demo/so/three/smooth_shading/

我做了激烈查找所有網站上,但沒有找到正確的信息。最好是另一個問題,這是有點老(r55),從來沒有得到任何接受的答案。

我曾嘗試計算對象的法線與

geometry.computeFaceNormals(); 
geometry.computeVertexNormals(); 

但是,很明顯,它計算整個對象的法線和導致完全地平滑對象。

那麼,什麼應該是一個正確的做法,使JSON平滑組在three.js工作?等待內置功能?自己構建它?修改出口商?

由於three.js似乎用平滑組正確加載OBJ和Collada模型,也許我可以借用這些加載器中的一些代碼來獲取邏輯?

感謝您的幫助

[編輯]

我剛發現一些偉大的事情!

在Blender中,產生2個模型輸出:第一個是JSON文件,第二個是OBJ文件。使用three.js在線編輯器加載第二個,然後將其轉換爲幾何體JSON ... 我可以收集此新鮮導出的幾何體的頂點,法線和麪並將其複製到第一個導出的文件。

它工作正常!我有很好的底紋組。即使skinning工作正常。

但是這是一種繁瑣的處理方式,我希望我可以節省一些額外的轉換。

這是否意味着從Blender輸出幾何圖形時出現問題?任何想法爲什麼?

任何幫助將不勝感激!

回答

0

好吧,我終於找到了會發生什麼事。

r64 Three.js Blender導出程序不會導出平滑組,因此如果需要保留這些平滑組,則除了將幾何圖形導出到OBJ文件外,沒有其他解決方案,然後使用python腳本convert_obj_three.py '在Three.js倉庫中可用。轉換後的文件將具有正確的法線。 (不要忘記在導出OBJ文件時檢查正常選項)