2014-05-13 51 views
1

我有一個加載到頁面中的JPG紋理的OBJ文件 - 從一側可見,但從另一側看不到。使用Three.js從一側隱形的面孔

enter image description here

面臨可見的(有點暗 - !對不起)

enter image description here

另一面 - 面不可見。

我試着加入model.doubleSided = true;但是這似乎沒有改變任何東西。

回答

9

在材質上添加雙面標誌。假設你有這樣的:

material = new THREE.MeshLambertMaterial ({ color: 0xFF00FF }); 

地址:

material.side = THREE.DoubleSide; 

,或者當您創建的材料做的事:

material = new THREE.MeshLambertMaterial ({ color: 0xFF00FF, side: THREE.DoubleSide }); 

編輯:對於OBJMTL裝載機返回一個Object3D我們便需要遍歷對象設置適當的標誌:

if (object instanceof THREE.Object3D) 
{ 
    object.traverse (function (mesh) 
    { 
     if (! (mesh instanceof THREE.Mesh)) return; 

     mesh.material.side = THREE.DoubleSide; 
    }); 
} 
+0

材料作爲OBJ文件的一部分加載,所以我不認爲我可以改變材料的雙面性。 – JeffThompson

+1

看我上面的編輯。 – gaitat

+0

謝謝!絕對解決了一些模型的問題,但由於某些原因,並非所有...... :( – JeffThompson

0

嘗試添加renderer.setFaceCulling(THREE.CullFaceNone);

+0

不幸的是,不幸的是! – JeffThompson