|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
* G/ z+ P9 p7 _0 m* Z' a2 e/ s4 y
废话不多说,官网自己百度下, threejs.org ,入门很简单。# v+ N1 Q' V$ s* K! s3 m/ e6 w
- q( N0 c! O- |; H; t创建的javascript脚本如下
' K3 l9 j" v7 u4 d& q# B9 d% D! O/ E9 c+ h' E. b, X
6 U7 H- ^- y# j' n) t
[mw_shl_code=javascript,true]
4 @( {; A% g1 n( A+ Ovar scene = new THREE.Scene();+ q# U) p% A2 x5 a
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);1 [; a1 l7 ^* h: V, L' v s
var renderer = new THREE.WebGLRenderer();% _/ K/ w r9 ~4 N
renderer.setSize(window.innerWidth, window.innerHeight);
4 O0 H0 F$ e' xdocument.body.appendChild(renderer.domElement);
; G, \) e1 y! p% D) p% i" |" _/ v) K8 U. L9 q
// Refresh Issue
& W; }$ x x/ Lwindow.addEventListener('resize', function () {0 i( `4 ]8 M3 u1 X' Z; U9 [2 O
var width = this.window.innerWidth;+ |2 t0 P5 j% e4 }2 E
var height = this.window.innerHeight;
( M4 ` Y8 J7 v6 z1 G render.setSize(width, height);
* H& K1 J! f3 K4 x+ G( A/ { camera.aspect = width / height;
5 U H. J: e# Y6 I7 X camera.updateProjectionMatrix();
3 G2 r2 P3 F3 F) C+ F})1 l6 l0 T. m- D: S
0 Q' X5 k5 K; L4 [* l: ~7 P+ M! N
//orbit contorls: l" j5 v; j5 ?% M
controls = new THREE.OrbiTControls(camera,renderer.domElement);) f- x) f2 p/ k ~' |# j' [7 Y6 h
: P* c$ y- `" z* L
//create the shape7 ?# `5 x3 i% u+ l: g: ~6 k# C
var geometry = new THREE.TorusGeometry(2, 1, 16, 100);
2 J- f+ V( m# X//create a meterial
. [- p o4 q; R4 S! [var material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });
B9 x1 L: i! Z, K//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];
E8 `6 ^4 q9 z9 n) U//var material = new THREE.MeshFaceMaterial(myMaterial);
# x* t2 D5 Z& m9 v P, d
8 x$ D+ r# p# r% B3 A/ o' l; Cvar cube = new THREE.Mesh(geometry, material);
( R* E7 c) Q9 @ i$ L7 Nscene.add(cube);
7 j$ g+ |2 m9 Ccamera.position.z = 5;5 Q' Q% C) a: u) X
6 |, q- q/ J0 B a! M$ m" i; A& w* R3 x
, Q" A. M. Y/ H2 h; O' i" n
, g( i9 M8 q( |* P% m& U% m8 h4 _1 ]! Q6 {& f g
//rotate 4 Q8 M( W7 D( L& v5 W/ Q9 E
var update = function () {
4 p6 C" s' d! E4 x, e; G' E cube.rotation.x += .01;
: W* h3 y( q' s: t cube.rotation.y += .02;; Q+ f8 `( @6 |% A. l
cube.rotation.z += .02;
# m9 D. V) s6 M- m1 w1 b# X" q}
+ w9 q* s# x0 p
; ^( B8 r3 ]$ E$ P" i! {8 ]var render = function () {
# G2 C1 C, s7 K& ? renderer.render(scene, camera);; N/ A7 m3 x5 S4 @3 K$ X0 P
}
0 Y2 p( P& `! O5 f i5 H
2 O, [/ x2 R7 V% h/ U/ |" x- s: p$ _6 U- |
2 j* b# p7 J+ u$ Z& a
var Gameloop = function () {$ o) s+ O3 X& x6 p" F5 r
requestAnimationFrame(Gameloop);; N5 D d6 c5 N1 r
update();
2 K9 |; z& N$ s render();# [8 l0 A1 K& I: S1 v3 M: R4 E' W, b
}1 _7 Y2 a/ V3 A) e# ^
' o7 n; P) ?7 f/ _Gameloop();% F6 J+ L+ O/ u+ V D+ D" q) {* _
[/mw_shl_code]# l! J+ {0 D7 z* r& ?# S* @# p; X
3 A6 i. N$ y6 ]7 W! f3 M+ W$ i0 C- `8 ~6 c! M# S! i9 P
引入争取的html,4 V( _; u7 i3 I2 m! e$ |# @
* Z7 R. U0 r7 I4 c E |! s[mw_shl_code=html,true]<!DOCTYPE html>
5 u. y! \. ^0 R1 M; ~<html>
. e: U8 N0 g# b- I/ x( r* w/ [, d9 v# T) v. A
<head>" O$ n# L, v" E
<title>hello ThreeJS</title>
' @2 n0 }# M) r+ I7 D <style>
: f* i5 T. B0 O% B6 y I body {
% n# h0 F. h; J& y: w3 }) J& `# v margin: 0;# [5 a. T, ~9 Z: B
}
5 h7 p2 L% q& j. `! ?& g" B1 [1 n+ h4 k
canvas {
* ]5 S" F$ v% w5 }+ ^- ^8 N( k6 @ width: 100%;
! T' p; h1 ~- V) m. l6 J8 s' y height: 100%;* l+ G1 O+ l% j4 A- w2 z( C
}, t) y* V6 _8 m, N6 T
) Z) V7 p0 W8 v; W: w2 ?5 i
h1 {" }3 w4 v' r$ s2 z2 f8 h
color: aqua;+ g j" O7 B2 d- q1 B; l' P
}6 ^% `. ^9 M% n; m
</style> W* \- F' d7 X8 Q0 d' `
</head>
- I s& u! R% r0 W C0 [0 V7 V4 T) O5 h
<body>2 y Q2 e$ b- d+ k5 y( Z- R
<script src="js/three.js"></script>
/ i/ {2 L. \4 [. t$ R7 S+ k. P <script src="js/OrbitControls.js"></script>
7 ]9 }( E$ N2 x <script src="myjs.js"></script>3 @4 J/ t g/ `' D8 z
; [$ F( V" W# I' i& v6 m" X
3 y6 \3 }. R9 e1 N4 O; T
1 m' @9 c6 E. n# W0 b' @3 S: I
7 B- B3 H. ^4 l7 a9 }" ]8 n
</body>7 Z$ ?8 c7 J- C- I3 `. c4 |
+ t) d$ M7 I! ~$ j/ x
</html>[/mw_shl_code]6 ^1 m6 Y0 ]: D( F0 \, {
5 z1 }5 c/ g; q2 X% } y2 L
效果点击这里:: x! ? z5 i) r8 u+ J" I
" d' \) @; \( Y( G# h, H* Ahttp://plmhome.com/doteam/lesson1.html
; f7 i. [2 C' B2 O5 U0 g% P/ w5 M, P8 ^/ J& G5 ?3 u
# f9 N+ W7 X0 X% C- o; U$ [ |
|