Javascript 如何在three.js中导入VRML文件?
我试图在three.js中导入一个VRML文件,但它不起作用。以下是VRML文件:Javascript 如何在three.js中导入VRML文件?,javascript,three.js,vrml,Javascript,Three.js,Vrml,我试图在three.js中导入一个VRML文件,但它不起作用。以下是VRML文件: #VRML V2.0 utf8 #Created by CINEMA 4D DEF B1 Transform { translation 600 0 0.333333 children [ DEF _60_ Transform { translation -600 0 0 children [ ] } DEF Button Transform { translation 679.73
#VRML V2.0 utf8
#Created by CINEMA 4D
DEF B1 Transform {
translation 600 0 0.333333
children [
DEF _60_ Transform {
translation -600 0 0
children [
]
}
DEF Button Transform {
translation 679.734143 0 0
children [
Shape {
appearance DEF MAT_Metal_010 Appearance {
material Material {
ambientIntensity 0.2
diffuseColor 0.815686 0 0.223529
specularColor 0 0 0
emissiveColor 0 0 0
shininess 0.1
transparency 0
}
}
geometry DEF FACESET_Button IndexedFaceSet {
ccw FALSE
creaseAngle 1.396263
coord Coordinate {
point [ -100 -100 -100,-100 100 -100,-100 -100 100,-100 100 100,100 -100 100,
100 100 100,100 -100 -100,100 100 -100
]
}
texCoord TextureCoordinate {
point [ 0 1,1 0,
0 0,0 0,1 1,0 1,1 1,
0 0,1 0,1 0,0 1,1 1,
1 0,0 0,1 1,0 1,0 0,
1 0,0 1,1 1
]
}
coordIndex [ 0,1,3,2,-1,2,3,5,4,-1,4,5,7,6,-1,
6,7,1,0,-1,1,7,5,3,-1,6,0,2,4,-1
]
texCoordIndex [ 2,5,11,8,-1,7,10,14,12,-1,13,15,19,17,-1,
16,18,4,1,-1,3,18,14,9,-1,16,0,6,12,-1
]
}
}
]
}
]
}
DEF Timer TimeSensor {
startTime 0
stopTime 0
cycleInterval 14.4
loop TRUE
}
下面是我导入的JavaScript代码:
var loader = new THREE.VRMLLoader();
loader.addEventListener( 'load', function ( event ) {
scene.add(event.content);
} );
loader.load( "models/MyVRML.wrl" );
浏览器中的错误消息为:
TypeError:a未定义。js:1636
我使用实际的three.js(未缩小)
谢谢你的帮助 现在,您的每个点都应该在各自的线上。我愿意解决这个问题,但目前面临着紧迫的最后期限。目前的解决方法是设置坐标,如下所示:
coord Coordinate { #default NULL
point [
0.14 0 -0.14,
5.54 0 -0.14,
5.54 0 -8.86,
0.14 0 -8.86,
]
}
似乎VRMLLoader与该文件有问题。我将ping处理它的人。Github问题:尾随逗号是可选的吗?我有一个VRML模型,它省略了最后一个ocmma,但渲染良好。@daveeverit我必须检查它在VRML规范中是否是可选的。规范中有很多松散的规则,所以如果它们是可选的,我也不会感到惊讶。您是否在vrmlparser中体验到它不是可选的,或者换句话说,您能为您的问题提供多一点上下文吗?此外,vrmlparser与threejs集成,但随threejs提供的vrmlparser已经过时。因此,您的体验可能会因您使用的内容而异。我只是注意到,在我正在处理的遗留VRML中,这似乎并不重要,我想知道确切的SOEC。在某些语言(例如Python)中,IIRC是可选的,但我在查看规范时找不到答案。不是关键问题!