|
3#
![](static/image/common/ico_lz.png)
樓主 |
發(fā)表于 2016-5-12 12:03:47
|
只看該作者
給點核心程序吧,。這也是我老師整的,。好東西就要分享,
; ]: w3 U+ H$ X" {% \4 Cvar loader = new THREE.STLLoader();
2 i7 n* A) d/ F ^6 t$ n5 z var group = new THREE.Object3D();; s. ]' Z+ s# @
loader.load("../assets/models/a.stl", function (geometry) {) p7 J# D9 ?7 r1 @' i
console.log(geometry);6 Z) @$ Y4 X! [" ^- h) m: P/ X) [
% ^: u {* X( Q! X% E //加載到 mesh
% ]* p$ |" S6 P ?3 P var mat = new THREE.MeshLambertMaterial({color: 0x444444});
1 n0 C* ]% A( \% P9 Z7 b3 M8 Z mesh = new THREE.Mesh(geometry, mat);1 b0 M2 x3 r h( { ?2 U3 d
mesh .rotation.x = -0.5 * Math.PI;
6 J3 @" |/ [; [' o0 Z mesh .scale.set(0.6, 0.6, 0.6);
( r* }; d) _" | R8 d3 \2 _+ O( @6 E2 ~1 a
//使用 box 生成邊界,,將物體調(diào)整到原點
7 H9 L6 F! I2 D" _1 l3 n var box = new THREE.Box3().setFromObject( mesh );
" @ q" W) o. L, [* P, ]) m box.center( mesh.position ); // this re-sets the mesh position
( P# {) p0 D% f9 e8 ~+ g8 ?. D6 z* v mesh.position.multiplyScalar( - 1 );
& z, b4 e; J, X N //將mesh 加到組中! y: g1 k/ }9 Y' u" q C
group = new THREE.Group();
! q! P2 D6 _$ I3 l5 s scene.add( group );
$ @' {$ I* u! n( {4 b% K: _0 d group.add( mesh );
2 S2 w2 F- m7 E4 Y7 g& ]5 n& l8 X: K4 K& I& Z+ q
//設置組的坐標為mesh顯示到原點時mesh的中心點坐標取負值,,移到加載時的位置
; A- q. ^' c9 \2 G; r% p group.position.y = -mesh.position.y;
7 R% T0 v; t. P group.position.x = -mesh.position.x;+ h2 I0 R& g- }! A. @
group.position.z = -mesh.position.z;" @1 J9 x: l% `) z4 J
# G U& @+ Q ^! k
}); |
|