|
3#
樓主 |
發(fā)表于 2016-5-12 12:03:47
|
只看該作者
給點(diǎn)核心程序吧。這也是我老師整的。好東西就要分享,
" a' E8 _. }. ovar loader = new THREE.STLLoader();
{$ _: i8 N3 P( O/ V var group = new THREE.Object3D();
" W& s3 ~8 C* R+ K( E loader.load("../assets/models/a.stl", function (geometry) {9 a8 o- V M4 ?
console.log(geometry);/ h2 F5 x4 k3 Z3 y1 u5 b- B
" y. s( q# Y# j# Y) k, r; b# ]
//加載到 mesh
- v% X, n) v4 P1 S var mat = new THREE.MeshLambertMaterial({color: 0x444444});1 ]- [7 q r( X$ M. D+ }# f
mesh = new THREE.Mesh(geometry, mat);
4 Z* H$ |6 j$ s! H3 u# m mesh .rotation.x = -0.5 * Math.PI;
2 R! W- T% c% M) e4 u mesh .scale.set(0.6, 0.6, 0.6);
) \' C$ U" |) p! `5 D4 V0 r* E# Q3 e& V3 P* B8 A3 c
//使用 box 生成邊界,將物體調(diào)整到原點(diǎn)
( S6 w5 D- _3 y+ J( i2 k/ ~ var box = new THREE.Box3().setFromObject( mesh );
/ p% Y/ |" m0 X+ a) \/ y0 K3 H7 L box.center( mesh.position ); // this re-sets the mesh position
8 v: J1 u0 H- E mesh.position.multiplyScalar( - 1 );
4 P! M1 ~8 E" ~* I+ x //將mesh 加到組中/ E7 n5 p2 m6 _6 Z$ a6 Y7 m
group = new THREE.Group();
' H a4 Y7 W P0 e0 D; R- I scene.add( group );
2 n4 ^6 k, r: d6 j% B5 J' k5 b group.add( mesh ); C" N# A1 u9 @0 w8 T+ W9 `
+ }, Y V R% p6 P# e4 p; c* C) F/ _
//設(shè)置組的坐標(biāo)為mesh顯示到原點(diǎn)時mesh的中心點(diǎn)坐標(biāo)取負(fù)值,移到加載時的位置
' e) w8 F/ I( {# ^: M8 ^ group.position.y = -mesh.position.y;
) G/ D$ e5 }5 a; f+ r group.position.x = -mesh.position.x;5 U3 ?; v9 Z; l: c
group.position.z = -mesh.position.z;
- H; l! u! _; {. P# D& l
' n) L3 C2 t" ]0 T, U% w5 g7 D: X }); |
|