|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% h, ^. t9 y h( x
- N7 I# T6 \; t
废话不多说,官网自己百度下, threejs.org ,入门很简单。
% @+ L# W- T) P. z2 d$ C# E7 M
# v V/ J. k- x* [8 E C2 B创建的javascript脚本如下" h8 D9 A! _1 P" n* r6 { \
/ J" @" z2 k. F7 {& c; T; s1 [! a8 V
3 Z& e) O8 [' c8 H
[mw_shl_code=javascript,true]
( W* ^% I0 U$ z. q" \var scene = new THREE.Scene();# N: D, x/ J$ V. P" C
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
% _( U* E. a& X( f1 P6 avar renderer = new THREE.WebGLRenderer();
2 K" V) k8 P& I$ W3 G/ B6 z$ j1 X' srenderer.setSize(window.innerWidth, window.innerHeight);
, i! g7 K L5 J& @$ r$ {0 Hdocument.body.appendChild(renderer.domElement);( ^* G$ x$ m: e+ S) C( ^
8 U/ Q O' \: Q6 J8 x
// Refresh Issue
" r r m1 x3 |; X0 kwindow.addEventListener('resize', function () {
6 F* Q* F$ N/ [8 K- C9 Q6 K( `5 ^ var width = this.window.innerWidth;
6 V* @( v9 v _5 K var height = this.window.innerHeight;
# ^+ s3 `* o. F" f! n2 f4 u render.setSize(width, height);
; ?' Z2 B5 W) [2 j) J camera.aspect = width / height;
. H$ ~' u1 x' m. H! j1 j4 y o camera.updateProjectionMatrix();
+ ^( _6 K! C* _ [})
) D% Y* |& _/ c9 e- M( X, y% X& O- S% K/ Y* V
//orbit contorls7 @( ~1 @+ X/ I9 N0 |) Q9 h! o. t
controls = new THREE.OrbiTControls(camera,renderer.domElement);
+ \, ^$ o' x4 }! @$ Z( m) D, }6 N4 l1 P$ z% }
//create the shape
% M* n. o2 y8 g4 T# V; V* T. Tvar geometry = new THREE.TorusGeometry(2, 1, 16, 100);
8 ]1 m1 q' t! G0 k6 I9 b9 a//create a meterial5 I# n! T# W! j* k; I: j
var material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });) v* U) w/ P$ [$ w" G
//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];+ ?% _$ K0 A7 L9 K5 |& K" Z2 W" M
//var material = new THREE.MeshFaceMaterial(myMaterial);
/ Y( p2 m* N1 \
8 f6 h/ i& l& s' ?9 I& Nvar cube = new THREE.Mesh(geometry, material);
7 |2 L" H7 w% I) bscene.add(cube);
. b, f1 b* P, g9 G/ m3 ?1 pcamera.position.z = 5;
+ X. R8 q$ q# Z2 h- f& h. ~/ j* w9 J- g" n! v$ Z
2 I* {( n/ G* f- N4 f+ e" H# Q* S0 E0 _1 R( m' B7 E! l2 q. B5 K
0 `- [! Y* z% ?1 q# L$ M
( \# k+ r7 O- I; S//rotate 1 I$ ?2 m* F( E7 b( J, s% T
var update = function () {
" I& A2 T. O& g8 ]+ i) ~/ m5 T4 | cube.rotation.x += .01;# n0 _9 U- z9 l' G/ T& R
cube.rotation.y += .02;
: g% ~# [9 f( e( E3 ]9 r, ] cube.rotation.z += .02;
$ Z- u# F" @, Y* \4 Y}
- M3 x- g" C! O& n( {8 {' v9 _. Z& j
var render = function () {
2 A. W: ~3 L) q v# h; R renderer.render(scene, camera);
5 ~. o7 p2 C+ r# I* K* m}
& {7 }7 F! _$ x8 m8 k. `
/ j, s( r6 T" G6 |7 \0 G1 W" T; f4 G$ q" p1 ?
, y. ^, h$ n3 xvar Gameloop = function () {$ g4 C% a* m g
requestAnimationFrame(Gameloop);
! r. P/ }( c+ j8 e: [6 n update();
& c+ T; j9 x4 {+ }" f render();; ~. t9 d' S! z3 i1 i8 A+ J2 h# Q
}
7 [2 ]) s/ _1 \; L7 ^8 Q& i
1 K- I3 Y: x: DGameloop();
. |3 @" l7 c% M[/mw_shl_code]
0 y. O# H0 z/ A9 Z; O7 Y$ S8 k) Y5 w. U& }9 d1 w
9 R0 a$ B' F0 t* B7 n( f2 S引入争取的html,
+ H1 K0 u, V2 g; \, w/ D" ?% P1 n" E; K* t
[mw_shl_code=html,true]<!DOCTYPE html>1 E& F1 V7 S/ M1 R/ t4 [1 ?
<html>* W) M( s$ Y& M8 c( N2 c. ~
0 l8 Y' Z0 R: h
<head>
2 e! Q9 c* Y% u! r <title>hello ThreeJS</title>" p, ] K/ c# m
<style>7 E) H9 _; `8 {1 A; ?6 F/ ]* n+ f
body {
9 m, m6 P- W+ ]8 W margin: 0;
7 n- F. _) n0 a+ p }
[% T i) R9 `$ q, e
) k* a4 l( m9 b4 N8 W& @' V canvas {
9 q- r$ s; H% R. \. g8 v5 v width: 100%;
+ G; ^& b5 c" R" A( m4 T height: 100%;) l$ ~# Z9 p a! j1 x, d# P" m
}
; z' f3 w! k1 V( `7 |
8 n/ q( ~4 h( n( G0 m, ` q9 T2 N h1 {. w0 G8 ^, x+ r, o5 \: V
color: aqua;
- F) a: q& [! {1 U$ g) i }! S" z: q" y0 f. N1 K2 Z- K
</style>
2 D0 y% F/ u# a' v5 J</head>+ \" [5 Q& O( u2 Z0 ^
- \6 j7 F2 N+ i U<body>7 A: E$ w# _, M$ f! f$ {, I
<script src="js/three.js"></script>; v1 |4 j" u# e
<script src="js/OrbitControls.js"></script>
; V8 u- z( E) ]( w; |8 V$ P <script src="myjs.js"></script>
; S; a# Z+ t1 d1 a
: h& z, f! D9 y1 h/ k# f2 q2 v' F, M( o; c- U6 W
5 C F A9 {. g9 j o; G* T6 s& P- O1 }8 D0 u
</body>; t5 q( m2 v9 A! f+ H
- {2 C2 k$ l% [& w- x" P, @
</html>[/mw_shl_code], R! r2 d, V- Y( B/ z- y
8 V$ {! \7 d4 L& s: m
效果点击这里:6 t& d6 [. y9 P) z6 X- B9 B: p. ^) F
9 u" x& l) C* L1 nhttp://plmhome.com/doteam/lesson1.html7 R: d1 c% V, n$ m" r4 s
* e2 r$ Z* J# h4 F' Q9 ^+ y) {
: a3 U0 l; ^' u8 u8 p5 {# T |
|