|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
) `) x9 I0 z1 R: C9 v# Y
2 G# d" n. }) @! W
废话不多说,官网自己百度下, threejs.org ,入门很简单。
0 z9 K+ l4 c0 T; t u+ i( O
e' t" D i& _9 H创建的javascript脚本如下
$ t/ j; p- t! b- n3 e& E
1 w" D3 `9 F9 r9 n% k; o+ e1 m( T
- E7 m/ c# ^" w5 H1 O% T7 B; M8 \
[mw_shl_code=javascript,true]4 I7 U6 ^! e L
var scene = new THREE.Scene();& C9 j' V* {0 V; i
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);, {/ y+ v+ `4 @7 f( C! \
var renderer = new THREE.WebGLRenderer();; g& t2 O1 v0 L/ L6 y0 P
renderer.setSize(window.innerWidth, window.innerHeight);
6 d% o+ O0 @! c @document.body.appendChild(renderer.domElement);% d0 [9 J# i) J
: R: A4 y" h J+ k
// Refresh Issue / t' R* ~/ i3 [, Y0 }* S
window.addEventListener('resize', function () {
( j# e; d! D( v- O: U4 s) n var width = this.window.innerWidth;5 j9 ~( p( K& p' v4 ^+ q8 c+ N8 {
var height = this.window.innerHeight;4 s8 u' b) Q- p% P9 ?
render.setSize(width, height);) c( T% w/ n. Y) s
camera.aspect = width / height;$ y) Q' W( C3 F& y6 a
camera.updateProjectionMatrix();
& I; ^5 |( z1 q+ @+ i0 x. k$ p, }})
# b4 L# M$ u0 r+ E" l8 h" D; Y5 j7 k1 \; u; U8 b" N, x0 n
//orbit contorls# e8 @# }! H9 L
controls = new THREE.OrbiTControls(camera,renderer.domElement);4 W: D0 W, y: r3 M& y& b& j5 J
7 t5 R$ p/ W. A
//create the shape% u2 Y1 Z( _, Q ]0 k
var geometry = new THREE.TorusGeometry(2, 1, 16, 100);
! @9 d: u9 ^* o$ j( T$ }: R, `; J; g' R//create a meterial: o- y' Y9 X! G9 W$ _
var material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });/ E/ h* k0 |' T8 `8 c( c, V
//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];
* R; B# V# I6 G& \0 f//var material = new THREE.MeshFaceMaterial(myMaterial);
3 L1 P5 J& H" |* s
" R" C/ z0 Y1 w ]" o" ?: f% h, lvar cube = new THREE.Mesh(geometry, material);
( C6 F- ?8 j" M/ V6 _scene.add(cube);# D, j6 w9 Y# m; C. w+ S" P
camera.position.z = 5;
+ O7 D9 a/ h# \: ^) m8 P: I+ T* s8 i9 S* [; A. f$ `
y4 q, a w4 `! J/ u- P
) T* E: W- n" k' u4 p
& s. _% E. I" P) z) \' }/ A
* V' ?1 \5 t/ F& N: K
//rotate , w/ v2 Y1 L& V5 `
var update = function () {
/ ~6 ^ O% N* _ cube.rotation.x += .01;
+ @% v6 C. x% O5 i0 U8 |, O cube.rotation.y += .02;
& }0 i8 [1 B A3 t2 b cube.rotation.z += .02;# w" O7 I. q0 m# D3 m$ ]
}6 ?- H+ {# j9 c. V C- b3 z
) T6 k1 w1 B) K5 O9 S% S# \0 Dvar render = function () {
+ f' F0 u8 o- T( I% c! F3 y renderer.render(scene, camera);. f# w; T) G6 m, w# y$ Y
}
$ f E" Z: q( ? g i+ f
* p; t8 J, w1 K: _! s1 f9 r: {$ H# H8 l; _: g( j! b
8 B9 n; m/ w/ q6 K5 {2 j$ n3 U( R. A
var Gameloop = function () {; }9 S$ V# A0 W5 e' z9 d7 e
requestAnimationFrame(Gameloop);! W: g) _/ Y7 z& [5 ~
update();7 g8 s# K9 ~$ v) h! d
render();
, y" F* ]4 V) ^: k5 w# J}! K" c8 Z: c" d- H9 D, f
$ ]) t$ s' w2 j* w5 LGameloop();
( k# I0 _8 @ c[/mw_shl_code]
5 h: G6 c2 m, x; V! K
3 H2 `: e; X4 o4 ^/ e1 a6 ]8 Y
2 @# T2 j1 \; o4 W$ q引入争取的html,
$ V |! s* ~( [$ Z! @# L- l
1 y' ~$ {0 P+ Z[mw_shl_code=html,true]<!DOCTYPE html>
% ]$ k% N1 P% J$ O<html>
6 q- z5 I; @- R! l! k; w* D1 _3 A3 y* J1 F
<head>
) R1 `/ t6 a: W; P3 X9 q/ L <title>hello ThreeJS</title>) }) ?4 }( U6 Z
<style>
% i6 z3 u3 w) {+ A0 @% E9 C: k body {
4 Q/ e+ v% c. X! \ margin: 0;
) L) W7 b# h& |9 J4 a* C }( F0 F4 a) c& }& `, `4 M! \9 [
& @& H! U. {0 R1 V( `+ O9 W canvas {9 f7 a9 T) O6 F1 f. [
width: 100%;
i t3 v n# a% t9 t5 z+ I% s height: 100%;, n% V, y9 h$ H" r4 W% o1 b$ d( K
}
0 U) ^" E$ J, N6 Q0 |3 L0 Q# r o* T
h1 {( l# c( A* r+ j
color: aqua;; r# x8 m- J. N4 m0 J' N
}- Q1 w) Z' l/ n
</style>* Q( X4 B- J5 T5 [
</head>8 y) `) F& o* v' c& M1 e. I
w+ F8 _0 } J& W: Z- w8 H# T<body>
3 I. s% s8 T8 N0 O- z <script src="js/three.js"></script>7 `6 z9 z% Q# V( ^! z) E* Y
<script src="js/OrbitControls.js"></script>/ x2 j d, W1 {- c1 h+ ?3 x
<script src="myjs.js"></script>
) Q& e' a7 e1 y
7 y8 I( h8 y8 q5 U$ c# T7 c. v, M7 R X. ^, w
* R* W+ H) M* }, W1 Y* u# Z0 p: z$ @/ y$ {+ q: Q" b7 y5 b
</body>( {8 v4 Y3 b: w# h
: l0 C: K Z% U6 u# v</html>[/mw_shl_code]
2 ~. P/ E2 p$ j
) E! E; B; o `3 J0 `效果点击这里:! |8 ~1 I# w ~, M& |
1 I$ j) d+ H, m" a; d9 C. A! N9 f
http://plmhome.com/doteam/lesson1.html8 A/ M5 P% }( W8 P+ s2 k- Y
v/ J5 K3 i) O; H' m
: ]& N: \% H7 ]( t3 x) L: G
|
|