|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' Z* a, | \+ @
7 d2 T) {8 s( w+ V
废话不多说,官网自己百度下, threejs.org ,入门很简单。( |. c6 a+ L& u* ~: W( `, D8 Z, y/ h
/ s9 ?4 Q. u+ Q' n& k7 ?( w4 t
创建的javascript脚本如下4 M+ }5 K/ m" L. }, C2 p
$ y3 T- G7 _7 V' t1 a4 l- L
/ S4 t) z/ R, U% Q6 B% G' `
[mw_shl_code=javascript,true]
% G! Y, z! Y) M1 |* I) p9 {0 q2 K6 yvar scene = new THREE.Scene();
9 h$ ?" [" }. O2 }5 U5 B1 ovar camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
5 H& o# {3 Q3 n& K4 I# ^# _3 Qvar renderer = new THREE.WebGLRenderer();
! \7 @4 a8 g, H! N" p# grenderer.setSize(window.innerWidth, window.innerHeight);
/ j) g* F6 n$ O- Y' ^! S: n2 udocument.body.appendChild(renderer.domElement);
T% t- y* l, ?7 ^: L6 y8 ]. k
# L8 s: q) N1 b7 W& n( B' F// Refresh Issue $ }: P X/ m' C+ Y- J! s
window.addEventListener('resize', function () {4 \# B, o" x3 k0 ?8 ~8 U
var width = this.window.innerWidth;. Z- q( j$ f8 _2 P' a
var height = this.window.innerHeight;( V* Z5 Q7 ?$ v. C. H! \3 g/ q: y
render.setSize(width, height);9 l' t( s. O" g+ E) K8 p2 m! ?0 n! G
camera.aspect = width / height;8 D; A& K# H& x% i8 Z
camera.updateProjectionMatrix();5 j/ g- p) F% a$ A
})
0 X; ~) j. Q, W
) }; g. u. Z$ y. r5 i6 C. m; |//orbit contorls
1 @2 U8 \, [% i" }controls = new THREE.OrbiTControls(camera,renderer.domElement);8 w+ T; ]* @2 t, G1 w
: n6 U, L* @" W0 q
//create the shape
' d- l3 d+ V" p L, L2 M1 V1 k, d9 b, kvar geometry = new THREE.TorusGeometry(2, 1, 16, 100);
8 @4 L" k0 I$ V) J//create a meterial4 H5 e* y! h% ~6 L i, u6 D
var material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });6 M: j: ?; P& Q- \3 F3 z3 F8 l
//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];) `4 M' i. T3 {: ^; v
//var material = new THREE.MeshFaceMaterial(myMaterial);
1 J: a6 `' l, w+ }
. u" _( `1 A! cvar cube = new THREE.Mesh(geometry, material);
, ]2 T0 H3 ^6 l! a, j6 lscene.add(cube);8 a5 e3 W) J% t; y s
camera.position.z = 5;' n$ ^; l/ y# _. s/ U! Z% H
0 x! W* b9 i1 t7 k, `0 F1 z: k- O
3 x* C& z2 o _2 M9 k* g% W9 R" a. N! a8 |/ b* k8 B$ F
, D* V: U/ r4 |0 H, \4 P1 q0 a
1 u6 p/ C7 @' J' o6 r# r//rotate - q( V% W, {+ i
var update = function () {$ z9 F- _! N j3 q" u/ L
cube.rotation.x += .01;% N1 ?+ W! D% X# v! d, k
cube.rotation.y += .02;
$ V2 O3 v5 o$ R& I cube.rotation.z += .02;1 q3 T$ ~! w( J6 d9 w. T% p v
}9 ^1 C- t( {' G
# u$ [2 H8 T5 B. C" k, Yvar render = function () {' ^6 n3 p+ R; \+ F3 U0 T. D
renderer.render(scene, camera);
/ h$ o3 \. ~8 B* @}% D, y& y+ X6 X! x" D/ q
4 C5 c3 D( Y1 U5 r. E2 h8 Y/ f
1 ~/ F7 h$ A9 H" |6 S$ J
( i) v: T& `* o2 A' q2 q |3 ?/ o; @var Gameloop = function () {" e- z7 G2 A/ R$ x9 G/ o1 J
requestAnimationFrame(Gameloop);' y( v5 f. C4 J. R+ M
update();
# T, i) X* z7 b4 c( |: Z9 a render();6 U' G. n& ^: K: ?- V/ W' w
}
8 u/ i/ f i! \3 S. h, {
. u: `6 G, j; i' S: aGameloop();8 X' {* t+ T' i1 J8 {
[/mw_shl_code]
$ q5 Z+ E! N" i4 M, P# H+ I. @/ O+ c0 L; F3 T& j
6 i: o# Y, O4 s9 w- [/ H- @- ]
引入争取的html,8 C5 {, z& o% j" e0 B
* u5 V1 j( {* G4 H$ \0 k
[mw_shl_code=html,true]<!DOCTYPE html>/ z9 c O- x+ R& g* L, z5 B
<html>
3 G) L- d e9 _5 x4 I# r6 J5 ~0 `$ \
<head>: u( c$ @ J: Q3 Q i
<title>hello ThreeJS</title>( v' ], ]3 `1 [5 X! L
<style>. M1 T' I/ H8 l; U
body {/ d6 M/ ~5 }5 z- W* F2 [ w
margin: 0;
5 x6 [ g& G6 F! ? }8 ^$ D1 ^- B8 d% T' h0 D; J
9 i& ^# c7 U2 ~, ]' P2 h4 M
canvas {
) T) a, f6 y5 s* `& ~ J width: 100%;
1 b; r$ z1 r$ q height: 100%;
- l6 E0 m, K L+ v k }* x5 G" T0 r. ~3 p
7 s" w4 X& S8 c1 `9 J$ h h1 {! n s' R t: k$ V5 n/ P
color: aqua;0 b0 {, Y4 ]/ N% V9 j1 ?0 m
}; e( k" p9 v7 d& ~% y3 L
</style>
# z* e4 W" Q; _+ i6 l, X/ |+ g</head>
! O- Z/ }8 N4 `. g4 c' u" Y0 e I) K" m2 C) }
<body>, k- T- E) P. `
<script src="js/three.js"></script>
\$ P& ^/ F2 j0 v, s <script src="js/OrbitControls.js"></script>
* W6 c/ G3 `! C <script src="myjs.js"></script>9 k! a) D$ `1 @0 v- I6 b
/ J# e6 H0 G$ ~4 W" Q5 U! e( c
/ N9 O! {. G6 p8 A" D7 X8 s. G. V; }* g
3 q$ B2 Q' Y) R, U: `5 N) U</body># h) z& g) E0 |$ ?/ h
/ p5 G0 x) s T</html>[/mw_shl_code]* I, t# a5 {+ U! j" L' a3 |+ U
! C D0 R( ?& {1 @, g
效果点击这里:
$ Z# Y8 F6 K/ X( }* \$ e6 @/ @9 }+ h! o, X q/ \" j a# t* D
http://plmhome.com/doteam/lesson1.html
|, Y9 R' U* ^/ ~% F# ?8 ?+ y6 n& J: l; y
/ w9 }+ @, x0 Y8 w, [, N! t0 o% w |
|