|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
. J9 e+ Z/ F2 A, X
8 X& s+ ?8 @. `+ k+ e' K' C2 ?) P. z废话不多说,官网自己百度下, threejs.org ,入门很简单。
; x+ o- {; D3 q! B$ E+ R' O1 G1 q' J! S0 A- {2 l
创建的javascript脚本如下# [+ p( U1 Z) Z/ [# w
" l: z# R. ]5 F2 G8 y
' U2 B" f6 j+ h/ S& u3 `' n! m# r7 ^[mw_shl_code=javascript,true]% r1 J# _) x5 g f
var scene = new THREE.Scene();
& o, e% f1 W6 J' m" \# t- Evar camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);' Y h6 I" @2 M1 a1 k
var renderer = new THREE.WebGLRenderer();/ i( i1 X% C( }5 X! {0 o7 `5 ^7 h; @
renderer.setSize(window.innerWidth, window.innerHeight);
( \) g, ~3 [& L) ]+ F) i7 ydocument.body.appendChild(renderer.domElement);6 f8 Z$ L. x: x! B6 N
]0 p! W x3 f0 O; e
// Refresh Issue 1 Q E+ V9 k6 A$ U9 v
window.addEventListener('resize', function () {
$ [. [* }* L# g+ ~, B! `0 P+ U4 ] var width = this.window.innerWidth;* _2 O2 v; X$ E
var height = this.window.innerHeight;; B# H5 y- W& j) @5 t' t; Q
render.setSize(width, height);
5 Y$ Y2 i5 |- p! a( \ camera.aspect = width / height;
' g9 g2 a# J& q camera.updateProjectionMatrix();( w' {( }: m# ]6 c
})" X4 X" |/ [7 D) h0 C/ j4 Q- o+ o
0 a- |8 V& S* g9 h( D0 I+ F8 f
//orbit contorls, v/ X8 x' V1 Y9 x
controls = new THREE.OrbiTControls(camera,renderer.domElement);" ~* C( T: g& `. s
% o* f3 ]5 L: t2 p8 I4 H* Y: M) o$ Y
//create the shape1 I8 J# J$ t7 e8 X: g/ `
var geometry = new THREE.TorusGeometry(2, 1, 16, 100);
1 Z& Y3 A" d. H7 ]7 d/ B//create a meterial
@) c' Z$ d* z Y, c& o! Z- Cvar material = new THREE.MeshBasicMaterial({ color: 0xffff00, wireframe: true, });; l' n7 W8 o3 u. }2 X! y9 D3 G
//var myMaterial = [new THREE.MeshBasicMaterial({map:new THREE.TextureLoader().load('image/plmhome.png'),side:THREE.DoubleSide}),];! Q& I+ }+ m) f& e+ d4 ^8 N
//var material = new THREE.MeshFaceMaterial(myMaterial);' [% g- F0 B2 v5 H! w4 }; x* y
1 h' H/ Z2 n5 D& @) L1 w* O0 N
var cube = new THREE.Mesh(geometry, material);
. n7 D' j& L! a' R& iscene.add(cube);* t+ a: }9 Q. ^/ P8 `2 |
camera.position.z = 5;6 L1 T- ?) {5 b" P2 p
2 E7 p# n& Z9 ]) \
4 {: u* ~) W* }6 w' Z" d. I- v
5 P$ j$ F6 Y4 m ]) U
" V0 l9 @0 W+ @* v2 ]3 _! z: t* [5 z) h( z* Y6 e: N$ @0 R% Q$ B
//rotate
7 p6 k3 c# I8 J' uvar update = function () {
' U) X( ]' }& p; n cube.rotation.x += .01;
: F' z1 V0 \! m$ W( Z cube.rotation.y += .02;; A8 z& M1 q( z1 i( L5 X
cube.rotation.z += .02;
3 B; R& ~8 }8 w) @- ^}1 V( @$ b( g% P8 Q& B. R5 S2 o
, g8 _6 S8 D1 Kvar render = function () {$ O% z0 L4 c7 K2 E4 O$ W- U
renderer.render(scene, camera);# W- T9 U. ?- _
}. ] Y2 c9 |- w7 |* u
8 j, @3 B0 h7 V
1 i' b0 ^( d* q* }, [) t
4 b' d2 ^7 b* O7 ]9 U: B6 @! [5 fvar Gameloop = function () {3 `9 N. E k* Q+ {! q
requestAnimationFrame(Gameloop);$ P. @6 \ B: q, N
update();
! U' Y/ _! j! { render();
- Z2 ^, p& ?2 f ~) D# @: G3 |7 D}
' O. S. n& \8 b9 r: b& u Y6 o( N
, y h6 e$ I+ f6 N v5 L% nGameloop(); H5 G" I* d3 D& k+ D( x
[/mw_shl_code]
+ h" P4 L& }' b2 I. b! |" d$ F5 ?) P% F2 C4 V
0 H& W' l9 `' u0 e8 m& W) i引入争取的html,- B6 R5 A, J) `! Z8 i& N! U9 r' i
0 E( r' t" d( q5 |
[mw_shl_code=html,true]<!DOCTYPE html>' g# ^* X* i0 Q$ R# o& o- c: y9 I
<html>8 q a# g3 ^9 p! p
7 W! s# G% ^5 W3 ?
<head>
" ?$ L4 q7 p# C' ]9 a8 \# j* T+ J <title>hello ThreeJS</title>' R' ^- z6 _- c& ^0 O
<style>
# x" A, }: w, V% F" o body {
; ` Y$ a2 n$ ?" W% x margin: 0;1 G! \9 s$ _0 \, r3 \% w# T- u1 A
}" u5 z; H6 x4 q4 a4 h
: u0 \3 O/ `2 F3 q1 v
canvas { g U# |8 W# ]( ~ ]3 ?
width: 100%;
6 |1 s% v4 k3 ^; k/ j0 V: | height: 100%;
! p& @3 M/ u: S( Y% Y5 @5 X }: N1 H8 R; Z1 t/ g/ J
( s: g9 d8 s- N; F& r8 A
h1 {
/ G4 }" C; ]9 H5 O6 @ color: aqua;
2 v' j4 o. ?0 r& w2 H& P0 o- g }
0 y" z$ z6 Q- V, G3 q) ]- y </style>
7 O* O4 Q' X$ x</head>* F! \% C$ `/ h1 m L3 y
( |) C0 P' c m X
<body>
7 d6 \4 f3 O+ ]/ A& m <script src="js/three.js"></script>
" ~; X8 p! p8 j3 Y9 }1 p <script src="js/OrbitControls.js"></script>+ `( L# k/ q; @6 M
<script src="myjs.js"></script>
% V. N$ w; A$ o/ d. g& s4 O; f . n! Q: E3 D7 P. g+ E( }! g+ }
1 `9 B9 Y; Q1 |
* j' j/ U. Y9 E" f) P' A/ N2 l; M
& P0 y/ U8 \5 T
</body>. S* ], o8 ~! Y7 X
. _' u& D# @9 y$ w4 T% P! k3 K- H" H- Y
</html>[/mw_shl_code]
2 _0 x) c5 [' E$ O; e3 ~ c1 q+ g' ?" U e n
效果点击这里:
' ]9 o. @; K, ~, |2 A2 F- f9 l: r# n6 R8 F- Q; O. a" \
http://plmhome.com/doteam/lesson1.html; O3 p% \3 S: \: l& \" h
! X7 \0 e% S2 [+ }! y
2 B( h: A/ `; k- O* U |
|