Angularjs 三个JS 1场景2文件格式尚未工作

Angularjs 三个JS 1场景2文件格式尚未工作,angularjs,three.js,collada,sketchup,catia,Angularjs,Three.js,Collada,Sketchup,Catia,我有一个应用程序,可以显示来自不同建模软件的三维模型 我有一个从CatiaV5导出的STL文件 以及从Sketchup最新版本导出的DAE文件 我可以创建场景和灯光,然后使用StlLoader加载第一个模型 当我尝试使用ColladaLoader添加Dae文件时,就会出现问题 我之所以使用Collada,是因为我可以在web上找到它,它可以让你将Sketchup模型加载到ThreeJS中,但任何其他方法都是受欢迎的 我在一个角度范围内工作,我使用一个指令来处理带有ThreeJS的3d模型 下面是

我有一个应用程序,可以显示来自不同建模软件的三维模型

我有一个从CatiaV5导出的STL文件 以及从Sketchup最新版本导出的DAE文件

我可以创建场景和灯光,然后使用StlLoader加载第一个模型 当我尝试使用ColladaLoader添加Dae文件时,就会出现问题

我之所以使用Collada,是因为我可以在web上找到它,它可以让你将Sketchup模型加载到ThreeJS中,但任何其他方法都是受欢迎的

我在一个角度范围内工作,我使用一个指令来处理带有ThreeJS的3d模型

下面是我的指令片段

mid.directive('ngWebgl',函数(){
返回{
限制:“A”,
范围:{
“宽度”:“=”,
“高度”:“=”,
“fillcontainer”:“=”,
“比例”:“=”,
“材料类型”:“=”
},
链接:函数postLink(范围、元素、属性){
摄像机、场景、渲染器、,
阴影网格、二十面体、灯光、,
mouseX=0,mouseY=0,
contW=(scope.fillcontainer)?
元素[0]。clientWidth:scope.width,
contH=范围高度,
windowHalfX=contW/2,
windowHalfY=contH/2,
材质={},控件,更新
scope.init=函数(){
//摄像机
摄像机=新的三个透视摄像机(1000,document.getElementById('test')。offsetWidth/document.getElementById('test')。offsetHeight,11000);
相机。位置。设置(50,-20,-10);
//场面
场景=新的三个。场景();
scene.add(camera);//必需,因为我们正在将灯光作为摄影机的子对象添加
light=新的三个。PointLight(0xffffff,1);//子对象
相机。添加(灯光);
scene.add(新的3.AmbientLight(0x000000));//另一个灯光
renderer=new THREE.WebGLRenderer({antialas:true});
renderer.setClearColor(0xffffff);//背景色
renderer.setSize(document.getElementById('test').offsetWidth,document.getElementById('test').offsetHeight-10);
控件=新的三个.轨道控件(摄影机、渲染器.doElement);
元素[0]。appendChild(renderer.doElement);
var loader2=new THREE.ColladaLoader();
loader2.load('http://localhost/frame.dae,函数(结果){
scene.add(result);//将模型添加到场景中
});
var loader=new THREE.STLLoader();///正在加载STL文件
装载机。装载('Sac_Fuel_Tank.stl',功能(几何){
//材料
var material=新的三个.MeshLambertMaterial({
颜色:0x286617,
线框:错误
});
//几何学
var mesh=新的三个网格(几何体、材质);
mesh.rotation.x=Math.PI/2;
网格位置设置(20,10,-10);
scene.add(mesh);//将模型添加到场景中
//视图控件
//控件=新的三个.轨道控件(摄影机、渲染器.doElement)
});
//根据需要调整大小
document.addEventListener('resize',scope.onWindowResize,false);
//元素[0]。追加(renderer.doElement);
}//EOF
//刷新纵横比
scope.onWindowResize=函数(){
camera.aspect=window.innerWidth/window.innerHeight;
camera.updateProjectMatrix();
renderer.setSize(window.innerWidth、window.innerHeight);
}
// 
scope.animate=函数(){
setTimeout(函数(){
requestAnimationFrame(scope.animate);
}, 1000 / 30 )
scope.render();
控件更新();
}
scope.render=函数(){
var timer=Date.now()*0.0005;
摄像机。注视(场景。位置);
渲染器。渲染(场景、摄影机);
}
scope.init();
scope.animate();
}
};

});
尝试从
结果
对象添加
场景
属性,如本例所示:

// instantiate a loader
var loader = new THREE.ColladaLoader();

loader.load(
    // resource URL
    'models/collada/monster/monster.dae',
    // Function when resource is loaded
    function ( collada ) {
        scene.add( collada.scene );
    },
);

太棒了,谢谢你,先生!