|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' [7 ]5 B/ K$ ?4 n# v; R6 x* n
/ _, x% }4 y3 x
废话不多说,官网自己百度下, threejs.org ,入门很简单。; u( |/ G2 j; q7 O* w
- c! h+ H( ^& O& I% T$ Y4 X0 A创建的javascript脚本如下# j% v6 C2 b$ _0 ^( h; v, ?
+ k( b* L. O/ s9 [7 @& J r8 Y: c$ V
) e! e' S \) t. X[mw_shl_code=javascript,true]3 u5 _4 k/ a n" y
var scene = new THREE.Scene();
1 I; u2 g& U3 [var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
) w* M3 y7 Q8 bvar renderer = new THREE.WebGLRenderer();" ~% @! ^) y6 M& X8 @
renderer.setSize(window.innerWidth, window.innerHeight);: U) y$ g2 k$ p& {
document.body.appendChild(renderer.domElement);
% ^8 U3 V1 E9 N* V3 C8 j( v* n9 Y) Y7 @5 I- s% s: d9 Z
// Refresh Issue : D, o& G: e; K% O5 c# J" \2 j
window.addEventListener('resize', function () {
3 u8 e1 h% `% N5 ]+ _ R8 M var width = this.window.innerWidth;
2 G. l f6 s% Y' P: Y var height = this.window.innerHeight;+ B" M6 A! I/ o* ^0 P- u
render.setSize(width, height);) y* q: a7 m- Q! n$ x+ {
camera.aspect = width / height;' r$ ^1 t1 P/ S# Y! B
camera.updateProjectionMatrix();% n% ?. m6 D% q5 R
})
4 x$ e5 @7 [! V3 j2 @" |5 \3 ^* c1 S0 c" G$ n" v- C4 X6 A1 C, y
//orbit contorls
5 H* p2 Y# g$ i& n0 _3 h+ Zcontrols = new THREE.OrbiTControls(camera,renderer.domElement);
0 X) @3 U$ N5 l6 u X$ z0 ^
+ K$ H9 I8 u7 G5 c//create the shape( A7 Z2 D/ |# f0 n$ F- V
var geometry = new THREE.TorusGeometry(2, 1, 16, 100);
( h R" \! v! a0 l" F& o0 k//create a meterial6 j: B( F* c, ]$ G/ h
var material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });
) q: w# |# C/ Y//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];- ~7 `5 d6 Z. T) W
//var material = new THREE.MeshFaceMaterial(myMaterial);) v& x! B$ r/ v$ \9 N7 w( D W# k" t! t
3 }1 J# |4 l2 B" s+ e0 P6 k- }' f0 J
var cube = new THREE.Mesh(geometry, material);
& Y: p) L, `) h$ Uscene.add(cube);
* G. z; M: Y5 W/ W6 t7 j3 J, { Ocamera.position.z = 5;
( m# ^- l' c" V1 q( q& Q& N
7 I( k4 E) O0 ^" {) u6 o6 u+ p6 X& m
; s- U+ U* n* e% W$ ~8 n$ p% {# ?
: X9 c3 a, b% T3 l& o- c
. L# K) H, Q% f' e \2 z//rotate
# U+ Z' h7 b; U# \5 P( N; n+ zvar update = function () {
2 a; B1 V8 ?1 s$ j cube.rotation.x += .01;
* S/ V" A; m4 e! q4 H cube.rotation.y += .02;
4 w9 P8 z' R3 Z" L( M& o/ O cube.rotation.z += .02;+ n8 d P* c: i6 O- O
}
\& X' B8 d& E0 R3 b9 G* o/ v
var render = function () {
' H) z9 K9 G7 s! G renderer.render(scene, camera);
& I. o: A) U% u! u0 T- n}1 E* W& f# R+ I
. ?/ P2 F* O6 W3 i! ]
. i& l2 v" N7 h, Q9 T9 E! w u! s
5 f3 ]) Y0 v# j& T* Z" Lvar Gameloop = function () {
! I9 v/ G+ |/ W) O' c requestAnimationFrame(Gameloop);* ]- o; M1 N/ |. K
update();( h: Z ]% y, y* J0 h( O
render();
! W# g9 E+ k$ a; P( w/ M}
* h7 }. W8 r$ x3 ]. D- E* Q0 d/ t2 g' u- [3 \
Gameloop();
, }1 \2 E( @( |[/mw_shl_code]
' \* [$ G# ?* y# H: ^3 B# ^2 b- ^: t- [$ g- e
* t) T/ C2 G3 h+ _) g0 x$ r
引入争取的html,9 L/ I" }# N' O ]
5 p1 O7 U: J: Q4 f8 Z
[mw_shl_code=html,true]<!DOCTYPE html>% n' g' r7 `/ g6 J1 g2 W% b
<html>
! I0 T6 E. h4 ? j' \: n x# J. L2 o) m3 N O; t$ @: n; V
<head>( d( p+ m8 {) [9 D1 q6 {
<title>hello ThreeJS</title>7 C' C0 l! C8 f+ m, f+ O w( Z: b
<style>2 q1 t: `% l$ K4 d/ k* m" y/ ~7 G3 p' \
body {0 o* `! N0 {6 K/ s2 K0 I
margin: 0;1 l: b% j' j$ F6 o$ \
}
: {5 m6 [! X/ d$ ^1 E7 I
+ _1 V8 r/ q! N8 M# E9 \( [. V canvas {+ V( v0 F6 e- M4 e
width: 100%;
$ Y: k) V- P4 R7 D' g height: 100%;# u+ u6 m) H, D1 I+ N/ B1 a3 D4 c6 j
}
% `% V9 K* Q$ C2 _( j
' E( N g5 w% F u7 s9 z% V h1 {
+ l4 g _5 k. e% @ color: aqua;7 R" r4 q* ^0 k a. f! Q
}
5 a6 y$ C' R& ?2 ^9 e </style>- X9 u) \; L h' Q0 L, L
</head>" c/ _' c* ?9 K0 t9 W
; S" Z( X: c6 T
<body>" B A0 _( E4 B
<script src="js/three.js"></script>
: f! N0 r( G/ q( p7 ~9 E <script src="js/OrbitControls.js"></script>
9 U# L8 C' d! B! L* s <script src="myjs.js"></script>
3 Q) O0 w- Z8 T" G0 j: \
1 s- H: J! }& m' K2 y8 S# E( U4 K( `# l7 X' ]
; |; f3 g5 @) Y% S9 z9 U, D, s. `2 R Y7 z4 Z
</body>
$ ~! ~8 H4 e, h' ?
% Y/ |1 Q- i# R</html>[/mw_shl_code]
5 t' B+ [* q6 g! l I+ \- Y# N( L- ]
; m# n3 M$ J% }; R1 U3 ~+ s效果点击这里:
% M1 O- D: X% ~* j) S0 F6 I5 ^- m, t
E$ Z2 M ^) m# ^5 U [http://plmhome.com/doteam/lesson1.html
8 C z) ? B% @% ?6 `4 c( s- A7 p& P1 _5 }* r0 _
, v3 `1 Y0 n# t! q. q3 S5 A# Y
|
|