2012-08-02 41 views
4

正確顯示導入COLLADA模型導入three.js所後,一些模型的面孔都只是從模型內從外部可見和不。COLLADA模型面臨不three.js所

我該如何解決有問題的面部問題?

是否可以從兩側看到模型的面部?

+0

你可以把你的代碼放在jsfiddle而不是rar嗎? – jterrace 2012-08-02 02:08:29

+0

@jterrace http://jsfiddle.net/cvj157/AdLc9/8/這是我的源代碼,但它不能運行,我不知道如何將資源添加到jsfiddle。原始模型圖像可以從http ://images.cnblogs.com/cnblogs_com/e-life/401048/r_original.JPG 和表示圖像的COLLADA是http://images.cnblogs.com/cnblogs_com/e-life/401048/r_showing.JPG – user1565123 2012-08-02 03:35:23

+0

這看起來更像是一個正常問題。您是否檢查以確保該圓柱面上的法線不會翻轉? – Nimphious 2012-08-02 16:05:34

回答

1

要解決的面取向不正確,載入模型到像Blender一個3D建模程序和翻轉沒有被正確顯示面的法線。

three.js所網格具有的雙面屬性,你可以設置通常會允許你顯示從兩側可見臉上的模型。

下面是如何加載collada網格並啓用雙面呈現的簡短示例。

var loader = new THREE.ColladaLoader(); 
loader.load('path/to/mesh.dae', loadModel); 

function loadModel(geom) { 
    var mesh = new THREE.Mesh(geom, new THREE.MeshBasicMaterial()); 
    mesh.doublesided = true; 
    scene.add(mesh); 
} 

而且一個活生生的例子:http://jsfiddle.net/r7Yq2/

+0

噢,謝謝! – user1565123 2012-08-04 01:56:02

+2

顯然它已在r50中發生了變化:現在應該在材質上設置:material.side = THREE.DoubleSide; (花了我一會兒才知道!) – Damien 2012-08-23 12:11:45

2

它不能正常工作的原因是因爲你的文件有這個double_sided標誌設置:

<effect id="material_3_4_0-effect" name="material_3_4_0-effect"> 
    <profile_COMMON> 
     ... 
     <extra> 
     <technique profile="GOOGLEEARTH"> 
      <double_sided>1</double_sided> 
     </technique> 
     </extra> 
    </profile_COMMON> 
</effect> 

的three.js所ColladaLoader不尋找這個標誌,並在材料上設置doubleSided。我有filed a bug的問題。

+0

嗯,太好了,謝謝! – user1565123 2012-08-04 01:51:06