|
楼主 |
发表于 2016-5-12 12:03:47
|
显示全部楼层
给点核心程序吧。这也是我老师整的。好东西就要分享,
: N5 O4 `9 ?0 [; Ovar loader = new THREE.STLLoader(); K/ B, {" g c5 V4 A/ x
var group = new THREE.Object3D(); Q' J0 {: g: P/ R
loader.load("../assets/models/a.stl", function (geometry) {. ^; A1 Y" y2 R7 @+ G& C
console.log(geometry);
9 y0 i ]' l+ [ v0 T9 c. B0 b* @: z$ P% Y! t7 L8 A
//加载到 mesh) s" \: o g7 z% f$ G6 i; M: X
var mat = new THREE.MeshLambertMaterial({color: 0x444444});
! R) H' j9 W& {( D, Y9 v; }4 q' p mesh = new THREE.Mesh(geometry, mat);! h* a) i& D9 r1 N5 D8 l
mesh .rotation.x = -0.5 * Math.PI;% }3 x" t8 r% N& k, [0 u0 I
mesh .scale.set(0.6, 0.6, 0.6);1 M3 \$ M: i1 Y2 n
( \- j& w6 F4 Q) S4 p& \
//使用 box 生成边界,将物体调整到原点
0 Q6 ?1 d8 ~- @; h! H var box = new THREE.Box3().setFromObject( mesh );
2 Y2 \9 p" e8 C box.center( mesh.position ); // this re-sets the mesh position
4 i+ D+ t0 I0 u) R mesh.position.multiplyScalar( - 1 );; |4 `" `# g) u/ F4 [) n% J, R
//将mesh 加到组中
( f* }+ j# Y- N! P3 y group = new THREE.Group();' o0 J# X; j8 [! P# E1 |
scene.add( group );
6 y6 y) ]" T( W group.add( mesh );
. T* m4 l3 j* e! b
9 Q7 y2 f& u2 N1 b //设置组的坐标为mesh显示到原点时mesh的中心点坐标取负值,移到加载时的位置* [ ~3 P( M" \
group.position.y = -mesh.position.y;
; U. G/ {7 ~% h+ h group.position.x = -mesh.position.x;
) ]* }( d1 Y# X9 A+ m& N3 i group.position.z = -mesh.position.z;
" m& k& T Z- C8 L: u0 Y
2 j2 D9 H: [8 r }); |
|