Javascript 如何在three.js中导入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

我试图在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.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是可选的,但我在查看规范时找不到答案。不是关键问题!