0
我試圖加載的obj模型不加載,這裏的代碼(CoffeeScript的)OBJ模型three.js所
loader = new THREE.OBJLoader manager
if loadedModels.diamondRing == null
loader.load "obj/diamond/ring1.obj", (object) ->
object.traverse (child) ->
if child instanceof THREE.Mesh
child.material = silverMaterial.clone()
object.position.y = 10
object.scale.x = object.scale.z = object.scale.y = config.p1.size*0.05
object.userData.ring = true
combine.add object
loadedModels.diamondRing = combine.clone()
loader.load "obj/diamond/diamond1.obj", (object) ->
object.traverse (child) ->
if child instanceof THREE.Mesh
child.material = silverMaterial.clone()
object.position.y = 10
object.userData.diamond = true
object.scale.x = object.scale.z = object.scale.y = config.p1.sizeDiamond*0.075
combine.add object
但我抓住了異常:
Uncaught TypeError: Cannot read property 'clone' of undefined obj.js:93
其中obj.js - 三.OBJLoader。
上線93放在add_face功能:
function add_face(a, b, c, normals_inds) {
if (normals_inds === undefined) {
geometry.faces.push(face3(
vertices[ parseVertexIndex(a) ] - 1,
vertices[ parseVertexIndex(b) ] - 1,
vertices[ parseVertexIndex(c) ] - 1
));
} else {
geometry.faces.push(face3(
vertices[ parseVertexIndex(a) ] - 1,
vertices[ parseVertexIndex(b) ] - 1,
vertices[ parseVertexIndex(c) ] - 1,
[
-- line 93 --> normals[ parseNormalIndex(normals_inds[ 0 ]) ].clone(),
normals[ parseNormalIndex(normals_inds[ 1 ]) ].clone(),
normals[ parseNormalIndex(normals_inds[ 2 ]) ].clone()
]
));
}
}
我覺得問題在法線,但我不知道究竟在何處。 閱讀模式問題發生在最後幾行,像這樣:
f 6802//6802 6803//6803 6804//6804
如果OBJ模型刪除受影響的線路:
在3D編輯器模型看起來正常。 可能是有人遇到這樣的問題。
你知道哪個模型是問題的問題?你有沒有嘗試只加載模型(沒有做縮放和其他東西)?你有沒有用標準的JavaScript來試用它?你使用的是什麼3D程序?你是從3D程序導出.obj文件還是在進行某種轉換? – 2pha