|

楼主 |
发表于 2016-5-12 12:03:47
|
显示全部楼层
给点核心程序吧。这也是我老师整的。好东西就要分享,
7 d- Z9 d: Y* [1 E( @6 cvar loader = new THREE.STLLoader();$ i% Y! P, B! f0 Y) v6 W
var group = new THREE.Object3D();1 g u! y4 P7 [% k; M% l. `0 |7 U4 ~
loader.load("../assets/models/a.stl", function (geometry) {: s+ m; C3 W: {& h- a
console.log(geometry);
6 e# g; O& f+ V" M: N6 D, D8 F8 T+ }# F: E" | X( m; G( T: e/ h
//加载到 mesh- r/ Y/ R3 s. }6 V3 h
var mat = new THREE.MeshLambertMaterial({color: 0x444444});% ^1 v% V/ u# C/ [ y' z
mesh = new THREE.Mesh(geometry, mat);0 X" y4 z2 R. V" m+ i
mesh .rotation.x = -0.5 * Math.PI;: K' N6 H0 D3 l! j2 A- S
mesh .scale.set(0.6, 0.6, 0.6);- R* x" P6 Z' d+ U
9 N5 Q0 ?. A9 F( x e
//使用 box 生成边界,将物体调整到原点
& ]/ g* I9 v S, c var box = new THREE.Box3().setFromObject( mesh );/ h9 b$ @' \' e8 M# w/ r# i- F
box.center( mesh.position ); // this re-sets the mesh position0 d( h0 E9 ]& |1 n3 k& V( A% G
mesh.position.multiplyScalar( - 1 );9 I! \; X* H8 m) ]) V; ?6 Y
//将mesh 加到组中
, M0 ~, D. f }. q4 z" Y9 F group = new THREE.Group();
4 B' b6 u4 W# @4 r' |+ Q, Z: b scene.add( group );- C8 m/ `9 W, a: P: F
group.add( mesh );
/ j- i/ _/ I' V9 W b8 ^, q+ o- o3 R5 R& D4 H
//设置组的坐标为mesh显示到原点时mesh的中心点坐标取负值,移到加载时的位置: [0 n) e) ^" K* `. ]" i; H
group.position.y = -mesh.position.y;
g) T! u+ X' j; m group.position.x = -mesh.position.x;
/ m6 C6 n0 \7 k& I# O group.position.z = -mesh.position.z;
! ?0 {4 a V5 Z+ `
/ O: \, R$ S4 x5 G }); |
|