|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 X) M$ @2 j" ?# r0 c; h- {4 |
; C- f3 y+ P) O1 ~1 c" I7 f2 I废话不多说,官网自己百度下, threejs.org ,入门很简单。
# P* d( y. X. X9 q9 \$ T
7 p; \5 u) h/ t: G' H, O% V创建的javascript脚本如下
' _) ?2 f% g, ~( B8 Q% b9 e, M" ?
9 T7 X' |3 @/ v: x) H
2 |" q+ O& y q# R* f8 z
[mw_shl_code=javascript,true]
4 j/ ]7 v; }" ~$ dvar scene = new THREE.Scene();
( z {+ w; D& |# |var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
) ~9 f7 M2 C8 I' i# i$ }# n4 b* V( Dvar renderer = new THREE.WebGLRenderer();: b' t% w, l3 r* x
renderer.setSize(window.innerWidth, window.innerHeight);
( ~( b- k T: t+ [2 y1 F gdocument.body.appendChild(renderer.domElement);1 z: F6 m" o0 ~6 k
% K$ g7 N5 {7 J5 R// Refresh Issue , \! z$ h: @" h% {6 U! m" z
window.addEventListener('resize', function () {
. S* b, I* }; ? var width = this.window.innerWidth;
# C2 n9 W7 R3 o1 i var height = this.window.innerHeight;
2 K3 e# ?/ s$ y" r& K: ?4 V' U9 K render.setSize(width, height);
$ g( N. w. ~; s! L2 ^& ^ camera.aspect = width / height;$ Y8 D& H, p) \3 ?" _: Y
camera.updateProjectionMatrix();
* f4 F8 b9 b+ p8 n. Y9 z# X& h})& Z3 r# F6 K* [
, s" ]% B& U" ~' b0 G# h
//orbit contorls
- r7 m# d T% Zcontrols = new THREE.OrbiTControls(camera,renderer.domElement);) p! X0 S Y( L7 s1 B2 j) o9 m
/ L$ m/ o0 ]0 Z4 Y. V//create the shape5 }. I, A# J4 X. T5 R: ^9 n& @3 Y
var geometry = new THREE.TorusGeometry(2, 1, 16, 100);# B" @8 k: V! a: B
//create a meterial6 L5 V' z8 d0 K1 i: _1 r/ m$ P1 {
var material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });6 A- o6 m1 v8 Y+ e% Q" R( a0 p
//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];
7 Y9 I/ V- U Z5 J//var material = new THREE.MeshFaceMaterial(myMaterial);
6 \/ R+ T6 @$ |. y% Z+ l! i( v8 l: w* g* v( F$ R W9 @
var cube = new THREE.Mesh(geometry, material);
2 x6 h0 R/ ~5 s% p: fscene.add(cube);& @& G! I/ }8 P. M9 I" k7 P. D: l' z
camera.position.z = 5;0 }7 O0 R D4 t
7 N, \- \: o% j7 e& H9 e$ t. K* D
4 p! W: x1 d" E: o+ ]! u4 X
$ p0 V i1 B. \$ s* A4 Y+ W- u8 g8 ~7 R/ I$ I
# i0 f# k, i& \: v//rotate
+ h' K; O0 U2 dvar update = function () {
( Q) W/ G* w: K cube.rotation.x += .01;; H& |8 |6 E' t
cube.rotation.y += .02;4 N9 Z* u, F# m- \( x( w7 y
cube.rotation.z += .02;
( n f* F7 P% B; L7 Z}5 E2 [! D7 {& X' J0 a
( z. d% b2 p+ T; I, ]8 evar render = function () {% A4 ~3 M4 O2 f- O, t& b6 _3 Q4 e. d
renderer.render(scene, camera);3 w. d+ ^" g4 L: I' r1 z1 b
}' g% o' \- Q; q7 |1 H3 H
3 B A% @ ~9 u3 q" g3 I, d/ j3 [) W6 m5 F: `3 g# M' J# U
7 V% i6 j5 x/ |2 F% z
var Gameloop = function () {
* `$ u2 M/ H4 q4 `* ? requestAnimationFrame(Gameloop);
8 y: X1 ~6 l, ]4 a update();
; d3 v: m6 b0 m& o render();
: ]2 X. ~- V) x' J}% k8 F. H* d. K$ G% R/ ^- N( U
" g5 j. t3 b) ?) f" [) t
Gameloop();1 n& B1 F1 m: T" k/ D! R
[/mw_shl_code]
- w, q1 h% x+ h. s) C/ `( ~. B3 k. I9 _, v* n8 _5 w9 e g
8 J; l& L, v. j$ j& C' b# t" U
引入争取的html, F% w) O" V# }3 h, C5 u+ I, } Q
7 e5 H! @8 W( W" S' z$ D
[mw_shl_code=html,true]<!DOCTYPE html>
) E3 ^# F+ \' k<html>. R4 q/ m+ s- u5 c& q
& H& T* S) L" B<head>
( U& u a0 p3 n1 ~# U- c3 K <title>hello ThreeJS</title>
! c' U( R6 V, r7 m1 I2 |% T <style>
% R& U. V% Y& |$ u5 l body {
4 ?, G8 K' d! C `5 y: U1 _ margin: 0;" T" s3 L: V: {" U9 L- U
} f! Z- L9 n1 q$ H3 a5 Q) n
# v O1 e6 c8 y6 @7 `
canvas { |7 S( l5 Q) T8 W" @9 f4 y
width: 100%;5 W6 u- Y) R2 g' b5 }/ x' Q2 u3 M
height: 100%;" D- C1 |' V. M7 |3 M
}8 D1 f( ^% L# X! k) k7 V
; e! i, k/ L; ^+ d; P
h1 {
O) \" x7 V+ B& ? color: aqua;
4 r! {8 X `8 D }
/ ]) J! k h" U0 g6 [ </style>$ @9 K) b) l1 a; c+ h
</head> k8 }% z% `0 E1 D
! D! J$ J3 }' E
<body>
6 S( u6 L3 z5 M <script src="js/three.js"></script># H# h# U, o O
<script src="js/OrbitControls.js"></script>
5 j! w4 B' o, u; u5 o <script src="myjs.js"></script>
. e# X- u: @- Z
4 F8 F _4 A7 t( h/ h, ~2 r$ O3 B4 ~1 H1 T3 Q, Q
& g0 s) H0 O1 S
. C) r; F8 {0 H- \</body>" ~8 h9 u/ Q/ q3 P2 N
4 F* \8 n* c+ s) S6 s
</html>[/mw_shl_code]
9 H7 ]; z* [3 U" E" s$ _ _; R2 C8 i* d8 @) K' P6 N
效果点击这里:; t' u5 `/ C) \+ ~
: a& X0 Z' l7 v2 Hhttp://plmhome.com/doteam/lesson1.html
/ A# S0 e- K6 R
& H. o6 f0 c9 \8 v3 F
( `; y/ j5 h' p0 i* D |
|