|
3#

樓主 |
發(fā)表于 2016-5-12 12:03:47
|
只看該作者
給點核心程序吧。這也是我老師整的。好東西就要分享,
% D7 W' y4 y! l G" O; X! S$ x7 [6 Xvar loader = new THREE.STLLoader();% L) N i, ? Z# u$ E
var group = new THREE.Object3D();
: i9 V0 ]/ g8 d+ }- g; q. x! X4 Y loader.load("../assets/models/a.stl", function (geometry) {0 P- V5 e8 m6 I4 h0 W. T& m
console.log(geometry);8 V5 l: Z3 Y) j3 I, x s
% C1 v: d+ `1 e( ~5 p" H2 c //加載到 mesh0 ]* l" ~8 a- m7 H$ ~" `$ r, ?4 X
var mat = new THREE.MeshLambertMaterial({color: 0x444444});
' d$ m) b9 a3 ^" j/ @ mesh = new THREE.Mesh(geometry, mat);
0 H6 Q, B2 M" B, d+ W% ? mesh .rotation.x = -0.5 * Math.PI;5 j+ k5 K8 n8 F* O9 V
mesh .scale.set(0.6, 0.6, 0.6);
6 J7 x/ P: A" t! G3 z3 z) z' W! w
- O" B4 i0 d4 r- [) B6 g //使用 box 生成邊界,將物體調(diào)整到原點
! _" C& B2 E. c; L, T9 K var box = new THREE.Box3().setFromObject( mesh );
' K7 j8 X3 M: F2 I1 z3 { box.center( mesh.position ); // this re-sets the mesh position/ Z; g- r$ f7 Z% s7 ]) h
mesh.position.multiplyScalar( - 1 );. i- F$ C. a% H e# o( W6 g$ n9 s% Y
//將mesh 加到組中# \ u8 _$ w3 S7 A; x2 Z9 }
group = new THREE.Group();3 `& b+ a# d p# u4 d* m: \
scene.add( group );( B3 K. C" H/ J$ i, t: D- X
group.add( mesh );
! ]; t9 D5 B: X% ]! e: r4 K: A( p8 B+ w
//設(shè)置組的坐標(biāo)為mesh顯示到原點時mesh的中心點坐標(biāo)取負(fù)值,移到加載時的位置
9 Y" D. d: `6 E/ ]0 G$ s group.position.y = -mesh.position.y;' b6 m9 O8 q9 u8 f" M' r$ o
group.position.x = -mesh.position.x;
! \& P! L+ ]& P. u! N+ ? group.position.z = -mesh.position.z;
+ u& O( p5 S# h8 f3 M# m: p" j1 ?! o/ ~( I: x7 h- t
}); |
|