|
3#
樓主 |
發(fā)表于 2016-5-12 12:03:47
|
只看該作者
給點核心程序吧。這也是我老師整的。好東西就要分享,
& U3 Y+ ?/ l ?' Yvar loader = new THREE.STLLoader();
4 d# ?% z$ _1 t# a" \% x |! V+ R var group = new THREE.Object3D();
I5 N$ t* i- _. q/ x! U loader.load("../assets/models/a.stl", function (geometry) {
6 w" S) F& ~0 i6 g! Z console.log(geometry);+ | |2 ~# u% L3 G# v
. _* ]. K! D. j; D8 V/ Z //加載到 mesh
5 V* F0 S' f! W) q$ V6 c% H8 H var mat = new THREE.MeshLambertMaterial({color: 0x444444});
( x! i3 ~9 h+ R1 k% e) t7 G5 F mesh = new THREE.Mesh(geometry, mat);
6 F3 o9 a/ a- t7 x; F mesh .rotation.x = -0.5 * Math.PI;. R) l+ @! ?2 D5 O: p9 C* \
mesh .scale.set(0.6, 0.6, 0.6);& P* G- j8 [2 m% L, K; {0 U
' h' u% j* D6 \$ u5 } //使用 box 生成邊界,將物體調(diào)整到原點
$ R, v9 s6 C0 s) k, m5 J var box = new THREE.Box3().setFromObject( mesh );$ H9 A8 g. T% V9 [8 {, V
box.center( mesh.position ); // this re-sets the mesh position
& w, |1 `6 P. F, a4 Q* M1 R mesh.position.multiplyScalar( - 1 );
0 Z& t, r0 ^% X0 ?$ J4 E //將mesh 加到組中
4 ]6 M- g" f! ]1 z group = new THREE.Group();* T/ T% m% ]6 F& b
scene.add( group );
0 M- m: V9 L$ e, c% X$ l group.add( mesh );7 I; y3 ^3 H" P: k7 ^8 u
, F" n$ k9 V1 ?* T2 i
//設(shè)置組的坐標(biāo)為mesh顯示到原點時mesh的中心點坐標(biāo)取負(fù)值,移到加載時的位置
7 H6 R& l) f8 B9 @ {' [# |' K group.position.y = -mesh.position.y;, g! F$ ] e7 X, M9 z+ g: W
group.position.x = -mesh.position.x;
6 i0 f; t$ \- o- M group.position.z = -mesh.position.z;# C" ]' o1 w4 W+ N5 u, s' a
' H3 s2 T5 }6 o/ z5 @
}); |
|