|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
6 j# m2 R' D2 g$ B. W$ t9 E
/ n) p( I. t- g" {* x% w6 G
废话不多说,官网自己百度下, threejs.org ,入门很简单。; Y* m; Y9 P B. b' B1 _3 k
; t8 G. w7 y! U5 t+ c6 v5 v创建的javascript脚本如下0 n' `# S) Z& t4 E Y ^
$ f/ t' J1 z Z% Z) Q
' [: @% H2 ?* f" f4 j2 k+ {
[mw_shl_code=javascript,true]
% o r4 q5 b- h& ?( p8 p. @, u+ {var scene = new THREE.Scene();& `9 R7 {6 p) s
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);' a8 y5 \ a) m0 N2 M3 U9 p
var renderer = new THREE.WebGLRenderer();
2 ~1 L+ ~1 C4 R$ h1 Wrenderer.setSize(window.innerWidth, window.innerHeight);
5 J6 {3 d p0 q' j# ^+ R" vdocument.body.appendChild(renderer.domElement);
" S0 v. ~* `$ f$ F
9 L/ H+ E; C% S: w// Refresh Issue , G& r |* i; [5 d$ L, ~, x
window.addEventListener('resize', function () {
3 B- L2 g: b* z% v" E var width = this.window.innerWidth;
+ _2 G4 k" O9 I( H var height = this.window.innerHeight;
: S! q/ E0 ` H5 r8 [$ J7 M render.setSize(width, height);: f2 e. s6 A1 o4 p. v' {
camera.aspect = width / height;
3 B, Y* Y- D* i. P2 x) ] camera.updateProjectionMatrix();
8 B6 c6 s8 B) H2 [$ x})5 p: P/ ^/ m2 C3 I5 R; s4 k
5 d5 @ y, [& ?4 K% G$ L. Q//orbit contorls% t. T- ], L& Z, W" _( }
controls = new THREE.OrbiTControls(camera,renderer.domElement);4 m! ^4 {4 v' j# G. p3 L( @, Y/ n) W
4 M) o7 g- }8 q l- O! v% v' o7 ~8 B//create the shape, D T, b8 f5 m& @& h0 F$ P# U
var geometry = new THREE.TorusGeometry(2, 1, 16, 100);. ~4 ]4 u2 \/ ?3 p1 Q2 _: u* S
//create a meterial
7 o' i/ U! [: ]9 Z" X, uvar material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });6 C. o5 Z3 p3 M4 i+ Z4 x
//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];
" n$ k, A0 K( F3 M//var material = new THREE.MeshFaceMaterial(myMaterial);1 {$ Y" c7 F* ^ @- e, Q9 B
, v4 y k6 k, xvar cube = new THREE.Mesh(geometry, material);, g/ R9 j( W# G. d% q# S4 ?& m
scene.add(cube);
. Y/ ^1 ^' \; H1 m% {% rcamera.position.z = 5;& w. ~$ S" h+ v5 m. l
( z# Q& x, \) g6 K4 y
" o' q# ~" {& H* K: S% i# T$ P$ u* q/ I+ ?$ K9 f, c$ C) k, m1 V4 W& t
! K6 X2 y5 y" Y* [5 H; _ \1 r! _) R
//rotate # J$ T$ t# w+ O! K; L- d" j$ m+ L
var update = function () {1 |- _0 R/ k+ Y$ ~
cube.rotation.x += .01;
3 S* X1 w; r; m& ]; S' J# C cube.rotation.y += .02;$ Y& ]+ r4 z5 t( X
cube.rotation.z += .02;5 }# _& P! O* g
}
+ T8 |$ f! B% M) y2 U H. N& o3 ^" t% Y& p5 Z
var render = function () {, @! s) n+ `, H+ y
renderer.render(scene, camera);
7 D; @5 H# l- v$ Y9 {5 G+ S- p}( i" L4 X" F9 E- N$ h
8 z c' \, j. e) q- ~
* f' P, N( A! k' m( L- k
4 r$ D/ `7 S) E+ {var Gameloop = function () {, v, `( Y$ O- o/ p8 Q1 u* |+ W' @
requestAnimationFrame(Gameloop);& v7 p7 Q9 v4 u% [$ T/ ~5 n
update();% b: q" [7 `3 u9 p; Y
render();
" g( P" x$ T) H# h) e' _( f}
" H+ @, \2 V/ p) w4 Z
* p, u) p: _2 o' v& R% fGameloop();
~& q8 N0 a# D' ^+ q[/mw_shl_code]
3 S; }4 ?0 t! i
+ N; p& A( S" w) u
6 n/ r& ?( k( D- \+ q) z引入争取的html,4 d; N) {- W4 Z$ v+ \* c
; ]' x( u) ^1 L[mw_shl_code=html,true]<!DOCTYPE html>
; a. Z& `% z0 m& s' z5 `: c* c$ y<html>3 \& ^3 X0 K: X! v$ }/ h
( Q* {) ^9 Q O<head>
9 i$ u7 l- }( @$ W' Y5 @9 _ <title>hello ThreeJS</title>
. z$ B' b% `8 E: K. l( u' B& J <style>
$ W2 \- e: o2 A: u/ u, | body {
- Z, F! N& l) q3 k margin: 0;
1 N+ a0 n: F. w3 W5 K4 l2 ^* ^$ Q }0 ?; `% ^1 Y, i, l- {0 X+ ^
) \/ P" Y; P+ F% z canvas {* D) Z# ]0 e, V2 `+ Q. p0 _
width: 100%;4 G2 h6 s! h4 D
height: 100%;
* A3 {' ]$ E! _# X" l% |4 O1 O }" `- U( D0 ?9 e: U' x
6 l, k, U9 e- h: C) _/ R5 W# r. r. K; a h1 {4 i# K$ |" @$ S/ W4 ^
color: aqua;1 R: I& B0 r- T
}7 S/ }: D' V# w5 @
</style>
$ W1 Q3 w% T" h: J& l5 P9 x: D</head>
. U' Q: I, t! {# e1 D6 f5 W% g4 M @" t. W) I
<body>
0 [5 Y) v( U+ a/ _% K4 `7 s <script src="js/three.js"></script>
2 N' Q* Y9 X5 \5 |! D# P* V" ` <script src="js/OrbitControls.js"></script>
8 ~- l! [0 ~$ K3 j1 G: c <script src="myjs.js"></script>
3 F- B" g7 n! L3 G 8 k# K9 `0 v/ a! Q2 |" A9 {% i
4 y& H7 R0 Y3 h9 T9 ^& C6 i
) X: U# \: G7 g# g2 y4 r7 F
% Y0 R6 i! |) d3 e2 w8 }( l</body>
- x1 }. B. [' b
' j) l$ |0 v. R+ c* p: e0 v6 X3 W# R, O</html>[/mw_shl_code]
+ y" t; |0 e- f* [5 l) ^- v+ C* |# W- E1 W$ c+ Q6 o% w5 o
效果点击这里:
0 O: [3 R+ N; z* |! b3 q b. x9 v8 k. z3 u& h. w$ P& i) Z% k# v
http://plmhome.com/doteam/lesson1.html
/ h7 [8 V: l$ V' }2 e7 k8 D
/ `# H( p5 B7 @3 t9 u2 h& L* T6 [' w6 c3 Y
|
|