|
3#
 楼主
|
发表于 2016-5-12 12:03:47
|
只看该作者
给点核心程序吧。这也是我老师整的。好东西就要分享,/ O3 k* {1 u! t var loader = new THREE.STLLoader();* w& N! s+ B6 C, \: B var group = new THREE.Object3D(); * ?6 {% `; ]! K7 r aloader.load("../assets/models/a.stl", function (geometry) { / e+ D$ {8 `, A7 ]. Iconsole.log(geometry); 3 n( m+ V* K+ ] # p/ e, g7 M5 ?7 d//加载到 mesh" ]1 h ~/ m2 P' V$ s& N3 H var mat = new THREE.MeshLambertMaterial({color: 0x444444});. V* ~, W" n0 d2 \ mesh = new THREE.Mesh(geometry, mat); ) S5 p- s0 b/ H( Cmesh .rotation.x = -0.5 * Math.PI;. G; D; u) h; W( S mesh .scale.set(0.6, 0.6, 0.6);) P( ?, i4 t; R6 b2 G
5 X2 D8 C$ c- ~2 ` }+ w5 w$ s//使用 box 生成边界,将物体调整到原点6 X( D6 m! h- J" f6 R# w; R# r) W! D var box = new THREE.Box3().setFromObject( mesh );! {9 q9 ~: i( |) b, X" W; f$ g box.center( mesh.position ); // this re-sets the mesh position 6 @9 _) ?% i# Zmesh.position.multiplyScalar( - 1 ); 8 q: ?/ {. U- b//将mesh 加到组中 # m) v3 V4 `) p9 D! R0 @group = new THREE.Group(); * {( B: Y& T* C, ?: }! P$ h3 O; escene.add( group );3 o2 N" g! d2 {$ c group.add( mesh );) b0 z" ~& l, J+ a* {/ }0 L & ^9 G) v" [8 Q& d/ L# P //设置组的坐标为mesh显示到原点时mesh的中心点坐标取负值,移到加载时的位置+ U2 H0 y% R6 [* o- F2 j# Q: T* e# g' T# E group.position.y = -mesh.position.y; - R W2 F2 m! X& Ugroup.position.x = -mesh.position.x; # }" n2 Z" k5 t p) M7 r1 F- mgroup.position.z = -mesh.position.z; ; f' {2 M9 \5 n4 T7 v, B7 | 8 E5 N2 ^# |& U0 W/ M, l# ~+ `}); |
|