|
6 | 6 | <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> |
7 | 7 | <style> |
8 | 8 | body { |
9 | | - background:#000; |
10 | | - padding:0; |
11 | | - margin:0; |
| 9 | + background: #000; |
| 10 | + padding: 0; |
| 11 | + margin: 0; |
12 | 12 | font-weight: bold; |
13 | | - overflow:hidden; |
| 13 | + } |
| 14 | + |
| 15 | + canvas { |
| 16 | + display: block; |
14 | 17 | } |
15 | 18 |
|
16 | 19 | #info { |
17 | 20 | position: absolute; |
18 | 21 | top: 0px; width: 100%; |
19 | 22 | color: #ffffff; |
20 | 23 | padding: 5px; |
21 | | - font-family:Monospace; |
22 | | - font-size:13px; |
23 | | - text-align:center; |
24 | | - z-index:1000; |
| 24 | + font-family: Monospace; |
| 25 | + font-size: 13px; |
| 26 | + text-align: center; |
25 | 27 | } |
26 | 28 |
|
27 | 29 | a { |
|
46 | 48 | import { Scene } from '../src/scenes/Scene.js'; |
47 | 49 | import { WebGLRenderer } from '../src/renderers/WebGLRenderer.js'; |
48 | 50 |
|
| 51 | + import { OrbitControls } from './jsm/controls/OrbitControls.js'; |
| 52 | + |
49 | 53 | // |
50 | 54 |
|
51 | 55 | var camera, scene, renderer; |
52 | | - |
53 | | - var mouseX = 0, mouseY = 0; |
54 | | - |
55 | | - var windowHalfX = window.innerWidth / 2; |
56 | | - var windowHalfY = window.innerHeight / 2; |
| 56 | + var controls; |
57 | 57 |
|
58 | 58 | init(); |
59 | | - animate(); |
| 59 | + render(); |
60 | 60 |
|
61 | 61 | function init() { |
62 | 62 |
|
63 | | - camera = new PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 20000 ); |
64 | | - camera.position.z = 3200; |
| 63 | + camera = new PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 0.1, 100 ); |
| 64 | + camera.position.z = 3; |
65 | 65 |
|
66 | 66 | scene = new Scene(); |
67 | 67 | scene.background = new Color( 0, 0, 0.5 ); |
68 | | - scene.fog = new Fog( 0x000000, 1, 20000 ); |
| 68 | + scene.fog = new Fog( 0x000000, 0.1, 3 ); |
69 | 69 |
|
70 | 70 | var light = new PointLight( 0xffffff ); |
71 | 71 | scene.add( light ); |
72 | 72 |
|
73 | | - var geometry = new SphereBufferGeometry( 50, 32, 16 ); |
| 73 | + var geometry = new SphereBufferGeometry( 0.05, 32, 16 ); |
74 | 74 | var material = new MeshNormalMaterial(); |
75 | 75 |
|
76 | 76 | for ( var i = 0; i < 5000; i ++ ) { |
77 | 77 |
|
78 | 78 | var mesh = new Mesh( geometry, material ); |
79 | 79 |
|
80 | | - mesh.position.x = Math.random() * 10000 - 5000; |
81 | | - mesh.position.y = Math.random() * 10000 - 5000; |
82 | | - mesh.position.z = Math.random() * 10000 - 5000; |
| 80 | + mesh.position.x = Math.random() * 10 - 5; |
| 81 | + mesh.position.y = Math.random() * 10 - 5; |
| 82 | + mesh.position.z = Math.random() * 10 - 5; |
83 | 83 |
|
84 | 84 | mesh.rotation.y = Math.random() * 2 * Math.PI; |
85 | 85 |
|
|
97 | 97 | renderer.setSize( window.innerWidth, window.innerHeight ); |
98 | 98 | document.body.appendChild( renderer.domElement ); |
99 | 99 |
|
100 | | - document.addEventListener( 'mousemove', onDocumentMouseMove, false ); |
| 100 | + window.addEventListener( 'resize', onWindowResize, false ); |
101 | 101 |
|
102 | 102 | // |
103 | 103 |
|
104 | | - window.addEventListener( 'resize', onWindowResize, false ); |
| 104 | + controls = new OrbitControls( camera, renderer.domElement ); |
| 105 | + controls.addEventListener( 'change', render ); |
105 | 106 |
|
106 | 107 | } |
107 | 108 |
|
108 | 109 | function onWindowResize() { |
109 | 110 |
|
110 | | - windowHalfX = window.innerWidth / 2; |
111 | | - windowHalfY = window.innerHeight / 2; |
112 | | - |
113 | 111 | camera.aspect = window.innerWidth / window.innerHeight; |
114 | 112 | camera.updateProjectionMatrix(); |
115 | 113 |
|
116 | 114 | renderer.setSize( window.innerWidth, window.innerHeight ); |
117 | 115 |
|
118 | 116 | } |
119 | 117 |
|
120 | | - function onDocumentMouseMove( event ) { |
121 | | - |
122 | | - mouseX = ( event.clientX - windowHalfX ) * 10; |
123 | | - mouseY = ( event.clientY - windowHalfY ) * 10; |
124 | | - |
125 | | - } |
126 | | - |
127 | 118 | // |
128 | 119 |
|
129 | | - function animate() { |
130 | | - |
131 | | - requestAnimationFrame( animate ); |
132 | | - |
133 | | - render(); |
134 | | - |
135 | | - } |
136 | | - |
137 | 120 | function render() { |
138 | 121 |
|
139 | | - camera.position.x += ( mouseX - camera.position.x ) * .05; |
140 | | - camera.position.y += ( - mouseY - camera.position.y ) * .05; |
141 | | - |
142 | | - camera.lookAt( scene.position ); |
143 | | - |
144 | 122 | renderer.render( scene, camera ); |
145 | 123 |
|
146 | 124 | } |
|
0 commit comments