|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
) b$ \( J+ m. k) ?" ?4 @# [- _' ]0 @, |/ q' a' {# z
废话不多说,官网自己百度下, threejs.org ,入门很简单。
2 C- z6 v9 n9 ], b& `( } Z0 `& d6 s. x' Y3 ^7 t
创建的javascript脚本如下
6 _& ?0 m T: u+ o- v
/ b% ]0 m% y2 y5 [ @' G, f6 I
! A* y2 e+ Z8 v4 w8 r[mw_shl_code=javascript,true]
l+ L5 b( t7 R7 k9 C Y- ^var scene = new THREE.Scene();
u* z( Q6 G* o, P. t+ u; |var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);- k k& f4 z+ u: E
var renderer = new THREE.WebGLRenderer();* D! R3 q6 W! h& P' m+ V3 O6 U2 N
renderer.setSize(window.innerWidth, window.innerHeight);, i1 w$ U: V/ l& l+ e3 \& G
document.body.appendChild(renderer.domElement);
, F( \4 z/ ?, X& G3 x2 `4 N* t( k8 d: t( Z( J
// Refresh Issue
# Y: Q, f; \/ [! f q; Z$ awindow.addEventListener('resize', function () {
/ O, @6 E) ^; J* |, [ var width = this.window.innerWidth;+ b" B; q- r- W1 {$ S; p( [
var height = this.window.innerHeight;( u/ a3 R. ^: _9 v
render.setSize(width, height);
4 |9 O2 l& h9 m8 q% F. n camera.aspect = width / height;3 [7 k+ \+ W7 `! y! u. @7 ]4 v
camera.updateProjectionMatrix();# u( n5 c4 f/ Y+ @
})8 Z% T3 M5 r: @; g7 n9 l4 U4 g! l. f
\$ t1 y7 X5 t) }, F
//orbit contorls9 U$ }' v" o& g, W
controls = new THREE.OrbiTControls(camera,renderer.domElement);
1 V' v6 l: b) l8 H7 ~) O/ W2 i, G
4 K( l$ ?1 j: ?//create the shape
' |; C# O. F0 B' wvar geometry = new THREE.TorusGeometry(2, 1, 16, 100);0 a8 }, }# R7 ?* T# \
//create a meterial7 K+ @5 u% J8 Z, z! i3 Q4 C
var material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });$ }$ p& }$ t' w9 e8 z9 E
//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];
( d% A* X' D+ z9 w) R$ C//var material = new THREE.MeshFaceMaterial(myMaterial);
3 ?; T; [8 C0 S7 ~5 Q( d# `# E4 `( P9 u+ Q: u/ ~
var cube = new THREE.Mesh(geometry, material);
. L+ u& T7 w1 D9 @scene.add(cube);7 H+ N( a9 U* m7 T: K ?2 Q' D( K
camera.position.z = 5;
1 n7 i8 |% @( o% f8 d- D5 C/ d# Z% S/ F* h# ^0 F
) k: I3 H: K. U' ]6 t" n% U2 l
: y; V/ D N& q( [* Z
0 ]4 ~' p. _3 ]& p8 [( s8 h1 w2 a& W; |' F0 _& b9 c
//rotate
+ @$ {4 i+ `: m7 ?; svar update = function () {
) z3 b7 N9 E/ x0 J4 ~ cube.rotation.x += .01;/ X. D7 f- _) D
cube.rotation.y += .02;3 d, N# H5 ?3 X: L2 T7 I) k5 C
cube.rotation.z += .02;, t/ V1 v& s, ]4 b7 _" m7 b
}
0 v. A) t8 P4 E2 ~
" L: [% `2 Q; B0 ~/ v6 X( svar render = function () {# i% V; r5 D: z1 l& @, B' u- o0 O4 K
renderer.render(scene, camera);
% B6 T1 M+ Y) H8 G}
0 `2 k6 x% m4 \# j2 B1 [. S! t% O" {, k. b, u \
1 c( ]* J! ~/ H1 R" L
7 b! i% Y" E9 K/ x. Gvar Gameloop = function () {7 i/ ]" ~' C% j" H- b4 c+ [: A
requestAnimationFrame(Gameloop);2 [! \4 @7 w( [. D3 V
update();
* P+ \2 p4 G: K+ l render();
! p6 {6 C6 O9 Q2 q1 ~7 z; s" E}+ D j2 C9 L. l) N- o
% E# |, \" q3 l f. P; y
Gameloop();( \/ q8 v6 B7 v7 }
[/mw_shl_code]+ ~) q3 g6 u3 k) V$ b$ d) u
n& Q; _& y; r" z" T0 ]) {3 @! V8 l* I% H. G) o1 M. t5 C
引入争取的html,1 j7 R( R. L7 k% J+ s
& j3 M5 P3 b1 o7 L# w
[mw_shl_code=html,true]<!DOCTYPE html>
" W9 _1 W, w+ J$ {1 c" L<html>
2 Y c) f; p, X1 H: P! b/ g+ ?3 N- l8 T7 D4 D1 W* ^" `8 G
<head>
2 o0 z# m5 p. u1 Z; Y! r <title>hello ThreeJS</title>2 w* [7 x( \6 s6 N! a, e
<style>4 l2 p9 Z" w- R' d* `/ a
body {& {1 W; @* F& U; m5 i. P* r
margin: 0;: J& ]' F$ D5 k9 V% s( F$ q/ A |
}5 G2 O- q5 E( v' k8 E7 m
' j( G/ T- b7 C$ D% \+ m. U4 | canvas {
2 F7 r# r! v3 }+ r$ [% { width: 100%;
' R2 E7 v6 [5 h1 B height: 100%;; A6 u; z! A. o2 @1 k
}
' c# H) ^+ w! R# M# g' w0 {' t7 G# }' G4 P. U
h1 {
0 E8 `* z* k @: C; K color: aqua;
. R( ?! A0 a1 r9 Y: | }! P y( { X. r# P. J7 V& }1 H2 U7 ?
</style>) p+ c- L8 w( O
</head>" h$ M1 X+ ~$ a5 K7 L! K' ^
# q' L& V( A3 i1 Y/ s0 B
<body>0 Q" K1 ]6 i7 _ A T
<script src="js/three.js"></script># m0 X2 |/ C* T- z$ d4 E. d
<script src="js/OrbitControls.js"></script>0 `4 K* W( _! T! {) D V1 I: L9 t
<script src="myjs.js"></script>
! K; s6 t4 |3 e( Q7 Z* x
$ J: m! k+ j8 e+ m3 q+ |' V5 a5 L7 r/ D+ Y6 [, X5 O
% i1 p1 }% a2 u- w! }# J8 m
! P8 z- N; R; z; p* K# i, M</body>9 L3 N: f) |3 [# L& ], ?1 e
! C- \ B1 ]/ l w6 z9 ^</html>[/mw_shl_code]
2 S2 ]# f1 E3 P: n7 x3 l [. m- ]" C" @
效果点击这里:
; R4 y# A3 t& E$ L! t+ k% {. `/ \! ~* t. M2 j
http://plmhome.com/doteam/lesson1.html
1 c/ G! w9 A+ f% O2 t: W, b' ` L3 c, T; x( H7 r
2 t3 \2 s/ ], Y |
|