├── .gitignore
├── LICENSE
├── README.md
├── bundle.js
├── lib
├── Detector.js
└── THREE.MeshLine.js
├── package-lock.json
├── package.json
├── public
├── index.html
└── static
│ ├── app.css
│ ├── images
│ └── spinner.svg
│ └── meshes
│ ├── balloon.json
│ ├── boat01.json
│ ├── church01.json
│ ├── model.json
│ ├── pier01.json
│ ├── plane.json
│ └── tree.json
├── resources
├── balloon.fbx
├── blimp.lxo
├── church.c4d
├── dae
│ ├── balloon.dae
│ ├── boat01.dae
│ ├── church01.dae
│ ├── pier01.dae
│ ├── plane.dae
│ └── tree.dae
├── pier.blend
├── plane.lxo
├── tree.fbx
└── tree.lxo
├── src
├── FBXLoader.js
├── ImprovedNoise.js
├── classes
│ ├── bird.js
│ ├── heightmap.js
│ ├── mathf.js
│ ├── player.js
│ ├── random.js
│ └── terrain-patch.js
├── index.js
└── shaders
│ ├── landscape_frag.glsl
│ ├── landscape_vert.glsl
│ ├── standard_frag.glsl
│ └── standard_vert.glsl
├── webpack.common.js
├── webpack.dev.js
└── webpack.prod.js
/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Alexander Perrin
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Ballooning with Three.js
2 | This was developed as a study into procedural terrains, buffer geometry optimisation and shadow mappers with Three.js and WebGL.
3 | I had some grand plans for the application, but they were never realised so it's probably more useful to just release it as it is for others to take a look!
4 | There are plenty of issues with it and it's pretty rough having been developed over 2 years ago now, but if it's some use to anyone that's great.
5 |
6 | Example at https://alexanderperrin.com.au/triangles/ballooning.
7 |
8 | Use the arrow keys or the left and right sides of the screen on touch devices to move the balloon.
9 |
10 | ## Features
11 | - Procedurally generated infinite terrain & tree placement
12 | - Happy flapping birds
13 | - Shoreline boathouse placement
14 | - Pleasant mountain ballooning
15 | - Statically batched tree rendering
16 | - Runs on desktop and mobile
17 |
18 | ## Development
19 | Feel free to have a dig around in the code and change things. I've setup a [webpack](https://webpack.js.org/) development environment with hot module replacement that you can use to quickly iterate the application.
20 | - Ensure that you have node and npm installed on your machine. You can follow the official instructions at https://www.npmjs.com/get-npm
21 | - Clone the repository into your desired project folder
22 | - Run `npm install` from within the project folder to install dependencies
23 | - Ensure webpack-cli is either available globally or installed locally (`npm install --save-dev webpack-cli`)
24 | - Run `npm start`. This will spin up a webpack development server running at http://localhost:8080
25 | - Change the code you like and see what happens!
26 |
27 | ## Building
28 | - Run `npm run build` to build a production ready version of the web app.
29 | - Contents will be processed into /dist, which you can upload to your web server.
30 |
31 | ## License
32 | MIT
33 |
34 | ## Warranty
35 | None whatsoever.
36 |
--------------------------------------------------------------------------------
/lib/Detector.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @author alteredq / http://alteredqualia.com/
3 | * @author mr.doob / http://mrdoob.com/
4 | */
5 |
6 | var Detector = {
7 |
8 | canvas: !! window.CanvasRenderingContext2D,
9 | webgl: ( function () {
10 |
11 | try {
12 |
13 | var canvas = document.createElement( 'canvas' ); return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) );
14 |
15 | } catch ( e ) {
16 |
17 | return false;
18 |
19 | }
20 |
21 | } )(),
22 | workers: !! window.Worker,
23 | fileapi: window.File && window.FileReader && window.FileList && window.Blob,
24 |
25 | getWebGLErrorMessage: function () {
26 |
27 | var element = document.createElement( 'div' );
28 | element.id = 'webgl-error-message';
29 | element.style.fontFamily = 'monospace';
30 | element.style.fontSize = '13px';
31 | element.style.fontWeight = 'normal';
32 | element.style.textAlign = 'center';
33 | element.style.background = '#fff';
34 | element.style.color = '#000';
35 | element.style.padding = '1.5em';
36 | element.style.width = '400px';
37 | element.style.margin = '5em auto 0';
38 |
39 | if ( ! this.webgl ) {
40 |
41 | element.innerHTML = window.WebGLRenderingContext ? [
42 | 'Your graphics card does not seem to support WebGL.
',
43 | 'Find out how to get it here.'
44 | ].join( '\n' ) : [
45 | 'Your browser does not seem to support WebGL.
',
46 | 'Find out how to get it here.'
47 | ].join( '\n' );
48 |
49 | }
50 |
51 | return element;
52 |
53 | },
54 |
55 | addGetWebGLMessage: function ( parameters ) {
56 |
57 | var parent, id, element;
58 |
59 | parameters = parameters || {};
60 |
61 | parent = parameters.parent !== undefined ? parameters.parent : document.body;
62 | id = parameters.id !== undefined ? parameters.id : 'oldie';
63 |
64 | element = Detector.getWebGLErrorMessage();
65 | element.id = id;
66 |
67 | parent.appendChild( element );
68 |
69 | }
70 |
71 | };
72 |
73 | // browserify support
74 | if ( typeof module === 'object' ) {
75 |
76 | module.exports = Detector;
77 |
78 | }
79 |
--------------------------------------------------------------------------------
/lib/THREE.MeshLine.js:
--------------------------------------------------------------------------------
1 | ( function () {
2 |
3 | THREE.MeshLine = function () {
4 |
5 | this.positions = [];
6 |
7 | this.previous = [];
8 | this.next = [];
9 | this.side = [];
10 | this.width = [];
11 | this.indices_array = [];
12 | this.uvs = [];
13 | this.counters = [];
14 | this.geometry = new THREE.BufferGeometry();
15 |
16 | this.widthCallback = null;
17 |
18 | }
19 |
20 | THREE.MeshLine.prototype.setGeometry = function ( g, c ) {
21 |
22 | this.widthCallback = c;
23 |
24 | this.positions = [];
25 | this.counters = [];
26 |
27 | if ( g instanceof THREE.Geometry ) {
28 | for ( var j = 0; j < g.vertices.length; j++ ) {
29 | var v = g.vertices[ j ];
30 | var c = j / g.vertices.length;
31 | this.positions.push( v.x, v.y, v.z );
32 | this.positions.push( v.x, v.y, v.z );
33 | this.counters.push( c );
34 | this.counters.push( c );
35 | }
36 | }
37 |
38 | if ( g instanceof THREE.BufferGeometry ) {
39 | // read attribute positions ?
40 | }
41 |
42 | if ( g instanceof Float32Array || g instanceof Array ) {
43 | for ( var j = 0; j < g.length; j += 3 ) {
44 | var c = j / g.length;
45 | this.positions.push( g[ j ], g[ j + 1 ], g[ j + 2 ] );
46 | this.positions.push( g[ j ], g[ j + 1 ], g[ j + 2 ] );
47 | this.counters.push( c );
48 | this.counters.push( c );
49 | }
50 | }
51 |
52 | this.process();
53 |
54 | }
55 |
56 | THREE.MeshLine.prototype.compareV3 = function ( a, b ) {
57 |
58 | var aa = a * 6;
59 | var ab = b * 6;
60 | return ( this.positions[ aa ] === this.positions[ ab ] ) && ( this.positions[ aa + 1 ] === this.positions[ ab + 1 ] ) && ( this.positions[ aa + 2 ] === this.positions[ ab + 2 ] );
61 |
62 | }
63 |
64 | THREE.MeshLine.prototype.copyV3 = function ( a ) {
65 |
66 | var aa = a * 6;
67 | return [ this.positions[ aa ], this.positions[ aa + 1 ], this.positions[ aa + 2 ] ];
68 |
69 | }
70 |
71 | THREE.MeshLine.prototype.process = function () {
72 |
73 | var l = this.positions.length / 6;
74 |
75 | this.previous = [];
76 | this.next = [];
77 | this.side = [];
78 | this.width = [];
79 | this.indices_array = [];
80 | this.uvs = [];
81 |
82 | for ( var j = 0; j < l; j++ ) {
83 | this.side.push( 1 );
84 | this.side.push( -1 );
85 | }
86 |
87 | var w;
88 | for ( var j = 0; j < l; j++ ) {
89 | if ( this.widthCallback ) w = this.widthCallback( j / ( l - 1 ) );
90 | else w = 1;
91 | this.width.push( w );
92 | this.width.push( w );
93 | }
94 |
95 | for ( var j = 0; j < l; j++ ) {
96 | this.uvs.push( j / ( l - 1 ), 0 );
97 | this.uvs.push( j / ( l - 1 ), 1 );
98 | }
99 |
100 | var v;
101 |
102 | if ( this.compareV3( 0, l - 1 ) ) {
103 | v = this.copyV3( l - 2 );
104 | } else {
105 | v = this.copyV3( 0 );
106 | }
107 | this.previous.push( v[ 0 ], v[ 1 ], v[ 2 ] );
108 | this.previous.push( v[ 0 ], v[ 1 ], v[ 2 ] );
109 | for ( var j = 0; j < l - 1; j++ ) {
110 | v = this.copyV3( j );
111 | this.previous.push( v[ 0 ], v[ 1 ], v[ 2 ] );
112 | this.previous.push( v[ 0 ], v[ 1 ], v[ 2 ] );
113 | }
114 |
115 | for ( var j = 1; j < l; j++ ) {
116 | v = this.copyV3( j );
117 | this.next.push( v[ 0 ], v[ 1 ], v[ 2 ] );
118 | this.next.push( v[ 0 ], v[ 1 ], v[ 2 ] );
119 | }
120 |
121 | if ( this.compareV3( l - 1, 0 ) ) {
122 | v = this.copyV3( 1 );
123 | } else {
124 | v = this.copyV3( l - 1 );
125 | }
126 | this.next.push( v[ 0 ], v[ 1 ], v[ 2 ] );
127 | this.next.push( v[ 0 ], v[ 1 ], v[ 2 ] );
128 |
129 | for ( var j = 0; j < l - 1; j++ ) {
130 | var n = j * 2;
131 | this.indices_array.push( n, n + 1, n + 2 );
132 | this.indices_array.push( n + 2, n + 1, n + 3 );
133 | }
134 |
135 | if ( !this.attributes ) {
136 | this.attributes = {
137 | position: new THREE.BufferAttribute( new Float32Array( this.positions ), 3 ),
138 | previous: new THREE.BufferAttribute( new Float32Array( this.previous ), 3 ),
139 | next: new THREE.BufferAttribute( new Float32Array( this.next ), 3 ),
140 | side: new THREE.BufferAttribute( new Float32Array( this.side ), 1 ),
141 | width: new THREE.BufferAttribute( new Float32Array( this.width ), 1 ),
142 | uv: new THREE.BufferAttribute( new Float32Array( this.uvs ), 2 ),
143 | index: new THREE.BufferAttribute( new Uint16Array( this.indices_array ), 1 ),
144 | counters: new THREE.BufferAttribute( new Float32Array( this.counters ), 1 )
145 | }
146 | } else {
147 | this.attributes.position.copyArray( new Float32Array( this.positions ) );
148 | this.attributes.position.needsUpdate = true;
149 | this.attributes.previous.copyArray( new Float32Array( this.previous ) );
150 | this.attributes.previous.needsUpdate = true;
151 | this.attributes.next.copyArray( new Float32Array( this.next ) );
152 | this.attributes.next.needsUpdate = true;
153 | this.attributes.side.copyArray( new Float32Array( this.side ) );
154 | this.attributes.side.needsUpdate = true;
155 | this.attributes.width.copyArray( new Float32Array( this.width ) );
156 | this.attributes.width.needsUpdate = true;
157 | this.attributes.uv.copyArray( new Float32Array( this.uvs ) );
158 | this.attributes.uv.needsUpdate = true;
159 | this.attributes.index.copyArray( new Uint16Array( this.indices_array ) );
160 | this.attributes.index.needsUpdate = true;
161 | }
162 |
163 | this.geometry.addAttribute( 'position', this.attributes.position );
164 | this.geometry.addAttribute( 'previous', this.attributes.previous );
165 | this.geometry.addAttribute( 'next', this.attributes.next );
166 | this.geometry.addAttribute( 'side', this.attributes.side );
167 | this.geometry.addAttribute( 'width', this.attributes.width );
168 | this.geometry.addAttribute( 'uv', this.attributes.uv );
169 | this.geometry.addAttribute( 'counters', this.attributes.counters );
170 |
171 | this.geometry.setIndex( this.attributes.index );
172 |
173 | }
174 |
175 | function memcpy( src, srcOffset, dst, dstOffset, length ) {
176 | var i
177 |
178 | src = src.subarray || src.slice ? src : src.buffer
179 | dst = dst.subarray || dst.slice ? dst : dst.buffer
180 |
181 | src = srcOffset ? src.subarray ?
182 | src.subarray( srcOffset, length && srcOffset + length ) :
183 | src.slice( srcOffset, length && srcOffset + length ) : src
184 |
185 | if ( dst.set ) {
186 | dst.set( src, dstOffset )
187 | } else {
188 | for ( i = 0; i < src.length; i++ ) {
189 | dst[ i + dstOffset ] = src[ i ]
190 | }
191 | }
192 |
193 | return dst
194 | }
195 |
196 | /**
197 | * Fast method to advance the line by one position. The oldest position is removed.
198 | * @param position
199 | */
200 | THREE.MeshLine.prototype.advance = function ( position ) {
201 |
202 | var positions = this.attributes.position.array;
203 | var previous = this.attributes.previous.array;
204 | var next = this.attributes.next.array;
205 | var l = positions.length;
206 |
207 | // PREVIOUS
208 | memcpy( positions, 0, previous, 0, l );
209 |
210 | // POSITIONS
211 | memcpy( positions, 6, positions, 0, l - 6 );
212 |
213 | positions[ l - 6 ] = position.x;
214 | positions[ l - 5 ] = position.y;
215 | positions[ l - 4 ] = position.z;
216 | positions[ l - 3 ] = position.x;
217 | positions[ l - 2 ] = position.y;
218 | positions[ l - 1 ] = position.z;
219 |
220 | // NEXT
221 | memcpy( positions, 6, next, 0, l - 6 );
222 |
223 | next[ l - 6 ] = position.x;
224 | next[ l - 5 ] = position.y;
225 | next[ l - 4 ] = position.z;
226 | next[ l - 3 ] = position.x;
227 | next[ l - 2 ] = position.y;
228 | next[ l - 1 ] = position.z;
229 |
230 | this.attributes.position.needsUpdate = true;
231 | this.attributes.previous.needsUpdate = true;
232 | this.attributes.next.needsUpdate = true;
233 |
234 | };
235 |
236 | THREE.MeshLineMaterial = function ( parameters ) {
237 |
238 | var vertexShaderSource = [
239 | 'precision highp float;',
240 | '',
241 | 'attribute vec3 position;',
242 | 'attribute vec3 previous;',
243 | 'attribute vec3 next;',
244 | 'attribute float side;',
245 | 'attribute float width;',
246 | 'attribute vec2 uv;',
247 | 'attribute float counters;',
248 | '',
249 | 'uniform mat4 projectionMatrix;',
250 | 'uniform mat4 modelViewMatrix;',
251 | 'uniform vec2 resolution;',
252 | 'uniform float lineWidth;',
253 | 'uniform vec3 color;',
254 | 'uniform float opacity;',
255 | 'uniform float near;',
256 | 'uniform float far;',
257 | 'uniform float sizeAttenuation;',
258 | '',
259 | 'varying vec2 vUV;',
260 | 'varying vec4 vColor;',
261 | 'varying vec3 vPosition;',
262 | 'varying float vCounters;',
263 | '',
264 | 'vec2 fix( vec4 i, float aspect ) {',
265 | '',
266 | ' vec2 res = i.xy / i.w;',
267 | ' res.x *= aspect;',
268 | ' vCounters = counters;',
269 | ' return res;',
270 | '',
271 | '}',
272 | '',
273 | 'void main() {',
274 | '',
275 | ' float aspect = resolution.x / resolution.y;',
276 | ' float pixelWidthRatio = 1. / (resolution.x * projectionMatrix[0][0]);',
277 | '',
278 | ' vColor = vec4( color, opacity );',
279 | ' vUV = uv;',
280 | '',
281 | ' mat4 m = projectionMatrix * modelViewMatrix;',
282 | ' vec4 finalPosition = m * vec4( position, 1.0 );',
283 | ' vec4 prevPos = m * vec4( previous, 1.0 );',
284 | ' vec4 nextPos = m * vec4( next, 1.0 );',
285 | '',
286 | ' vec2 currentP = fix( finalPosition, aspect );',
287 | ' vec2 prevP = fix( prevPos, aspect );',
288 | ' vec2 nextP = fix( nextPos, aspect );',
289 | '',
290 | ' float pixelWidth = finalPosition.w * pixelWidthRatio;',
291 | ' float w = 1.8 * pixelWidth * lineWidth * width;',
292 | '',
293 | ' if( sizeAttenuation == 1. ) {',
294 | ' w = 1.8 * lineWidth * width;',
295 | ' }',
296 | '',
297 | ' vec2 dir;',
298 | ' if( nextP == currentP ) dir = normalize( currentP - prevP );',
299 | ' else if( prevP == currentP ) dir = normalize( nextP - currentP );',
300 | ' else {',
301 | ' vec2 dir1 = normalize( currentP - prevP );',
302 | ' vec2 dir2 = normalize( nextP - currentP );',
303 | ' dir = normalize( dir1 + dir2 );',
304 | '',
305 | ' vec2 perp = vec2( -dir1.y, dir1.x );',
306 | ' vec2 miter = vec2( -dir.y, dir.x );',
307 | ' //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );',
308 | '',
309 | ' }',
310 | '',
311 | ' //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;',
312 | ' vec2 normal = vec2( -dir.y, dir.x );',
313 | ' normal.x /= aspect;',
314 | ' normal *= .5 * w;',
315 | '',
316 | ' vec4 offset = vec4( normal * side, 0.0, 1.0 );',
317 | ' finalPosition.xy += offset.xy;',
318 | '',
319 | ' vPosition = ( modelViewMatrix * vec4( position, 1. ) ).xyz;',
320 | ' gl_Position = finalPosition;',
321 | '',
322 | '}' ];
323 |
324 | var fragmentShaderSource = [
325 | '#extension GL_OES_standard_derivatives : enable',
326 | 'precision mediump float;',
327 | '',
328 | 'uniform sampler2D map;',
329 | 'uniform float useMap;',
330 | 'uniform float useDash;',
331 | 'uniform vec2 dashArray;',
332 | 'uniform float visibility;',
333 | 'uniform float alphaTest;',
334 | '',
335 | 'varying vec2 vUV;',
336 | 'varying vec4 vColor;',
337 | 'varying vec3 vPosition;',
338 | 'varying float vCounters;',
339 | '',
340 | 'void main() {',
341 | '',
342 | ' vec4 c = vColor;',
343 | ' if( c.a < alphaTest ) discard;',
344 | ' if( useMap == 1. ) c *= texture2D( map, vUV );',
345 | ' if( useDash == 1. ){',
346 | ' ',
347 | ' }',
348 | ' gl_FragColor = c;',
349 | ' gl_FragColor.a *= step(vCounters,visibility);',
350 | '}' ];
351 |
352 | function check( v, d ) {
353 | if ( v === undefined ) return d;
354 | return v;
355 | }
356 |
357 | THREE.Material.call( this );
358 |
359 | parameters = parameters || {};
360 |
361 | this.lineWidth = check( parameters.lineWidth, 1 );
362 | this.map = check( parameters.map, null );
363 | this.useMap = check( parameters.useMap, 0 );
364 | this.color = check( parameters.color, new THREE.Color( 0xffffff ) );
365 | this.opacity = check( parameters.opacity, 1 );
366 | this.resolution = check( parameters.resolution, new THREE.Vector2( 1, 1 ) );
367 | this.sizeAttenuation = check( parameters.sizeAttenuation, 1 );
368 | this.near = check( parameters.near, 1 );
369 | this.far = check( parameters.far, 1 );
370 | this.dashArray = check( parameters.dashArray, [] );
371 | this.useDash = ( this.dashArray !== [] ) ? 1 : 0;
372 | this.visibility = check( parameters.visibility, 1 );
373 | this.alphaTest = check( parameters.alphaTest, 0 );
374 |
375 | var material = new THREE.RawShaderMaterial( {
376 | uniforms: {
377 | lineWidth: { type: 'f', value: this.lineWidth },
378 | map: { type: 't', value: this.map },
379 | useMap: { type: 'f', value: this.useMap },
380 | color: { type: 'c', value: this.color },
381 | opacity: { type: 'f', value: this.opacity },
382 | resolution: { type: 'v2', value: this.resolution },
383 | sizeAttenuation: { type: 'f', value: this.sizeAttenuation },
384 | near: { type: 'f', value: this.near },
385 | far: { type: 'f', value: this.far },
386 | dashArray: { type: 'v2', value: new THREE.Vector2( this.dashArray[ 0 ], this.dashArray[ 1 ] ) },
387 | useDash: { type: 'f', value: this.useDash },
388 | visibility: { type: 'f', value: this.visibility },
389 | alphaTest: { type: 'f', value: this.alphaTest }
390 | },
391 | vertexShader: vertexShaderSource.join( '\r\n' ),
392 | fragmentShader: fragmentShaderSource.join( '\r\n' )
393 | } );
394 |
395 | delete parameters.lineWidth;
396 | delete parameters.map;
397 | delete parameters.useMap;
398 | delete parameters.color;
399 | delete parameters.opacity;
400 | delete parameters.resolution;
401 | delete parameters.sizeAttenuation;
402 | delete parameters.near;
403 | delete parameters.far;
404 | delete parameters.dashArray;
405 | delete parameters.visibility;
406 | delete parameters.alphaTest;
407 |
408 | material.type = 'MeshLineMaterial';
409 |
410 | material.setValues( parameters );
411 |
412 | return material;
413 |
414 | };
415 |
416 | THREE.MeshLineMaterial.prototype = Object.create( THREE.Material.prototype );
417 | THREE.MeshLineMaterial.prototype.constructor = THREE.MeshLineMaterial;
418 |
419 | THREE.MeshLineMaterial.prototype.copy = function ( source ) {
420 |
421 | THREE.Material.prototype.copy.call( this, source );
422 |
423 | this.lineWidth = source.lineWidth;
424 | this.map = source.map;
425 | this.useMap = source.useMap;
426 | this.color.copy( source.color );
427 | this.opacity = source.opacity;
428 | this.resolution.copy( source.resolution );
429 | this.sizeAttenuation = source.sizeAttenuation;
430 | this.near = source.near;
431 | this.far = source.far;
432 |
433 | return this;
434 |
435 | };
436 |
437 | } )();
438 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "threejs-ballooning",
3 | "version": "1.0.0",
4 | "description": "Experiment using Three.js",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "webpack-dev-server --open --config webpack.dev.js --host 0.0.0.0",
8 | "build": "webpack --config webpack.prod.js"
9 | },
10 | "author": "Alexander Perrin",
11 | "license": "ISC",
12 | "devDependencies": {
13 | "babel-core": "^6.26.3",
14 | "babel-loader": "^6.4.1",
15 | "babel-minify-webpack-plugin": "^0.3.1",
16 | "babel-plugin-transform-class-properties": "^6.24.1",
17 | "babel-preset-es2015": "^6.24.1",
18 | "babel-preset-react": "^6.24.1",
19 | "clean-webpack-plugin": "^1.0.1",
20 | "copy-webpack-plugin": "^4.6.0",
21 | "css-loader": "^0.23.1",
22 | "exports-loader": "^0.6.4",
23 | "file-loader": "^0.9.0",
24 | "html-webpack-plugin": "^3.2.0",
25 | "imports-loader": "^0.6.5",
26 | "jquery": "^3.3.1",
27 | "jshint": "^2.10.1",
28 | "json-loader": "^0.5.7",
29 | "seedrandom": "^2.4.2",
30 | "strip-loader": "^0.1.2",
31 | "style-loader": "^0.13.2",
32 | "three": "^0.78.0",
33 | "uglifyjs-webpack-plugin": "^2.1.1",
34 | "underscore": "^1.9.1",
35 | "webpack": "^4.29.3",
36 | "webpack-dev-server": "^3.1.14",
37 | "webpack-glsl-loader": "^1.0.1",
38 | "webpack-merge": "^4.2.1"
39 | },
40 | "dependencies": {}
41 | }
42 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Three.js Ballooning - Alexander Perrin
5 |
6 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
loading ~ code ~
17 |

18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/public/static/app.css:
--------------------------------------------------------------------------------
1 | @-moz-keyframes spin {
2 | 100% {
3 | -moz-transform: rotate(360deg);
4 | }
5 | }
6 |
7 | @-webkit-keyframes spin {
8 | 100% {
9 | -webkit-transform: rotate(360deg);
10 | }
11 | }
12 |
13 | @keyframes spin {
14 | 100% {
15 | -webkit-transform: rotate(360deg);
16 | transform: rotate(360deg);
17 | }
18 | }
19 |
20 | body {
21 | color: black;
22 | background-color: white;
23 | font-family: sans-serif;
24 | overflow: hidden;
25 | }
26 |
27 | canvas {
28 | -webkit-touch-callout: none;
29 | -webkit-user-select: none;
30 | -khtml-user-select: none;
31 | -moz-user-select: none;
32 | -ms-user-select: none;
33 | user-select: none;
34 | outline: none;
35 | -webkit-tap-highlight-color: rgba(255, 255, 255, 0); /* mobile webkit */
36 | }
37 |
38 | #heading {
39 | position: absolute;
40 | top: 16px;
41 | left: 16px;
42 | margin-top: 0px;
43 | }
44 |
45 | #canvas-container {
46 | position: absolute;
47 | top: 0px;
48 | left: 0px;
49 | width: 100%;
50 | height: 100%;
51 | }
52 |
53 | #loader {
54 | background-color: white;
55 | position: absolute;
56 | top: 0px;
57 | left: 0px;
58 | width: 100%;
59 | height: 100%;
60 | }
61 |
62 | #loader> .label {
63 | position: absolute;
64 | top: 50%;
65 | left: 50%;
66 | text-align: center;
67 | width: 256px;
68 | height: 48px;
69 | margin-top: -24px;
70 | margin-left: -128px;
71 | color: #ddd;
72 | }
73 |
74 | #loader> .label> .spinner {
75 | display: block;
76 | margin: auto;
77 | width: 48px;
78 | height: 48px;
79 | -webkit-animation: spin 0.25s linear infinite;
80 | -moz-animation: spin 0.25s linear infinite;
81 | animation: spin 0.25s linear infinite;
82 | }
83 |
--------------------------------------------------------------------------------
/public/static/images/spinner.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/public/static/meshes/church01.json:
--------------------------------------------------------------------------------
1 | {
2 | "metadata": {
3 | "version": 4.4,
4 | "type": "Object",
5 | "generator": "Object3D.toJSON"
6 | },
7 | "geometries": [
8 | {
9 | "uuid": "1241138A-3037-4803-BE0C-B8A22772A673",
10 | "type": "BufferGeometry",
11 | "name": "church",
12 | "data": {
13 | "attributes": {
14 | "position": {
15 | "itemSize": 3,
16 | "type": "Float32Array",
17 | "array": [25.3262996673584,0,-9.125511169433594,-25.3262996673584,0,9.125511169433594,25.3262996673584,0,9.125511169433594,218.9980010986328,0,-20.958200454711914,103.39199829101562,0,20.958200454711914,218.9980010986328,0,20.958200454711914,100.07599639892578,-275.1369934082031,-102.35800170898438,208.79299926757812,-240.48300170898438,-102.35800170898438,208.79299926757812,-275.1369934082031,-102.35800170898438,100.07599639892578,-275.1369934082031,102.35800170898438,208.79299926757812,-240.48300170898438,102.35800170898438,100.07599639892578,-240.48300170898438,102.35800170898438,100.07599639892578,-381.0870056152344,-102.35800170898438,208.79299926757812,-346.4339904785156,-102.35800170898438,208.79299926757812,-381.0870056152344,-102.35800170898438,100.07599639892578,-381.0870056152344,102.35800170898438,208.79299926757812,-346.4339904785156,102.35800170898438,100.07599639892578,-346.4339904785156,102.35800170898438,100.07599639892578,-171.04100036621094,-102.35800170898438,208.79299926757812,-136.38800048828125,-102.35800170898438,208.79299926757812,-171.04100036621094,-102.35800170898438,100.07599639892578,-171.04100036621094,102.35800170898438,208.79299926757812,-136.38800048828125,102.35800170898438,100.07599639892578,-136.38800048828125,102.35800170898438,-42.24689865112305,-3.382430076599121,52.242000579833984,220.59300231933594,-105.09400177001953,52.242000579833984,220.59300231933594,-3.382430076599121,52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,220.59300231933594,-3.382430076599121,52.242000579833984,220.59300231933594,-3.382430076599121,-52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,220.59300231933594,-3.382430076599121,-52.242000579833984,220.59300231933594,-105.09400177001953,-52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,220.59300231933594,-105.09400177001953,-52.242000579833984,220.59300231933594,-105.09400177001953,52.242000579833984,-43.45479965209961,-105.09400177001953,52.242000579833984,-264.9620056152344,-58.25590133666992,-4.127120018005371,-43.45479965209961,-105.09400177001953,-52.242000579833984,63.03010177612305,-448.5899963378906,100,-48.504600524902344,-59.08219909667969,0,-48.504600524902344,-448.5899963378906,0,-43.45479965209961,-3.382430076599121,52.242000579833984,-264.9620056152344,-58.25590133666992,-4.127120018005371,-43.45479965209961,-105.09400177001953,52.242000579833984,-43.45479965209961,-3.382430076599121,-52.242000579833984,-264.9620056152344,-58.25590133666992,-4.127120018005371,-43.45479965209961,-3.382430076599121,52.242000579833984,-43.45479965209961,-105.09400177001953,-52.242000579833984,-264.9620056152344,-58.25590133666992,-4.127120018005371,-43.45479965209961,-3.382430076599121,-52.242000579833984,63.03010177612305,-59.08219909667969,100,65.05799865722656,-448.5899963378906,100,65.05799865722656,-59.08219909667969,100,-45.041099548339844,-59.08219909667969,0,63.03010177612305,-59.08219909667969,-100,-48.504600524902344,-59.08219909667969,0,63.03010177612305,-448.5899963378906,-100,65.05799865722656,-59.08219909667969,-100,65.05799865722656,-448.5899963378906,-100,-45.041099548339844,-448.5899963378906,0,63.03010177612305,-448.5899963378906,-100,65.05799865722656,-448.5899963378906,-100,63.03010177612305,-59.08219909667969,-100,-48.504600524902344,-448.5899963378906,0,-48.504600524902344,-59.08219909667969,0,-45.041099548339844,-59.08219909667969,0,63.03010177612305,-59.08219909667969,100,65.05799865722656,-59.08219909667969,100,-45.041099548339844,-448.5899963378906,0,63.03010177612305,-448.5899963378906,100,-48.504600524902344,-448.5899963378906,0,-43.45479965209961,-105.09400177001953,-52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,-43.45479965209961,-105.09400177001953,52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,-43.45479965209961,-3.382430076599121,52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,-42.24689865112305,-3.382430076599121,52.242000579833984,-43.45479965209961,-3.382430076599121,-52.242000579833984,-42.24689865112305,-3.382430076599121,52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,220.59300231933594,-59.08219909667969,0,65.05799865722656,-59.08219909667969,-100,-45.041099548339844,-59.08219909667969,0,65.05799865722656,-59.08219909667969,100,220.59300231933594,-59.08219909667969,0,-45.041099548339844,-59.08219909667969,0,220.59300231933594,-448.5899963378906,100,65.05799865722656,-59.08219909667969,100,65.05799865722656,-448.5899963378906,100,220.59300231933594,-448.5899963378906,0,65.05799865722656,-448.5899963378906,100,-45.041099548339844,-448.5899963378906,0,65.05799865722656,-448.5899963378906,-100,220.59300231933594,-448.5899963378906,0,-45.041099548339844,-448.5899963378906,0,220.59300231933594,-59.08219909667969,-100,65.05799865722656,-448.5899963378906,-100,65.05799865722656,-59.08219909667969,-100,25.3262996673584,0,-9.125511169433594,-25.3262996673584,0,-9.125511169433594,-25.3262996673584,0,9.125511169433594,218.9980010986328,0,-20.958200454711914,103.39199829101562,0,-20.958200454711914,103.39199829101562,0,20.958200454711914,100.07599639892578,-275.1369934082031,-102.35800170898438,100.07599639892578,-240.48300170898438,-102.35800170898438,208.79299926757812,-240.48300170898438,-102.35800170898438,100.07599639892578,-275.1369934082031,102.35800170898438,208.79299926757812,-275.1369934082031,102.35800170898438,208.79299926757812,-240.48300170898438,102.35800170898438,100.07599639892578,-381.0870056152344,-102.35800170898438,100.07599639892578,-346.4339904785156,-102.35800170898438,208.79299926757812,-346.4339904785156,-102.35800170898438,100.07599639892578,-381.0870056152344,102.35800170898438,208.79299926757812,-381.0870056152344,102.35800170898438,208.79299926757812,-346.4339904785156,102.35800170898438,100.07599639892578,-171.04100036621094,-102.35800170898438,100.07599639892578,-136.38800048828125,-102.35800170898438,208.79299926757812,-136.38800048828125,-102.35800170898438,100.07599639892578,-171.04100036621094,102.35800170898438,208.79299926757812,-171.04100036621094,102.35800170898438,208.79299926757812,-136.38800048828125,102.35800170898438,-42.24689865112305,-3.382430076599121,52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,220.59300231933594,-105.09400177001953,52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,-42.24689865112305,-3.382430076599121,52.242000579833984,220.59300231933594,-3.382430076599121,52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,220.59300231933594,-3.382430076599121,-52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,220.59300231933594,-105.09400177001953,-52.242000579833984,63.03010177612305,-448.5899963378906,100,63.03010177612305,-59.08219909667969,100,-48.504600524902344,-59.08219909667969,0,63.03010177612305,-59.08219909667969,100,63.03010177612305,-448.5899963378906,100,65.05799865722656,-448.5899963378906,100,-45.041099548339844,-59.08219909667969,0,65.05799865722656,-59.08219909667969,-100,63.03010177612305,-59.08219909667969,-100,63.03010177612305,-448.5899963378906,-100,63.03010177612305,-59.08219909667969,-100,65.05799865722656,-59.08219909667969,-100,-45.041099548339844,-448.5899963378906,0,-48.504600524902344,-448.5899963378906,0,63.03010177612305,-448.5899963378906,-100,63.03010177612305,-59.08219909667969,-100,63.03010177612305,-448.5899963378906,-100,-48.504600524902344,-448.5899963378906,0,-45.041099548339844,-59.08219909667969,0,-48.504600524902344,-59.08219909667969,0,63.03010177612305,-59.08219909667969,100,-45.041099548339844,-448.5899963378906,0,65.05799865722656,-448.5899963378906,100,63.03010177612305,-448.5899963378906,100,-43.45479965209961,-105.09400177001953,-52.242000579833984,-43.45479965209961,-3.382430076599121,-52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,-43.45479965209961,-105.09400177001953,52.242000579833984,-43.45479965209961,-105.09400177001953,-52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,-43.45479965209961,-3.382430076599121,52.242000579833984,-43.45479965209961,-105.09400177001953,52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,-43.45479965209961,-3.382430076599121,-52.242000579833984,-43.45479965209961,-3.382430076599121,52.242000579833984,-42.24689865112305,-3.382430076599121,52.242000579833984,220.59300231933594,-59.08219909667969,0,220.59300231933594,-59.08219909667969,-100,65.05799865722656,-59.08219909667969,-100,65.05799865722656,-59.08219909667969,100,220.59300231933594,-59.08219909667969,100,220.59300231933594,-59.08219909667969,0,220.59300231933594,-448.5899963378906,100,220.59300231933594,-59.08219909667969,100,65.05799865722656,-59.08219909667969,100,220.59300231933594,-448.5899963378906,0,220.59300231933594,-448.5899963378906,100,65.05799865722656,-448.5899963378906,100,65.05799865722656,-448.5899963378906,-100,220.59300231933594,-448.5899963378906,-100,220.59300231933594,-448.5899963378906,0,220.59300231933594,-59.08219909667969,-100,220.59300231933594,-448.5899963378906,-100,65.05799865722656,-448.5899963378906,-100],
18 | "normalized": false
19 | },
20 | "normal": {
21 | "itemSize": 3,
22 | "type": "Float32Array",
23 | "array": [0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,-0.20687739551067352,-0.9783669114112854,0,-0.20687739551067352,-0.9783669114112854,0,-0.20687739551067352,-0.9783669114112854,0,-0.6675574779510498,0,0.7445582747459412,-0.6675574779510498,0,0.7445582747459412,-0.6675574779510498,0,0.7445582747459412,-0.2466195970773697,0,0.9691123962402344,-0.2466195970773697,0,0.9691123962402344,-0.2466195970773697,0,0.9691123962402344,-0.24045920372009277,0.9706593155860901,0,-0.24045920372009277,0.9706593155860901,0,-0.24045920372009277,0.9706593155860901,0,-0.21226589381694794,0,-0.9772120118141174,-0.21226589381694794,0,-0.9772120118141174,-0.21226589381694794,0,-0.9772120118141174,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,-0.00004875840022577904,0,-1,-0.00004875840022577904,0,-1,-0.00004875840022577904,-0.6675574779510498,0,-0.7445582151412964,-0.6675574779510498,0,-0.7445582151412964,-0.6675574779510498,0,-0.7445582151412964,0,1,-0.0000037622201034537284,0,1,-0.0000037622201034537284,0,1,-0.0000037622201034537284,0,-1,-0.00002255670005979482,0,-1,-0.00002255670005979482,0,-1,-0.00002255670005979482,-0.1378553956747055,-0.6998671293258667,-0.7008438110351562,0,0.7071068286895752,-0.7071068286895752,0,-0.7071068286895752,-0.7071068286895752,-0.14844389259815216,-0.6958308219909668,0.7026975750923157,0,-0.7071068286895752,-0.7071068286895752,0,-0.7071068286895752,0.7071068286895752,-0.15821099281311035,0.6976668238639832,0.6987348794937134,0,-0.7071068286895752,0.7071068286895752,0,0.7071068286895752,0.7071068286895752,-0.14811010658740997,0.7017300724983215,-0.6968774795532227,0,0.7071068286895752,0.7071068286895752,0,0.7071068286895752,-0.7071068286895752,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,-1,-2.941079912943678e-7,0,-1,-2.941079912943678e-7,0,-1,-2.941079912943678e-7,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,-0.6675574779510498,0,0.7445582151412964,-0.6675574779510498,0,0.7445582151412964,-0.6675574779510498,0,0.7445582151412964,0,0,1,0,0,1,0,0,1,0,1,0.0000037622201034537284,0,1,0.0000037622201034537284,0,1,0.0000037622201034537284,0,0,-1,0,0,-1,0,0,-1,0,-1,0.00002255670005979482,0,-1,0.00002255670005979482,0,-1,0.00002255670005979482,-0.6675574779510498,0,-0.7445582747459412,-0.6675574779510498,0,-0.7445582747459412,-0.6675574779510498,0,-0.7445582747459412,0,1,0,0,1,0,0,1,0,0,-1,0.00004875840022577904,0,-1,0.00004875840022577904,0,-1,0.00004875840022577904,-0.1378553956747055,-0.6998671293258667,-0.7008438110351562,-0.14811010658740997,0.7017300724983215,-0.6968774795532227,0,0.7071068286895752,-0.7071068286895752,-0.14844389259815216,-0.6958308219909668,0.7026975750923157,-0.1378553956747055,-0.6998671293258667,-0.7008438110351562,0,-0.7071068286895752,-0.7071068286895752,-0.15821099281311035,0.6976668238639832,0.6987348794937134,-0.14844389259815216,-0.6958308219909668,0.7026975750923157,0,-0.7071068286895752,0.7071068286895752,-0.14811010658740997,0.7017300724983215,-0.6968774795532227,-0.15821099281311035,0.6976668238639832,0.6987348794937134,0,0.7071068286895752,0.7071068286895752,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1],
24 | "normalized": false
25 | },
26 | "uv": {
27 | "itemSize": 2,
28 | "type": "Float32Array",
29 | "array": [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1],
30 | "normalized": false
31 | },
32 | "color": {
33 | "itemSize": 3,
34 | "type": "Float32Array",
35 | "array": [0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1],
36 | "normalized": false
37 | }
38 | },
39 | "boundingSphere": {
40 | "center": [-22.18450164794922,-224.2949981689453,0],
41 | "radius": 345.3247205691946
42 | }
43 | }
44 | }],
45 | "materials": [
46 | {
47 | "uuid": "6C6D57ED-C061-47A5-B273-58DEF6CAB5F0",
48 | "type": "MeshBasicMaterial",
49 | "color": 16777215,
50 | "vertexColors": 2,
51 | "depthFunc": 3,
52 | "depthTest": true,
53 | "depthWrite": true,
54 | "skinning": false,
55 | "morphTargets": false
56 | }],
57 | "object": {
58 | "uuid": "1AD267C0-5A30-4CB0-A601-1F47F83E25D2",
59 | "type": "Mesh",
60 | "name": "church",
61 | "matrix": [0,-0.009999999776482582,6.617444752512802e-26,0,0.009999999776482582,0,4.3711401165325015e-10,0,-4.3711398389767453e-10,0,0.009999998845160007,0,0,2.0225484371185303,0,1],
62 | "geometry": "1241138A-3037-4803-BE0C-B8A22772A673",
63 | "material": "6C6D57ED-C061-47A5-B273-58DEF6CAB5F0"
64 | }
65 | }
--------------------------------------------------------------------------------
/public/static/meshes/model.json:
--------------------------------------------------------------------------------
1 | {
2 | "metadata": {
3 | "version": 4.4,
4 | "type": "Object",
5 | "generator": "Object3D.toJSON"
6 | },
7 | "geometries": [
8 | {
9 | "uuid": "1241138A-3037-4803-BE0C-B8A22772A673",
10 | "type": "BufferGeometry",
11 | "name": "church",
12 | "data": {
13 | "attributes": {
14 | "position": {
15 | "itemSize": 3,
16 | "type": "Float32Array",
17 | "array": [25.3262996673584,0,-9.125511169433594,-25.3262996673584,0,9.125511169433594,25.3262996673584,0,9.125511169433594,218.9980010986328,0,-20.958200454711914,103.39199829101562,0,20.958200454711914,218.9980010986328,0,20.958200454711914,100.07599639892578,-275.1369934082031,-102.35800170898438,208.79299926757812,-240.48300170898438,-102.35800170898438,208.79299926757812,-275.1369934082031,-102.35800170898438,100.07599639892578,-275.1369934082031,102.35800170898438,208.79299926757812,-240.48300170898438,102.35800170898438,100.07599639892578,-240.48300170898438,102.35800170898438,100.07599639892578,-381.0870056152344,-102.35800170898438,208.79299926757812,-346.4339904785156,-102.35800170898438,208.79299926757812,-381.0870056152344,-102.35800170898438,100.07599639892578,-381.0870056152344,102.35800170898438,208.79299926757812,-346.4339904785156,102.35800170898438,100.07599639892578,-346.4339904785156,102.35800170898438,100.07599639892578,-171.04100036621094,-102.35800170898438,208.79299926757812,-136.38800048828125,-102.35800170898438,208.79299926757812,-171.04100036621094,-102.35800170898438,100.07599639892578,-171.04100036621094,102.35800170898438,208.79299926757812,-136.38800048828125,102.35800170898438,100.07599639892578,-136.38800048828125,102.35800170898438,-42.24689865112305,-3.382430076599121,52.242000579833984,220.59300231933594,-105.09400177001953,52.242000579833984,220.59300231933594,-3.382430076599121,52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,220.59300231933594,-3.382430076599121,52.242000579833984,220.59300231933594,-3.382430076599121,-52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,220.59300231933594,-3.382430076599121,-52.242000579833984,220.59300231933594,-105.09400177001953,-52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,220.59300231933594,-105.09400177001953,-52.242000579833984,220.59300231933594,-105.09400177001953,52.242000579833984,-43.45479965209961,-105.09400177001953,52.242000579833984,-264.9620056152344,-58.25590133666992,-4.127120018005371,-43.45479965209961,-105.09400177001953,-52.242000579833984,63.03010177612305,-448.5899963378906,100,-48.504600524902344,-59.08219909667969,0,-48.504600524902344,-448.5899963378906,0,-43.45479965209961,-3.382430076599121,52.242000579833984,-264.9620056152344,-58.25590133666992,-4.127120018005371,-43.45479965209961,-105.09400177001953,52.242000579833984,-43.45479965209961,-3.382430076599121,-52.242000579833984,-264.9620056152344,-58.25590133666992,-4.127120018005371,-43.45479965209961,-3.382430076599121,52.242000579833984,-43.45479965209961,-105.09400177001953,-52.242000579833984,-264.9620056152344,-58.25590133666992,-4.127120018005371,-43.45479965209961,-3.382430076599121,-52.242000579833984,63.03010177612305,-59.08219909667969,100,65.05799865722656,-448.5899963378906,100,65.05799865722656,-59.08219909667969,100,-45.041099548339844,-59.08219909667969,0,63.03010177612305,-59.08219909667969,-100,-48.504600524902344,-59.08219909667969,0,63.03010177612305,-448.5899963378906,-100,65.05799865722656,-59.08219909667969,-100,65.05799865722656,-448.5899963378906,-100,-45.041099548339844,-448.5899963378906,0,63.03010177612305,-448.5899963378906,-100,65.05799865722656,-448.5899963378906,-100,63.03010177612305,-59.08219909667969,-100,-48.504600524902344,-448.5899963378906,0,-48.504600524902344,-59.08219909667969,0,-45.041099548339844,-59.08219909667969,0,63.03010177612305,-59.08219909667969,100,65.05799865722656,-59.08219909667969,100,-45.041099548339844,-448.5899963378906,0,63.03010177612305,-448.5899963378906,100,-48.504600524902344,-448.5899963378906,0,-43.45479965209961,-105.09400177001953,-52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,-43.45479965209961,-105.09400177001953,52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,-43.45479965209961,-3.382430076599121,52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,-42.24689865112305,-3.382430076599121,52.242000579833984,-43.45479965209961,-3.382430076599121,-52.242000579833984,-42.24689865112305,-3.382430076599121,52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,220.59300231933594,-59.08219909667969,0,65.05799865722656,-59.08219909667969,-100,-45.041099548339844,-59.08219909667969,0,65.05799865722656,-59.08219909667969,100,220.59300231933594,-59.08219909667969,0,-45.041099548339844,-59.08219909667969,0,220.59300231933594,-448.5899963378906,100,65.05799865722656,-59.08219909667969,100,65.05799865722656,-448.5899963378906,100,220.59300231933594,-448.5899963378906,0,65.05799865722656,-448.5899963378906,100,-45.041099548339844,-448.5899963378906,0,65.05799865722656,-448.5899963378906,-100,220.59300231933594,-448.5899963378906,0,-45.041099548339844,-448.5899963378906,0,220.59300231933594,-59.08219909667969,-100,65.05799865722656,-448.5899963378906,-100,65.05799865722656,-59.08219909667969,-100,25.3262996673584,0,-9.125511169433594,-25.3262996673584,0,-9.125511169433594,-25.3262996673584,0,9.125511169433594,218.9980010986328,0,-20.958200454711914,103.39199829101562,0,-20.958200454711914,103.39199829101562,0,20.958200454711914,100.07599639892578,-275.1369934082031,-102.35800170898438,100.07599639892578,-240.48300170898438,-102.35800170898438,208.79299926757812,-240.48300170898438,-102.35800170898438,100.07599639892578,-275.1369934082031,102.35800170898438,208.79299926757812,-275.1369934082031,102.35800170898438,208.79299926757812,-240.48300170898438,102.35800170898438,100.07599639892578,-381.0870056152344,-102.35800170898438,100.07599639892578,-346.4339904785156,-102.35800170898438,208.79299926757812,-346.4339904785156,-102.35800170898438,100.07599639892578,-381.0870056152344,102.35800170898438,208.79299926757812,-381.0870056152344,102.35800170898438,208.79299926757812,-346.4339904785156,102.35800170898438,100.07599639892578,-171.04100036621094,-102.35800170898438,100.07599639892578,-136.38800048828125,-102.35800170898438,208.79299926757812,-136.38800048828125,-102.35800170898438,100.07599639892578,-171.04100036621094,102.35800170898438,208.79299926757812,-171.04100036621094,102.35800170898438,208.79299926757812,-136.38800048828125,102.35800170898438,-42.24689865112305,-3.382430076599121,52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,220.59300231933594,-105.09400177001953,52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,-42.24689865112305,-3.382430076599121,52.242000579833984,220.59300231933594,-3.382430076599121,52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,220.59300231933594,-3.382430076599121,-52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,220.59300231933594,-105.09400177001953,-52.242000579833984,63.03010177612305,-448.5899963378906,100,63.03010177612305,-59.08219909667969,100,-48.504600524902344,-59.08219909667969,0,63.03010177612305,-59.08219909667969,100,63.03010177612305,-448.5899963378906,100,65.05799865722656,-448.5899963378906,100,-45.041099548339844,-59.08219909667969,0,65.05799865722656,-59.08219909667969,-100,63.03010177612305,-59.08219909667969,-100,63.03010177612305,-448.5899963378906,-100,63.03010177612305,-59.08219909667969,-100,65.05799865722656,-59.08219909667969,-100,-45.041099548339844,-448.5899963378906,0,-48.504600524902344,-448.5899963378906,0,63.03010177612305,-448.5899963378906,-100,63.03010177612305,-59.08219909667969,-100,63.03010177612305,-448.5899963378906,-100,-48.504600524902344,-448.5899963378906,0,-45.041099548339844,-59.08219909667969,0,-48.504600524902344,-59.08219909667969,0,63.03010177612305,-59.08219909667969,100,-45.041099548339844,-448.5899963378906,0,65.05799865722656,-448.5899963378906,100,63.03010177612305,-448.5899963378906,100,-43.45479965209961,-105.09400177001953,-52.242000579833984,-43.45479965209961,-3.382430076599121,-52.242000579833984,-42.24689865112305,-3.382430076599121,-52.242000579833984,-43.45479965209961,-105.09400177001953,52.242000579833984,-43.45479965209961,-105.09400177001953,-52.242000579833984,-42.24689865112305,-105.09400177001953,-52.242000579833984,-43.45479965209961,-3.382430076599121,52.242000579833984,-43.45479965209961,-105.09400177001953,52.242000579833984,-42.24689865112305,-105.09400177001953,52.242000579833984,-43.45479965209961,-3.382430076599121,-52.242000579833984,-43.45479965209961,-3.382430076599121,52.242000579833984,-42.24689865112305,-3.382430076599121,52.242000579833984,220.59300231933594,-59.08219909667969,0,220.59300231933594,-59.08219909667969,-100,65.05799865722656,-59.08219909667969,-100,65.05799865722656,-59.08219909667969,100,220.59300231933594,-59.08219909667969,100,220.59300231933594,-59.08219909667969,0,220.59300231933594,-448.5899963378906,100,220.59300231933594,-59.08219909667969,100,65.05799865722656,-59.08219909667969,100,220.59300231933594,-448.5899963378906,0,220.59300231933594,-448.5899963378906,100,65.05799865722656,-448.5899963378906,100,65.05799865722656,-448.5899963378906,-100,220.59300231933594,-448.5899963378906,-100,220.59300231933594,-448.5899963378906,0,220.59300231933594,-59.08219909667969,-100,220.59300231933594,-448.5899963378906,-100,65.05799865722656,-448.5899963378906,-100],
18 | "normalized": false
19 | },
20 | "normal": {
21 | "itemSize": 3,
22 | "type": "Float32Array",
23 | "array": [0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,-0.20687739551067352,-0.9783669114112854,0,-0.20687739551067352,-0.9783669114112854,0,-0.20687739551067352,-0.9783669114112854,0,-0.6675574779510498,0,0.7445582747459412,-0.6675574779510498,0,0.7445582747459412,-0.6675574779510498,0,0.7445582747459412,-0.2466195970773697,0,0.9691123962402344,-0.2466195970773697,0,0.9691123962402344,-0.2466195970773697,0,0.9691123962402344,-0.24045920372009277,0.9706593155860901,0,-0.24045920372009277,0.9706593155860901,0,-0.24045920372009277,0.9706593155860901,0,-0.21226589381694794,0,-0.9772120118141174,-0.21226589381694794,0,-0.9772120118141174,-0.21226589381694794,0,-0.9772120118141174,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,-0.00004875840022577904,0,-1,-0.00004875840022577904,0,-1,-0.00004875840022577904,-0.6675574779510498,0,-0.7445582151412964,-0.6675574779510498,0,-0.7445582151412964,-0.6675574779510498,0,-0.7445582151412964,0,1,-0.0000037622201034537284,0,1,-0.0000037622201034537284,0,1,-0.0000037622201034537284,0,-1,-0.00002255670005979482,0,-1,-0.00002255670005979482,0,-1,-0.00002255670005979482,-0.1378553956747055,-0.6998671293258667,-0.7008438110351562,0,0.7071068286895752,-0.7071068286895752,0,-0.7071068286895752,-0.7071068286895752,-0.14844389259815216,-0.6958308219909668,0.7026975750923157,0,-0.7071068286895752,-0.7071068286895752,0,-0.7071068286895752,0.7071068286895752,-0.15821099281311035,0.6976668238639832,0.6987348794937134,0,-0.7071068286895752,0.7071068286895752,0,0.7071068286895752,0.7071068286895752,-0.14811010658740997,0.7017300724983215,-0.6968774795532227,0,0.7071068286895752,0.7071068286895752,0,0.7071068286895752,-0.7071068286895752,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,-1,-2.941079912943678e-7,0,-1,-2.941079912943678e-7,0,-1,-2.941079912943678e-7,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,-0.6675574779510498,0,0.7445582151412964,-0.6675574779510498,0,0.7445582151412964,-0.6675574779510498,0,0.7445582151412964,0,0,1,0,0,1,0,0,1,0,1,0.0000037622201034537284,0,1,0.0000037622201034537284,0,1,0.0000037622201034537284,0,0,-1,0,0,-1,0,0,-1,0,-1,0.00002255670005979482,0,-1,0.00002255670005979482,0,-1,0.00002255670005979482,-0.6675574779510498,0,-0.7445582747459412,-0.6675574779510498,0,-0.7445582747459412,-0.6675574779510498,0,-0.7445582747459412,0,1,0,0,1,0,0,1,0,0,-1,0.00004875840022577904,0,-1,0.00004875840022577904,0,-1,0.00004875840022577904,-0.1378553956747055,-0.6998671293258667,-0.7008438110351562,-0.14811010658740997,0.7017300724983215,-0.6968774795532227,0,0.7071068286895752,-0.7071068286895752,-0.14844389259815216,-0.6958308219909668,0.7026975750923157,-0.1378553956747055,-0.6998671293258667,-0.7008438110351562,0,-0.7071068286895752,-0.7071068286895752,-0.15821099281311035,0.6976668238639832,0.6987348794937134,-0.14844389259815216,-0.6958308219909668,0.7026975750923157,0,-0.7071068286895752,0.7071068286895752,-0.14811010658740997,0.7017300724983215,-0.6968774795532227,-0.15821099281311035,0.6976668238639832,0.6987348794937134,0,0.7071068286895752,0.7071068286895752,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1],
24 | "normalized": false
25 | },
26 | "uv": {
27 | "itemSize": 2,
28 | "type": "Float32Array",
29 | "array": [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1],
30 | "normalized": false
31 | },
32 | "color": {
33 | "itemSize": 3,
34 | "type": "Float32Array",
35 | "array": [0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,0.6745098233222961,0.686274528503418,0.7647058963775635,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.5176470875740051,0.3960784077644348,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1,1,0.996078372001648,1],
36 | "normalized": false
37 | }
38 | },
39 | "boundingSphere": {
40 | "center": [-22.18450164794922,-224.2949981689453,0],
41 | "radius": 345.3247205691946
42 | }
43 | }
44 | }],
45 | "materials": [
46 | {
47 | "uuid": "6C6D57ED-C061-47A5-B273-58DEF6CAB5F0",
48 | "type": "MeshBasicMaterial",
49 | "color": 16777215,
50 | "vertexColors": 2,
51 | "depthFunc": 3,
52 | "depthTest": true,
53 | "depthWrite": true,
54 | "skinning": false,
55 | "morphTargets": false
56 | }],
57 | "object": {
58 | "uuid": "D2B6E3A9-0F63-434C-9B70-E144E71B197F",
59 | "type": "Group",
60 | "name": "church",
61 | "matrix": [1,0,0,0,0,2.220446049250313e-16,-1,0,0,1,2.220446049250313e-16,0,0,0,0,1],
62 | "children": [
63 | {
64 | "uuid": "1AD267C0-5A30-4CB0-A601-1F47F83E25D2",
65 | "type": "Mesh",
66 | "name": "church",
67 | "matrix": [1.947069838692528e-9,-6.05071566949556e-17,-0.009999999776482582,0,0.009999999776482582,-4.371141226755526e-10,1.947069838692528e-9,0,-4.3711398389767453e-10,-0.009999998845160007,-1.6431298329232593e-16,0,2.538360118865967,-9.616069718276776e-8,2.199899911880493,1],
68 | "geometry": "1241138A-3037-4803-BE0C-B8A22772A673",
69 | "material": "6C6D57ED-C061-47A5-B273-58DEF6CAB5F0"
70 | }]
71 | }
72 | }
--------------------------------------------------------------------------------
/resources/blimp.lxo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexanderperrin/threejs-ballooning/f1ee634626bd679980de68685bf8d1a3ca263b69/resources/blimp.lxo
--------------------------------------------------------------------------------
/resources/church.c4d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexanderperrin/threejs-ballooning/f1ee634626bd679980de68685bf8d1a3ca263b69/resources/church.c4d
--------------------------------------------------------------------------------
/resources/dae/boat01.dae:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Blender User
6 | Blender 2.77.0 commit date:2016-04-05, commit time:18:12, hash:abf6f08
7 |
8 | 2016-11-12T16:23:20
9 | 2016-11-12T16:23:20
10 |
11 | Z_UP
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | 0 0 0 1
21 |
22 |
23 | 0 0 0 1
24 |
25 |
26 | 0.8 0.8 0.8 1
27 |
28 |
29 | 0.02 0.02 0.02 1
30 |
31 |
32 | 256
33 |
34 |
35 | 1
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | -0.507119 -0.294181 1.34373 -0.314468 0.2524441 1.10834 0.507119 -0.294181 1.34373 0.314468 0.2524441 1.10834 0.507119 -0.294181 -1.34373 0.4366275 0.2524369 -1.25542 -0.507119 -0.294181 -1.34373 -0.3361271 0.2524369 -1.25542 0 5.63914 -0.557931 0 0.82333 -0.528437 0 0.140548 -4.03921 0.542676 2.51335 -2.32923 0.387764 2.43545 -0.523053 0.531553 3.47182 -1.72666 0.413393 3.42404 -0.5281 0 3.19296 1.25992 0 1.17768 3.1711 0 5.6329 -0.509839 0 0.870476 -0.448643 0 2.83871 -0.473935 0 0.879554 -0.513271 -0.03448098 0.820049 -0.508172 0.06896197 0.879554 -0.513271 0.06896197 0.879554 -0.513271 0.05287659 1.19763 3.19889 -0.03448098 0.820049 -0.508172 -0.03448098 0.939059 -0.51837 -0.03448098 0.939059 -0.51837 -0.0183956 1.23863 3.19538 -0.0183956 1.15663 3.20241 0 -0.762282 -0.519348 -0.04999995 -0.762282 -0.432746 0.1 -0.762282 -0.519348 0.1 -0.762282 -0.519348 0.06865 5.64355 -0.519348 -0.04999995 -0.762282 -0.432746 -0.04999995 -0.762282 -0.605951 -0.04999995 -0.762282 -0.605951 -0.01864999 5.64355 -0.569751 -0.01864999 5.64355 -0.468946 -0.106927 -0.115336 3.04463 -0.106927 0.198201 3.04463 0.106927 -0.115336 3.04463 0.106927 0.198201 3.04463 0.106927 -0.115336 -4.08332 0.106927 0.198201 -4.08332 -0.106927 -0.115336 -4.08332 -0.106927 0.198201 -4.08332 1.00627 0.198201 -2.01948 0.658882 -0.567525 -2.01948 -0.658882 -0.567525 -2.01948 -1.00627 0.198201 -2.01948 1.00627 0.198201 1.22898 0.658882 -0.567525 1.22898 -0.658882 -0.567525 1.22898 -1.00627 0.198201 1.22898 1.1645 0.198201 -0.393734 0.762488 -0.660387 -0.393734 -0.762488 -0.660387 -0.393734 -1.1645 0.198201 -0.393734 0 -0.115336 3.04463 0 -0.781668 1.22898 0 -0.874531 -0.393734 0 -0.781668 -2.01948 0 -0.115336 -4.08332 0 0.198201 -4.08332 0 -0.1902199 -1.86347 0 -0.1902199 -0.406798 0 -0.1902199 1.04715 0 0.198201 3.04463 -0.06968998 0.186043 2.98463 0 0.186043 2.98463 0.947622 0.186043 1.2122 0.06968998 0.186043 2.98463 0 0.186043 -4.02332 0.06762397 0.186043 -4.02332 -0.947473 0.186043 -2.00422 -0.06762397 0.186043 -4.02332 0.947473 0.186043 -2.00422 -1.10422 0.186043 -0.393734 1.10422 0.186043 -0.393734 -0.947622 0.186043 1.2122 -0.06244218 -0.1902199 2.62021 0 -0.1902199 2.62021 0.7871567 -0.1902199 1.03212 0.06244218 -0.1902199 2.62021 0 -0.1902199 -3.65891 0.0605911 -0.1902199 -3.65891 -0.8150833 -0.1902199 -1.84979 -0.0605911 -0.1902199 -3.65891 0.7870237 -0.1902199 -1.84979 -0.9555253 -0.1902199 -0.406798 0.9274657 -0.1902199 -0.406798 -0.8215168 -0.1902199 1.03212 0.02189028 5.638108 -0.5568025 0.5534433 3.470788 -1.725531 0.02189028 0.8222976 -0.5273085 0.5645663 2.512318 -2.328102 0.4096543 2.434418 -0.5219245 0.02189028 1.176648 3.172228 0.02189028 0.8694437 -0.4475145 0.4352833 3.423008 -0.5269715 0.02189028 3.191928 1.261049 0.02189028 5.631868 -0.5087105 0.02189028 2.837678 -0.4728065 0.02189028 0.1395156 -4.038081
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | 0 0.3955115 0.9184612 0.9353296 0.3504599 0.04833686 0 0.1594891 -0.9871998 -0.9547589 0.2972525 0.008747518 0 1 -3.03217e-6 0.6282994 -0.3925077 0.6716977 -0.6404429 -0.3893625 0.6619894 -0.6550026 -0.4548884 -0.6033642 -0.7338674 -0.05017369 0.6774372 -0.6268568 0.7631233 0.1571415 -0.638042 0.3414834 -0.6901388 -0.6918119 -0.4209224 0.5867033 -0.5987512 0.5045086 -0.6220676 -0.5846826 -0.3989441 -0.7063923 -0.722605 0.1007747 0.683876 -0.6888873 -0.009308457 -0.7248088 -0.7255392 0.438229 0.5306114 -0.520924 0.8048092 -0.284465 -0.5733067 -0.2794355 0.7702177 -0.5728141 -0.5889588 -0.5700979 0 -0.0853613 -0.9963501 -0.499418 0.863727 -0.06750869 0.9999908 3.35711e-4 0.004272639 0.9999908 3.6623e-4 0.004272639 -0.4993931 -0.862638 0.08038872 -0.5005797 0.863059 -0.0674479 -0.5005764 -0.8619547 0.08035713 0 -1 0 -0.4992907 0.007324516 -0.8664036 0.9999881 0.00488305 0 -0.4992907 0.007324516 0.8664036 -0.5006643 0.007324516 -0.8656106 -0.5006643 0.007324516 0.8656106 0 0.7741517 0.6330001 -0.3989859 0.6538267 0.6429005 -0.4298975 -0.5188924 0.7388768 0.7898316 0.5852934 0.183297 0.3989859 0.6538267 0.6429005 0.4298975 -0.5188924 0.7388768 -0.4962102 -0.5149794 -0.6989791 -0.4637626 0.6384518 -0.6142504 0 0.7741517 -0.6330001 -0.7886508 0.5861243 0.1857103 0 1 0 0 -0.6063972 0.795162 -0.6487785 -0.7287085 0.2192503 0.4550701 -0.4953858 -0.7399353 0.4167117 0.649361 -0.6361461 0.7886521 0.591039 -0.1694132 -0.6575973 -0.7217182 -0.2160759 -0.01870834 -0.6037943 -0.7969206 0 1 0 0.6516115 -0.75855 -0.002105772 0.8052116 0.592983 0.00238043 -0.6516112 -0.7585498 0.00225836 0 -1 3.05194e-5 -0.8052118 0.5929831 -0.00225836 0 1 0 0.6532105 -0.731066 -0.1971259 0.00100708 -0.9837667 -0.1794493 -0.7876981 0.5855396 -0.1915073 0 1 0 0.6515899 -0.7254163 0.2218152 -0.003112912 -0.979568 0.2010896 0 1 -1.52931e-7 0.1836622 0.9208749 -0.3438861 0.5594786 0.8104688 -0.1735628 0 0.8772674 -0.4800022 0.5708644 0.8051308 0.1608675 0.1883965 0.9235185 0.3340964 0 0.8772674 0.4800022 0.6242074 0.7812587 -1.22076e-4 -0.1879687 0.9229971 0.335774 -0.5561596 0.8176214 0.1489359 -0.5995163 0.8003622 -9.46091e-4 -0.531554 0.8305512 -0.1662384 -0.1846098 0.9219201 -0.3405623 0 0.9207992 -0.3900372 0.3745639 0.8277761 -0.4177182 0.5716854 0.8092162 -0.1354441 0.4080091 0.8162624 0.4089552 0 0.9207882 0.3900631 0.5699474 0.8113548 0.1298595 0.5847733 0.8111932 0.002410948 -0.4003183 0.8193141 0.4104506 -0.5444023 0.830398 0.1185978 -0.5589184 0.829222 0.001068115 -0.5412639 0.830345 -0.1325158 -0.3905563 0.8222832 -0.4139036 0 0.3955115 0.918461 0.9917871 0.1279003 0 0 0.1594891 -0.9871998 -0.9431394 0.3323974 0 0 1 -3.06713e-6 0.606057 -0.5019854 -0.6170135 0.6731598 0.05838298 0.7371888 0.7742664 0.374712 -0.5100026 0.4539702 0.8553562 0.2495539 0.4680792 -0.5872277 0.6603527 0.5032888 -0.505242 -0.7010214 0.8005555 0.2549289 -0.5423305 0.6757258 -0.09341925 0.7312097 0.7248712 -0.008850634 -0.6888276 0.564696 0.7888287 -0.2426273 0.7189681 0.4456698 0.5333511 0.5263079 -0.3134958 0.7903927 0.5726078 -0.6248267 -0.5307655
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0.474324 0 0 0 0 0.816845 1 0 0.166063 1 1 1 0.678714 0 0 0.816845 0.166063 1 0.586715 1 0 0 0 1 1 0 0.586715 1 1 1 0.75 0.933013 0 0.5 0.5 0.5 0.333333 1 0 1 0 0 0 0.5 0.75 0.06698727 0.5 0.5 0.75 0.06698727 0.75 0.933013 0.5 0.5 0.666667 1 0.333333 1 0.333333 0 1 1 0.666667 1 0.666667 0 0.75 0.933013 0 0.5 0.5 0.5 0.333333 1 0 1 0 0 0 0.5 0.75 0.06698727 0.5 0.5 0.75 0.06698727 0.75 0.933013 0.5 0.5 0.666667 1 0.333333 1 0.333333 0 1 1 0.666667 1 0.666667 0 0.5 1 0 1 0 0 0.254723 1 0 1 0 0 1 0 1 1 0.5 1 1 0 1 1 0.745277 1 0.5 0.254723 0 0.254723 0.01408529 0.007175624 0.5 1 0 1 0 0.745277 1 0 1 1 0.710458 1 0 0.289542 0 0 0.5 0 0 1 0 0 0.289542 0 0.5 0.991582 0.01260697 0.9927 0 0.710458 0.482377 0 0.482377 1 0.254723 1 0 0.745277 0 0.517623 0.5 0.517623 0.517623 1 0.517623 0 0.745277 0 0.5 0.482377 0.02588409 0.482377 0 0.254723 0.710458 0 0.710458 1 0.482377 1 0 0.517623 0 0.289542 0.5 0.289542 0.289542 1 0.289542 0 0.517623 0 0.5 0.710458 0 0.710458 0.02588409 0.482377 1 0.745277 1 1 0.5 1 1 0.517623 1 0.745277 0.5 0.745277 1 0.289542 1 0.517623 0.5 0.517623 1 0 1 0.289542 0.5 0.289542 0 1 0 0 0.5 0 1 0.710458 0.987393 0.9927 0.5 0.991582 0.974116 0.482377 1 0.710458 0.5 0.710458 1 0.254723 0.974116 0.482377 0.5 0.482377 0.985915 0.007175624 1 0.254723 0.5 0.254723 1 0 1 1 0.5 1 0.01408529 0.007175624 0 0.254723 0 0.254723 0.5 0.008417606 0.01408529 0.007175624 0 0 0 0.710458 0.01260697 0.9927 0 1 0.01260697 0.9927 0.5 0.991582 0.5 1 0 0.254723 0.02588409 0.482377 0 0.482377 0.02588409 0.482377 0 0.710458 0 0.710458 0.5 0.991582 0.987393 0.9927 1 1 0.987393 0.9927 1 0.710458 1 0.710458 1 0.710458 0.974116 0.482377 1 0.482377 0.974116 0.482377 1 0.254723 1 0.254723 1 0.254723 0.985915 0.007175624 1 0 0.985915 0.007175624 0.5 0.008417606 0.5 0 0.5 0.008417606 0.01408529 0.007175624 0.01408529 0.007175624 0.01408529 0.007175624 0 0.254723 0 0.254723 0.01260697 0.9927 0.5 0.991582 0.5 0.991582 0 0.710458 0.01260697 0.9927 0.01260697 0.9927 0 0.254723 0.02588409 0.482377 0.02588409 0.482377 0.02588409 0.482377 0 0.710458 0 0.710458 0.987393 0.9927 1 0.710458 1 0.710458 0.5 0.991582 0.987393 0.9927 0.987393 0.9927 1 0.710458 0.974116 0.482377 0.974116 0.482377 0.974116 0.482377 1 0.254723 1 0.254723 0.985915 0.007175624 0.5 0.008417606 0.5 0.008417606 1 0.254723 0.985915 0.007175624 0.985915 0.007175624 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0.678714 0 0.166063 1 1 0 0.474324 0 0 0.816845 0.678714 0 0 0 0.586715 1 1 0 0.333333 0 0.333333 1 0 0 0.666667 0 0.666667 1 0.333333 0 1 0 1 1 0.666667 0 0.333333 0 0.333333 1 0 0 0.666667 0 0.666667 1 0.333333 0 1 0 1 1 0.666667 0 0.5 0 0.5 1 0 0 0.254723 0 0.254723 1 0 0 0.5 0 1 0 0.5 1 0.745277 0 1 0 0.745277 1 0.5 0.008417606 0.5 0.254723 0.01408529 0.007175624 0.5 0.745277 0.5 1 0 0.745277 0.710458 0 1 0 0.710458 1 0.5 0.289542 0 0.289542 0.5 0 0.289542 1 0 1 0.289542 0 0.5 0.710458 0.5 0.991582 0 0.710458 0.254723 0 0.482377 0 0.254723 1 0.5 0.745277 0 0.745277 0.5 0.517623 0.745277 1 0.517623 1 0.745277 0 0.5 0.254723 0.5 0.482377 0 0.254723 0.482377 0 0.710458 0 0.482377 1 0.5 0.517623 0 0.517623 0.5 0.289542 0.517623 1 0.289542 1 0.517623 0 0.5 0.482377 0.5 0.710458 0.02588409 0.482377 0.5 0.745277 1 0.745277 0.5 1 0.5 0.517623 1 0.517623 0.5 0.745277 0.5 0.289542 1 0.289542 0.5 0.517623 0.5 0 1 0 0.5 0.289542 0.5 1 0 1 0.5 0 0.5 0.710458 1 0.710458 0.5 0.991582 0.5 0.482377 0.974116 0.482377 0.5 0.710458 0.5 0.254723 1 0.254723 0.5 0.482377 0.5 0.008417606 0.985915 0.007175624 0.5 0.254723 0.5 0 1 0 0.5 1 0 0 0.01408529 0.007175624 0 0.254723 0.5 0 0.5 0.008417606 0 0 0 0.710458 0 0.710458 0 1 0 1 0.01260697 0.9927 0.5 1 0 0.254723 0 0.254723 0 0.482377 0 0.482377 0.02588409 0.482377 0 0.710458 0.5 1 0.5 0.991582 1 1 1 1 0.987393 0.9927 1 0.710458 1 0.710458 1 0.710458 1 0.482377 1 0.482377 0.974116 0.482377 1 0.254723 1 0.254723 1 0.254723 1 0 1 0 0.985915 0.007175624 0.5 0 0.5 0.008417606 0.5 0.008417606 0.01408529 0.007175624 0.01408529 0.007175624 0.01408529 0.007175624 0 0.254723 0.01260697 0.9927 0.01260697 0.9927 0.5 0.991582 0 0.710458 0 0.710458 0.01260697 0.9927 0 0.254723 0 0.254723 0.02588409 0.482377 0.02588409 0.482377 0.02588409 0.482377 0 0.710458 0.987393 0.9927 0.987393 0.9927 1 0.710458 0.5 0.991582 0.5 0.991582 0.987393 0.9927 1 0.710458 1 0.710458 0.974116 0.482377 0.974116 0.482377 0.974116 0.482377 1 0.254723 0.985915 0.007175624 0.985915 0.007175624 0.5 0.008417606 1 0.254723 1 0.254723 0.985915 0.007175624 0.474324 0 0 0.816845 0 0 1 0 1 1 0.166063 1 0.678714 0 0.166063 1 0 0.816845 0.586715 1 0 1 0 0 1 0 1 1 0.586715 1 0.678714 0 1 0 0.166063 1 0.474324 0 0.678714 0 0 0.816845 0 0 1 0 0.586715 1 0.586715 1 0 1 0.586715 1 0 0 0 1 0 1 0.678714 0 0.474324 0 0.474324 0 1 0 0 0 0 0 0.166063 1 1 1 1 1 0.166063 1 0 0.816845 0.166063 1 0.678714 0 1 0 0.678714 0 1 0 1 1 1 0 0 0.816845 0 0 0 0.816845 1 0 1 1 1 0 0.474324 0 0 0 0 0 1 1 0.586715 1 1 1 0.586715 1 0 1 0 1 0 0 0 0 0 1 0.678714 0 0.678714 0 0.474324 0 1 0 1 0 0 0 0.166063 1 0.166063 1 1 1 0.166063 1 0 0.816845 0 0.816845 0.678714 0 1 0 1 0 1 0 1 1 1 1 0 0.816845 0 0 0 0 1 0 1 1 1 1 0.474324 0 0.474324 0 0 0 1 1 0.586715 1 0.586715 1
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.6588236 0.6352941 0.6 0.6588236 0.6352941 0.6 0.6588236 0.6352941 0.6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 1 1 1 1 1 1 1 1 1 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.6588236 0.6352941 0.6 0.6588236 0.6352941 0.6 0.6588236 0.6352941 0.6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.5647059 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 0.8117647 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
98 | 3 0 0 0 1 0 1 1 0 0 2 2 5 1 3 3 3 1 4 4 2 1 5 5 7 2 6 6 5 2 7 7 4 2 8 8 1 3 9 9 7 3 10 10 6 3 11 11 5 4 12 12 7 4 13 13 1 4 14 14 2 5 15 15 0 6 16 16 6 7 17 17 14 8 18 18 8 9 19 19 13 10 20 20 9 11 21 21 11 12 22 22 10 13 23 23 12 14 24 24 13 10 25 25 11 12 26 26 19 15 27 27 15 16 28 28 17 17 29 29 16 18 30 30 19 15 31 31 18 19 32 32 26 20 33 33 22 20 34 34 20 20 35 35 28 21 36 36 24 22 37 37 23 23 38 38 22 20 39 39 21 20 40 40 20 20 41 41 21 20 42 42 26 20 43 43 20 20 44 44 29 24 45 45 28 21 46 46 27 25 47 47 24 22 48 48 29 24 49 49 25 26 50 50 36 27 51 51 32 27 52 52 30 27 53 53 38 28 54 54 34 29 55 55 33 29 56 56 32 27 57 57 31 27 58 58 30 27 59 59 31 27 60 60 36 27 61 61 30 27 62 62 39 30 63 63 38 28 64 64 37 31 65 65 34 29 66 66 39 30 67 67 35 32 68 68 69 33 69 69 41 34 70 70 40 35 71 71 52 36 72 72 43 37 73 73 42 38 74 74 46 39 75 75 47 40 76 76 65 41 77 77 40 35 78 78 41 34 79 79 55 42 80 80 68 43 81 81 93 43 82 82 82 43 83 83 60 44 84 84 40 35 85 85 54 45 86 86 44 46 87 87 45 47 88 88 48 48 89 89 50 49 90 90 46 39 91 91 64 50 92 92 47 40 93 93 46 39 94 94 50 49 95 95 86 51 96 96 89 51 97 97 88 51 98 98 57 52 99 99 56 53 100 100 52 36 101 101 54 45 102 102 58 54 103 103 62 55 104 104 59 56 105 105 58 54 106 106 54 45 107 107 67 57 108 108 91 57 109 109 93 57 110 110 49 58 111 111 48 48 112 112 56 53 113 113 58 54 114 114 50 49 115 115 63 59 116 116 51 60 117 117 50 49 118 118 58 54 119 119 66 61 120 120 88 61 121 121 91 61 122 122 53 62 123 123 42 38 124 124 60 44 125 125 57 52 126 126 53 62 127 127 61 63 128 128 49 58 129 129 57 52 130 130 62 55 131 131 44 46 132 132 49 58 133 133 63 59 134 134 45 47 135 135 44 46 136 136 64 50 137 137 90 64 138 138 87 64 139 139 86 64 140 140 92 51 141 141 90 51 142 142 66 51 143 143 84 51 144 144 92 51 145 145 67 51 146 146 85 51 147 147 84 51 148 148 68 51 149 149 42 38 150 150 43 37 151 151 69 33 152 152 70 65 153 153 81 66 154 154 55 42 155 155 71 67 156 156 70 65 157 157 41 34 158 158 76 68 159 159 77 69 160 160 47 40 161 161 77 69 162 162 74 70 163 163 65 41 164 164 81 66 165 165 79 71 166 166 59 56 167 167 79 71 168 168 76 68 169 169 51 60 170 170 74 70 171 171 75 72 172 172 45 47 173 173 75 72 174 174 78 73 175 175 48 48 176 176 78 73 177 177 80 74 178 178 56 53 179 179 80 74 180 180 72 75 181 181 52 36 182 182 72 75 183 183 73 76 184 184 43 37 185 185 73 76 186 186 71 67 187 187 69 33 188 188 83 77 189 189 82 78 190 190 70 65 191 191 82 78 192 192 93 79 193 193 81 66 194 194 89 80 195 195 86 81 196 196 74 70 197 197 88 82 198 198 89 80 199 199 77 69 200 200 93 79 201 201 91 83 202 202 79 71 203 203 91 83 204 204 88 82 205 205 76 68 206 206 87 84 207 207 90 85 208 208 78 73 209 209 86 81 210 210 87 84 211 211 75 72 212 212 90 85 213 213 92 86 214 214 80 74 215 215 92 86 216 216 84 87 217 217 72 75 218 218 85 88 219 219 83 77 220 220 71 67 221 221 84 87 222 222 85 88 223 223 73 76 224 224 2 89 225 225 3 89 226 226 0 89 227 227 4 90 228 228 5 90 229 229 2 90 230 230 6 91 231 231 7 91 232 232 4 91 233 233 0 92 234 234 1 92 235 235 6 92 236 236 3 93 237 237 5 93 238 238 1 93 239 239 4 94 240 240 2 5 241 241 6 7 242 242 12 14 243 243 11 12 244 244 9 11 245 245 14 8 246 246 13 10 247 247 12 14 248 248 15 16 249 249 19 15 250 250 16 18 251 251 27 25 252 252 28 21 253 253 23 23 254 254 25 26 255 255 29 24 256 256 27 25 257 257 23 23 258 258 24 22 259 259 25 26 260 260 37 31 261 261 38 28 262 262 33 29 263 263 35 32 264 264 39 30 265 265 37 31 266 266 33 29 267 267 34 29 268 268 35 32 269 269 60 44 270 270 69 33 271 271 40 35 272 272 53 62 273 273 52 36 274 274 42 38 275 275 64 50 276 276 46 39 277 277 65 41 278 278 54 45 279 279 40 35 280 280 55 42 281 281 83 51 282 282 68 51 283 283 82 51 284 284 61 63 285 285 60 44 286 286 54 45 287 287 49 58 288 288 44 46 289 289 48 48 290 290 63 59 291 291 50 49 292 292 64 50 293 293 51 60 294 294 47 40 295 295 50 49 296 296 66 51 297 297 86 51 298 298 88 51 299 299 53 62 300 300 57 52 301 301 52 36 302 302 61 63 303 303 54 45 304 304 62 55 305 305 55 42 306 306 59 56 307 307 54 45 308 308 68 51 309 309 67 51 310 310 93 79 311 311 57 52 312 312 49 58 313 313 56 53 314 314 62 55 315 315 58 54 316 316 63 59 317 317 59 56 318 318 51 60 319 319 58 54 320 320 67 51 321 321 66 51 322 322 91 51 323 323 61 63 324 324 53 62 325 325 60 44 326 326 62 55 327 327 57 52 328 328 61 63 329 329 63 59 330 330 49 58 331 331 62 55 332 332 64 50 333 333 44 46 334 334 63 59 335 335 65 41 336 336 45 47 337 337 64 50 338 338 66 51 339 339 90 51 340 340 86 51 341 341 67 51 342 342 92 51 343 343 66 51 344 344 68 51 345 345 84 51 346 346 67 51 347 347 83 51 348 348 85 51 349 349 68 51 350 350 60 44 351 351 42 38 352 352 69 33 353 353 41 34 354 354 70 65 355 355 55 42 356 356 69 33 357 357 71 67 358 358 41 34 359 359 51 60 360 360 76 68 361 361 47 40 362 362 47 40 363 363 77 69 364 364 65 41 365 365 55 42 366 366 81 66 367 367 59 56 368 368 59 56 369 369 79 71 370 370 51 60 371 371 65 41 372 372 74 70 373 373 45 47 374 374 45 47 375 375 75 72 376 376 48 48 377 377 48 48 378 378 78 73 379 379 56 53 380 380 56 53 381 381 80 74 382 382 52 36 383 383 52 36 384 384 72 75 385 385 43 37 386 386 43 37 387 387 73 76 388 388 69 33 389 389 71 67 390 390 83 77 391 391 70 65 392 392 70 65 393 393 82 78 394 394 81 66 395 395 77 69 396 396 89 80 397 397 74 70 398 398 76 68 399 399 88 82 400 400 77 69 401 401 81 66 402 402 93 79 403 403 79 71 404 404 79 71 405 405 91 83 406 406 76 68 407 407 75 72 408 408 87 84 409 409 78 73 410 410 74 70 411 411 86 81 412 412 75 72 413 413 78 73 414 414 90 85 415 415 80 74 416 416 80 74 417 417 92 86 418 418 72 75 419 419 73 76 420 420 85 88 421 421 71 67 422 422 72 75 423 423 84 87 424 424 73 76 425 425 101 95 426 426 95 96 427 427 94 97 428 428 96 98 429 429 105 99 430 430 97 100 431 431 98 101 432 432 97 100 433 433 95 96 434 434 104 102 435 435 103 103 436 436 102 104 437 437 99 105 438 438 100 106 439 439 104 102 440 440 98 101 441 441 96 98 442 442 97 100 443 443 101 95 444 444 98 101 445 445 95 96 446 446 102 104 447 447 99 105 448 448 104 102 449 449 19 15 450 450 103 103 451 451 104 102 452 452 15 16 453 453 103 103 454 454 17 17 455 455 12 14 456 456 101 95 457 457 14 8 458 458 16 18 459 459 102 104 460 460 15 16 461 461 11 12 462 462 105 99 463 463 10 13 464 464 11 12 465 465 95 96 466 466 97 100 467 467 12 14 468 468 96 98 469 469 98 101 470 470 9 11 471 471 105 99 472 472 96 98 473 473 13 10 474 474 94 97 475 475 95 96 476 476 16 18 477 477 100 106 478 478 99 105 479 479 14 8 480 480 94 97 481 481 8 9 482 482 18 19 483 483 104 102 484 484 100 106 485 485 19 15 486 486 17 17 487 487 103 103 488 488 15 16 489 489 102 104 490 490 103 103 491 491 12 14 492 492 98 101 493 493 101 95 494 494 16 18 495 495 99 105 496 496 102 104 497 497 11 12 498 498 97 100 499 499 105 99 500 500 11 12 501 501 13 10 502 502 95 96 503 503 12 14 504 504 9 11 505 505 96 98 506 506 9 11 507 507 10 13 508 508 105 99 509 509 13 10 510 510 8 9 511 511 94 97 512 512 16 18 513 513 18 19 514 514 100 106 515 515 14 8 516 516 101 95 517 517 94 97 518 518 18 19 519 519 19 15 520 520 104 102 521 521
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 | 1 0 0 0 0 -1.62921e-7 -1 0 0 1 -1.62921e-7 0 0 0 0 1
108 |
109 | 1 0 0 0 0 1 0 0.6603963 0 0 1 0.5193479 0 0 0 1
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------
/resources/dae/church01.dae:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Blender User
6 | Blender 2.77.0 commit date:2016-04-05, commit time:18:12, hash:abf6f08
7 |
8 | 2016-11-13T21:15:54
9 | 2016-11-13T21:15:54
10 |
11 | Z_UP
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | 0 0 0 1
21 |
22 |
23 | 0 0 0 1
24 |
25 |
26 | 0.64 0.64 0.64 1
27 |
28 |
29 | 0.5 0.5 0.5 1
30 |
31 |
32 | 50
33 |
34 |
35 | 1
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | -25.3263 0 9.125511 25.3263 0 9.125511 -25.3263 0 -9.125511 25.3263 0 -9.125511 103.392 0 20.9582 218.998 0 20.9582 103.392 0 -20.9582 218.998 0 -20.9582 208.793 -240.483 -102.358 100.076 -240.483 -102.358 208.793 -275.137 -102.358 100.076 -275.137 -102.358 208.793 -240.483 102.358 100.076 -240.483 102.358 208.793 -275.137 102.358 100.076 -275.137 102.358 208.793 -346.434 -102.358 100.076 -346.434 -102.358 208.793 -381.087 -102.358 100.076 -381.087 -102.358 208.793 -346.434 102.358 100.076 -346.434 102.358 208.793 -381.087 102.358 100.076 -381.087 102.358 208.793 -136.388 -102.358 100.076 -136.388 -102.358 208.793 -171.041 -102.358 100.076 -171.041 -102.358 208.793 -136.388 102.358 100.076 -136.388 102.358 208.793 -171.041 102.358 100.076 -171.041 102.358 220.593 -105.094 52.242 -43.4548 -105.094 52.242 220.593 -3.38243 52.242 -43.4548 -3.38243 52.242 220.593 -3.38243 -52.242 -43.4548 -3.38243 -52.242 220.593 -105.094 -52.242 -43.4548 -105.094 -52.242 -264.962 -58.2559 -4.12712 220.593 -448.59 100 63.0301 -448.59 100 220.593 -59.0822 100 63.0301 -59.0822 100 220.593 -59.0822 -100 63.0301 -59.0822 -100 220.593 -448.59 -100 63.0301 -448.59 -100 -48.5046 -448.59 0 220.593 -448.59 0 220.593 -59.0822 0 -48.5046 -59.0822 0 -42.2469 -3.38243 -52.242 -42.2469 -105.094 -52.242 -42.2469 -105.094 52.242 -42.2469 -3.38243 52.242 65.058 -59.0822 -100 -45.0411 -59.0822 0 65.058 -59.0822 100 65.058 -448.59 100 -45.0411 -448.59 0 65.058 -448.59 -100
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | 0 1 0 0 1 0 0 0 -1 0 0 1 0 1 0 0 -1 0 -0.2068774 -0.9783669 0 -0.6675575 0 0.7445583 -0.2466196 0 0.9691124 -0.2404592 0.9706593 0 -0.2122659 0 -0.977212 0 -1 -4.87584e-5 -0.6675575 0 -0.7445582 0 1 -3.76222e-6 0 -1 -2.25567e-5 -0.1378554 -0.6998671 -0.7008438 0 0.7071068 -0.7071068 0 -0.7071068 -0.7071068 -0.1484439 -0.6958308 0.7026976 0 -0.7071068 0.7071068 -0.158211 0.6976668 0.6987349 0 0.7071068 0.7071068 -0.1481101 0.7017301 -0.6968775 0 1 0 0 -1 -2.94108e-7 -0.6675575 0 0.7445582 0 1 3.76222e-6 0 -1 2.25567e-5 -0.6675575 0 -0.7445583 0 -1 4.87584e-5
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 0.6745098 0.6862745 0.7647059 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.5176471 0.3960784 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1 1 0.9960784 1
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
98 | 3 0 0 0 0 0 1 1 1 0 2 2 7 1 3 3 4 1 4 4 5 1 5 5 11 2 6 6 8 2 7 7 10 2 8 8 15 3 9 9 12 3 10 10 13 3 11 11 19 2 12 12 16 2 13 13 18 2 14 14 23 3 15 15 20 3 16 16 21 3 17 17 27 2 18 18 24 2 19 19 26 2 20 20 31 3 21 21 28 3 22 22 29 3 23 23 56 3 24 24 32 3 25 25 34 3 26 26 53 4 27 27 34 4 28 28 36 4 29 29 54 2 30 30 36 2 31 31 38 2 32 32 55 5 33 33 38 5 34 34 32 5 35 35 33 6 36 36 40 6 37 37 39 6 38 38 42 7 39 39 52 7 40 40 49 7 41 41 35 8 42 42 40 8 43 43 33 8 44 44 37 9 45 45 40 9 46 46 35 9 47 47 39 10 48 48 40 10 49 49 37 10 50 50 44 3 51 51 60 3 52 52 59 3 53 53 58 4 54 54 46 4 55 55 52 4 56 56 48 2 57 57 57 2 58 58 62 2 59 59 61 11 60 60 48 11 61 61 62 11 62 62 46 12 63 63 49 12 64 64 52 12 65 65 58 13 66 66 44 13 67 67 59 13 68 68 61 14 69 69 42 14 70 70 49 14 71 71 39 15 72 72 53 16 73 73 54 17 74 74 33 18 75 75 54 17 76 76 55 19 77 77 35 20 78 78 55 19 79 79 56 21 80 80 37 22 81 81 56 21 82 82 53 16 83 83 51 23 84 84 57 23 85 85 58 23 86 86 59 4 87 87 51 4 88 88 58 4 89 89 41 3 90 90 59 3 91 91 60 3 92 92 50 24 93 93 60 24 94 94 61 24 95 95 62 5 96 96 50 5 97 97 61 5 98 98 45 2 99 99 62 2 100 100 57 2 101 101 3 0 102 102 2 0 103 103 0 0 104 104 7 1 105 105 6 1 106 106 4 1 107 107 11 2 108 108 9 2 109 109 8 2 110 110 15 3 111 111 14 3 112 112 12 3 113 113 19 2 114 114 17 2 115 115 16 2 116 116 23 3 117 117 22 3 118 118 20 3 119 119 27 2 120 120 25 2 121 121 24 2 122 122 31 3 123 123 30 3 124 124 28 3 125 125 56 3 126 126 55 3 127 127 32 3 128 128 53 4 129 129 56 4 130 130 34 4 131 131 54 2 132 132 53 2 133 133 36 2 134 134 55 5 135 135 54 5 136 136 38 5 137 137 42 25 138 138 44 25 139 139 52 25 140 140 44 3 141 141 42 3 142 142 60 3 143 143 58 26 144 144 57 26 145 145 46 26 146 146 48 2 147 147 46 2 148 148 57 2 149 149 61 27 150 150 49 27 151 151 48 27 152 152 46 28 153 153 48 28 154 154 49 28 155 155 58 4 156 156 52 4 157 157 44 4 158 158 61 29 159 159 60 29 160 160 42 29 161 161 39 15 162 162 37 22 163 163 53 16 164 164 33 18 165 165 39 15 166 166 54 17 167 167 35 20 168 168 33 18 169 169 55 19 170 170 37 22 171 171 35 20 172 172 56 21 173 173 51 4 174 174 45 4 175 175 57 4 176 176 59 4 177 177 43 4 178 178 51 4 179 179 41 3 180 180 43 3 181 181 59 3 182 182 50 5 183 183 41 5 184 184 60 5 185 185 62 5 186 186 47 5 187 187 50 5 188 188 45 2 189 189 47 2 190 190 62 2 191 191
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 | 1.94707e-9 0.01 -4.37114e-10 2.53836 0 -4.37114e-10 -0.009999999 -9.61607e-8 -0.01 1.94707e-9 0 2.1999 0 0 0 1
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
--------------------------------------------------------------------------------
/resources/dae/pier01.dae:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Blender User
6 | Blender 2.77.0 commit date:2016-04-05, commit time:18:12, hash:abf6f08
7 |
8 | 2016-11-12T17:17:20
9 | 2016-11-12T17:17:20
10 |
11 | Z_UP
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | 0 0 0 1
21 |
22 |
23 | 0 0 0 1
24 |
25 |
26 | 0.8 0.8 0.8 1
27 |
28 |
29 | 0.02 0.02 0.02 1
30 |
31 |
32 | 256
33 |
34 |
35 | 1
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | -1 -1.381054 -1 -0.616654 -0.8839959 0.9504018 -1 1.404258 -1 -0.616654 0.01445859 0.9504018 1 -1.381054 -1 0.606172 -0.8839959 0.9386443 1 1.404258 -1 0.606172 0.01445859 0.9386444 -0.03044945 0.01445859 1.489152 -0.03044945 1.404258 -1 -0.03044945 -0.8839959 1.489152 -0.03044945 -1.381054 -1 -1 -1.381054 0.5980882 -1 1.404258 0.5980882 -0.03044945 1.404258 1.489152 1 1.404258 0.5980882 1 -1.381054 0.5980882 -0.03044945 -1.381054 1.489152 -0.04045706 0.01445859 2.018385 -0.04045706 -0.8839959 2.018385 -0.6266617 -0.8839959 1.348702 -0.6266617 0.01445859 1.348702 0.5961644 0.01445859 1.348702 0.5961644 -0.8839959 1.348702 -4.77377 -0.6730466 -0.7250887 -4.77377 0.6962504 -0.7250887 -0.9201492 -0.6730466 -0.7250886 -0.9201492 0.6962504 -0.7250886 -1.097868 1.307128 -1.866773 -1.097868 1.307128 0.5451117 -1.097868 1.507128 -1.866773 -1.097868 1.507128 0.5451117 -0.8978675 1.307128 -1.866773 -0.8978675 1.307128 0.5451117 -0.8978675 1.507128 -1.866773 -0.8978675 1.507128 0.5451117 -1.095511 -1.483392 -1.866773 -1.095511 -1.483392 0.5451117 -1.095511 -1.283391 -1.866773 -1.095511 -1.283391 0.5451117 -0.8955107 -1.483392 -1.866773 -0.8955107 -1.483392 0.5451117 -0.8955107 -1.283391 -1.866773 -0.8955107 -1.283391 0.5451117 -4.737718 -0.6317669 -0.5965046 -4.737718 -0.6317669 -1.866773 -4.737718 -0.7311501 -0.5965046 -4.737718 -0.7311501 -1.866773 -4.798905 -0.6317669 -0.5965046 -4.798905 -0.6317669 -1.866773 -4.798905 -0.7311501 -0.5965046 -4.798905 -0.7311501 -1.866773 -4.738439 0.7548864 -0.5965046 -4.738439 0.7548864 -1.866773 -4.738439 0.6555032 -0.5965046 -4.738439 0.6555032 -1.866773 -4.799626 0.7548864 -0.5965046 -4.799626 0.7548864 -1.866773 -4.799626 0.6555032 -0.5965046 -4.799626 0.6555032 -1.866773 -3.594975 -0.6317669 -0.5965046 -3.594975 -0.6317669 -1.866773 -3.594975 -0.7311501 -0.5965046 -3.594975 -0.7311501 -1.866773 -3.656162 -0.6317669 -0.5965046 -3.656162 -0.6317669 -1.866773 -3.656162 -0.7311501 -0.5965046 -3.656162 -0.7311501 -1.866773 -3.595696 0.7548864 -0.5965046 -3.595696 0.7548864 -1.866773 -3.595696 0.6555032 -0.5965046 -3.595696 0.6555032 -1.866773 -3.656883 0.7548864 -0.5965046 -3.656883 0.7548864 -1.866773 -3.656883 0.6555032 -0.5965046 -3.656883 0.6555032 -1.866773 -2.391988 -0.6317669 -0.5965046 -2.391988 -0.6317669 -1.866773 -2.391988 -0.7311501 -0.5965046 -2.391988 -0.7311501 -1.866773 -2.453176 -0.6317669 -0.5965046 -2.453176 -0.6317669 -1.866773 -2.453176 -0.7311501 -0.5965046 -2.453176 -0.7311501 -1.866773 -2.392709 0.7548864 -0.5965046 -2.392709 0.7548864 -1.866773 -2.392709 0.6555032 -0.5965046 -2.392709 0.6555032 -1.866773 -2.453897 0.7548864 -0.5965046 -2.453897 0.7548864 -1.866773 -2.453897 0.6555032 -0.5965046 -2.453897 0.6555032 -1.866773 -1 -1.381054 0.5907562 -1 1.404258 0.5907562 1 1.404258 0.5907562 1 -1.381054 0.5907562 -0.03044945 -1.381054 1.477732 -0.03044945 1.404258 1.477732 -0.6262063 -0.8839959 1.330579 -0.6262063 0.01445859 1.330579 0.5966197 -0.8839959 1.330045 -0.04000169 -0.8839959 1.994305 -0.04000169 0.01445859 1.994305 0.5966197 0.01445859 1.330045
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | -1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 -0.9996846 0 -0.0251165 -0.6766772 0 0.7362799 0.6540952 0 0.7564123 0.6540948 0 0.7564126 -0.6766769 0 0.7362802 -0.6766772 0 0.7362799 0.6540951 1.7605e-7 0.7564124 -0.7524475 0 0.6586523 0.7247711 0 0.6889898 0 -1 -1.69418e-6 0 1 0 0.9997024 0 0.02439707 0 0 1 0 0 1 0.9997024 0 0.02439832 0 1 0 0 1 0 0 -1 0 -0.9996845 0 -0.02511793 0 -1 -3.78147e-7 0 -1 1.59911e-6 -0.9996845 0 -0.02511686 -0.676677 0 0.73628 0.6540951 0 0.7564124 0.6540952 0 0.7564124 -0.6766773 0 0.7362797 -0.6766769 0 0.73628 -0.7524477 0 0.6586522 0.724771 0 0.6889899 0 1 0 0.9997024 0 0.02439707 0 0 1 0.9997024 0 0.02439814 0 1 0 0 1 0 0 -1 3.94128e-7 -0.9996845 0 -0.02511793 0 -1 0
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 1 1 1 1 1 1 1 1 1 1 1 1 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784 1 1 1 1 1 1 1 1 1 0.9960784 0.9960784 0.9960784 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.9960784 0.9960784 0.9960784 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 0.5764706 0.1882353 0.1529412 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.9960784 0.9960784 0.9960784 1 1 1 1 1 1 1 1 1 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784 0.9960784 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.9960784 0.9960784 0.9960784 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
88 | 93 0 0 0 0 1 92 0 2 94 1 3 9 1 4 97 1 5 95 2 6 6 2 7 94 2 8 92 3 9 11 3 10 96 3 11 9 4 12 4 4 13 11 4 14 101 3 15 23 3 16 19 3 17 98 5 18 21 5 19 99 5 20 2 4 21 11 4 22 0 4 23 95 3 24 11 3 25 4 3 26 93 1 27 9 1 28 2 1 29 3 6 30 12 6 31 1 6 32 7 7 33 14 7 34 8 7 35 7 8 36 16 8 37 15 8 38 1 9 39 17 9 40 10 9 41 3 10 42 14 10 43 13 10 44 5 11 45 17 11 46 16 11 47 18 12 48 20 12 49 19 12 50 22 13 51 19 13 52 23 13 53 101 14 54 20 14 55 98 14 56 102 15 57 22 15 58 103 15 59 102 1 60 21 1 61 18 1 62 103 16 63 23 16 64 100 16 65 27 17 66 24 17 67 26 17 68 31 0 69 28 0 70 29 0 71 35 1 72 30 1 73 31 1 74 33 2 75 34 2 76 35 2 77 29 3 78 32 3 79 33 3 80 30 4 81 32 4 82 28 4 83 35 18 84 29 18 85 33 18 86 39 0 87 36 0 88 37 0 89 43 1 90 38 1 91 39 1 92 41 2 93 42 2 94 43 2 95 37 3 96 40 3 97 41 3 98 38 4 99 40 4 100 36 4 101 43 18 102 37 18 103 41 18 104 49 4 105 47 4 106 51 4 107 44 1 108 49 1 109 48 1 110 48 0 111 51 0 112 50 0 113 44 18 114 50 18 115 46 18 116 50 3 117 47 3 118 46 3 119 46 2 120 45 2 121 44 2 122 57 4 123 55 4 124 59 4 125 52 1 126 57 1 127 56 1 128 56 0 129 59 0 130 58 0 131 52 18 132 58 18 133 54 18 134 58 3 135 55 3 136 54 3 137 54 2 138 53 2 139 52 2 140 65 4 141 63 4 142 67 4 143 60 1 144 65 1 145 64 1 146 64 0 147 67 0 148 66 0 149 60 18 150 66 18 151 62 18 152 66 3 153 63 3 154 62 3 155 62 2 156 61 2 157 60 2 158 73 4 159 71 4 160 75 4 161 68 1 162 73 1 163 72 1 164 72 0 165 75 0 166 74 0 167 68 18 168 74 18 169 70 18 170 74 3 171 71 3 172 70 3 173 70 2 174 69 2 175 68 2 176 81 4 177 79 4 178 83 4 179 76 1 180 81 1 181 80 1 182 80 0 183 83 0 184 82 0 185 76 18 186 82 18 187 78 18 188 82 3 189 79 3 190 78 3 191 78 2 192 77 2 193 76 2 194 89 4 195 87 4 196 91 4 197 84 1 198 89 1 199 88 1 200 88 0 201 91 0 202 90 0 203 84 18 204 90 18 205 86 18 206 90 3 207 87 3 208 86 3 209 86 2 210 85 2 211 84 2 212 13 1 213 97 1 214 93 1 215 16 3 216 96 3 217 95 3 218 12 3 219 96 3 220 17 3 221 16 2 222 94 2 223 15 2 224 15 1 225 97 1 226 14 1 227 13 0 228 92 0 229 12 0 230 7 19 231 100 19 232 5 19 233 8 20 234 99 20 235 102 20 236 8 21 237 103 21 238 7 21 239 10 22 240 98 22 241 1 22 242 1 23 243 99 23 244 3 23 245 10 24 246 100 24 247 101 24 248 93 0 249 2 0 250 0 0 251 94 1 252 6 1 253 9 1 254 95 2 255 4 2 256 6 2 257 92 3 258 0 3 259 11 3 260 9 4 261 6 4 262 4 4 263 101 25 264 100 25 265 23 25 266 98 26 267 20 26 268 21 26 269 2 4 270 9 4 271 11 4 272 95 3 273 96 3 274 11 3 275 93 1 276 97 1 277 9 1 278 3 27 279 13 27 280 12 27 281 7 28 282 15 28 283 14 28 284 7 29 285 5 29 286 16 29 287 1 30 288 12 30 289 17 30 290 3 31 291 8 31 292 14 31 293 5 7 294 10 7 295 17 7 296 18 32 297 21 32 298 20 32 299 22 33 300 18 33 301 19 33 302 101 3 303 19 3 304 20 3 305 102 1 306 18 1 307 22 1 308 102 34 309 99 34 310 21 34 311 103 35 312 22 35 313 23 35 314 27 36 315 25 36 316 24 36 317 31 0 318 30 0 319 28 0 320 35 1 321 34 1 322 30 1 323 33 2 324 32 2 325 34 2 326 29 3 327 28 3 328 32 3 329 30 4 330 34 4 331 32 4 332 35 18 333 31 18 334 29 18 335 39 0 336 38 0 337 36 0 338 43 1 339 42 1 340 38 1 341 41 2 342 40 2 343 42 2 344 37 3 345 36 3 346 40 3 347 38 4 348 42 4 349 40 4 350 43 18 351 39 18 352 37 18 353 49 4 354 45 4 355 47 4 356 44 1 357 45 1 358 49 1 359 48 0 360 49 0 361 51 0 362 44 18 363 48 18 364 50 18 365 50 3 366 51 3 367 47 3 368 46 2 369 47 2 370 45 2 371 57 4 372 53 4 373 55 4 374 52 1 375 53 1 376 57 1 377 56 0 378 57 0 379 59 0 380 52 18 381 56 18 382 58 18 383 58 3 384 59 3 385 55 3 386 54 2 387 55 2 388 53 2 389 65 4 390 61 4 391 63 4 392 60 1 393 61 1 394 65 1 395 64 0 396 65 0 397 67 0 398 60 18 399 64 18 400 66 18 401 66 3 402 67 3 403 63 3 404 62 2 405 63 2 406 61 2 407 73 4 408 69 4 409 71 4 410 68 1 411 69 1 412 73 1 413 72 0 414 73 0 415 75 0 416 68 18 417 72 18 418 74 18 419 74 3 420 75 3 421 71 3 422 70 2 423 71 2 424 69 2 425 81 4 426 77 4 427 79 4 428 76 1 429 77 1 430 81 1 431 80 0 432 81 0 433 83 0 434 76 18 435 80 18 436 82 18 437 82 3 438 83 3 439 79 3 440 78 2 441 79 2 442 77 2 443 89 4 444 85 4 445 87 4 446 84 1 447 85 1 448 89 1 449 88 0 450 89 0 451 91 0 452 84 18 453 88 18 454 90 18 455 90 3 456 91 3 457 87 3 458 86 2 459 87 2 460 85 2 461 13 1 462 14 1 463 97 1 464 16 3 465 17 3 466 96 3 467 12 3 468 92 3 469 96 3 470 16 2 471 95 2 472 94 2 473 15 1 474 94 1 475 97 1 476 13 0 477 93 0 478 92 0 479 7 37 480 103 37 481 100 37 482 8 38 483 3 38 484 99 38 485 8 39 486 102 39 487 103 39 488 10 40 489 101 40 490 98 40 491 1 41 492 98 41 493 99 41 494 10 42 495 5 42 496 100 42 497
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 | 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
--------------------------------------------------------------------------------
/resources/dae/tree.dae:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | modo 1001 [Build 109580], Mac OS X Version 10.11.6 (Build 15G1004) (Version 10.11.6 (Build 15G1004))
6 |
7 | Plug-in: [Build 109580];
8 | Use Absolute Path: No;
9 | Merge Reference Items: No;
10 | Save Hidden Items: Yes;
11 | Save Cameras: Yes;
12 | Save Lights: Yes;
13 | Save Locators: Yes;
14 | Save Triangles as Triangles: No;
15 | Order Vertex Maps Alphabetically: Yes;
16 | Bake Matrices: No;
17 | Save Vertex Normals: Yes;
18 | Save UV Texture Coordinates: Yes;
19 | Save Vertex Colors: Yes;
20 | Save Vertex Weights: Yes;
21 | Save Animation: Yes;
22 | Sample Animation: No;
23 | Sample Animation Start: 0;
24 | Sample Animation End: 120;
25 | Save modo Profile: Yes;
26 | Save Maya Profile: Yes;
27 | Save 3ds Max Profile: Yes;
28 | Formatted Arrays: Yes;
29 |
30 | file:///Users/alexanderperrin/Projects/flight/resources/tree.lxo
31 |
32 | 2016-10-30T03:14:55Z
33 | 2016-10-30T03:14:55Z
34 | Y_UP
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | 0.48 0.48 0.48 1
48 |
49 |
50 | 0.04 0.04 0.04 1
51 |
52 |
53 | 256
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | -0.114694 2.17672 -2.03989
66 | -1.74518 2.16815 -1.36644
67 | -2.29039 2.16101 0.223067
68 | -1.42802 2.16061 1.82219
69 | 0.300392 2.17083 2.37456
70 | 1.90843 2.18579 1.61598
71 | 2.46757 2.19395 0.054564
72 | 1.67221 2.18817 -1.41259
73 | 0.266709 4.24726 -3.38642
74 | -2.5391 4.08501 -2.59005
75 | -3.80202 3.96171 -0.0885428
76 | -2.78222 3.94221 2.69164
77 | -0.153397 4.04903 3.90675
78 | 2.57438 4.22851 2.96148
79 | 3.84001 4.37012 0.509051
80 | 2.96066 4.37477 -2.02039
81 | -4.90481 7.00973 -0.635486
82 | -2.84196 7.09655 -3.74203
83 | 0.931792 7.23515 -4.38757
84 | 4.13706 7.34659 -2.24891
85 | 4.84555 7.34799 1.18643
86 | 2.81159 7.24705 4.25354
87 | -0.840735 7.11517 5.1171
88 | -4.03563 7.01916 3.15518
89 | -1.45995 10.7494 5.14537
90 | -4.40823 10.7095 2.74527
91 | -4.77498 10.6813 -1.24616
92 | -2.2317 10.6847 -4.18885
93 | 1.69921 10.7191 -4.38023
94 | 4.60296 10.7647 -1.81404
95 | 4.81141 10.7861 1.82197
96 | 2.30664 10.7779 4.72463
97 | -1.73194 14.5921 4.36564
98 | -3.99371 14.6357 1.89815
99 | -3.82299 14.6241 -1.6506
100 | -1.22343 14.56 -3.9789
101 | 2.26415 14.4834 -3.72254
102 | 4.47172 14.4429 -1.13285
103 | 4.16819 14.4601 2.16001
104 | 1.58461 14.522 4.44995
105 | -3.29519 18.1168 1.15839
106 | -2.78697 18.1617 -1.73382
107 | -0.405627 18.1121 -3.42767
108 | 2.46827 17.9971 -2.92014
109 | 4.04332 17.8869 -0.567531
110 | 3.4368 17.848 2.20116
111 | 1.03142 17.8976 3.86827
112 | -1.69983 18.0056 3.4453
113 | -2.38368 21.2896 0.664578
114 | -1.83107 21.3315 -1.42772
115 | 0.0422468 21.3195 -2.54998
116 | 2.15275 21.257 -2.01869
117 | 3.17595 21.1809 -0.182976
118 | 2.54306 21.1385 1.85564
119 | 0.650891 21.1528 2.94736
120 | -1.34708 21.2148 2.45835
121 | 0.246808 24.0236 -1.21571
122 | 1.31247 24.0089 -0.90045
123 | 1.7868 23.9762 0.0558336
124 | 1.41095 23.949 1.07739
125 | 0.427297 23.9406 1.58823
126 | -0.581444 23.954 1.2984
127 | -1.07209 23.9819 0.362658
128 | -0.740234 24.0101 -0.686355
129 | 0.34121 26.801 0.197811
130 | -0.0333804 1.47695 -1.157
131 | -1.01167 1.4718 -0.752928
132 | -1.3388 1.46752 0.200775
133 | -0.821375 1.46728 1.16025
134 | 0.215671 1.47341 1.49167
135 | 1.1805 1.48239 1.03652
136 | 1.51598 1.48728 0.0996727
137 | 1.03876 1.48381 -0.780619
138 | 0 -1.24 -0.7
139 | -0.494975 -1.24 -0.494975
140 | -0.7 -1.24 0
141 | -0.494975 -1.24 0.494975
142 | 0 -1.24 0.7
143 | 0.494975 -1.24 0.494975
144 | 0.7 -1.24 0
145 | 0.494975 -1.24 -0.494975
146 | 0 2.02 -0.7
147 | -0.494975 2.02 -0.494975
148 | -0.7 2.02 0
149 | -0.494975 2.02 0.494975
150 | 0 2.02 0.7
151 | 0.494975 2.02 0.494975
152 | 0.7 2.02 0
153 | 0.494975 2.02 -0.494975
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 | -0.367974 -0.479155 -0.796872
166 | -0.79974 -0.511879 -0.31368
167 | -0.628153 -0.586258 0.51159
168 | -0.183088 -0.660604 0.728067
169 | 0.196489 -0.721225 0.664249
170 | 0.703129 -0.683916 0.1946
171 | 0.642289 -0.545163 -0.53876
172 | 0.378037 -0.56022 -0.73705
173 | -0.760748 -0.572242 -0.30627
174 | -0.324129 -0.617571 -0.716622
175 | 0.40389 -0.435429 -0.804534
176 | 0.73419 -0.355498 -0.578434
177 | 0.842884 -0.475754 0.251406
178 | 0.239208 -0.433479 0.868836
179 | -0.200159 -0.549532 0.811142
180 | -0.586735 -0.653253 0.478543
181 | -0.275974 -0.380489 0.882647
182 | -0.914286 -0.29738 0.275038
183 | -0.871716 -0.0091405 -0.489926
184 | -0.0190297 -0.404638 -0.914279
185 | 0.591056 -0.151934 -0.792192
186 | 0.89276 -0.119264 -0.434461
187 | 0.794899 -0.16688 0.583341
188 | 0.240819 -0.0963227 0.965779
189 | -0.54981 0.142454 0.823053
190 | -0.978332 0.190569 -0.0809342
191 | -0.838537 0.327044 -0.435773
192 | 0.265747 -0.105767 -0.958223
193 | 0.642331 -0.283137 -0.71221
194 | 0.971672 -0.0628388 -0.227828
195 | 0.673356 0.207158 0.709702
196 | 0.340461 0.132274 0.930908
197 | -0.901639 0.298639 -0.312828
198 | -0.872217 0.170597 -0.458404
199 | 0.195866 0.322005 -0.926255
200 | 0.858419 0.240523 -0.453063
201 | 0.931433 0.100632 0.349721
202 | 0.67023 0.192945 0.716633
203 | 0.12277 0.101411 0.98724
204 | -0.77566 0.332272 0.536607
205 | -0.976339 0.0830761 -0.199649
206 | -0.527235 0.303344 -0.793729
207 | 0.415884 0.245246 -0.875725
208 | 0.870912 0.131018 -0.473653
209 | 0.876103 0.0592094 0.478474
210 | 0.661793 0.0145185 0.749546
211 | -0.319926 0.261861 0.910536
212 | -0.874253 0.31793 0.366881
213 | 0.410346 0.179957 -0.893997
214 | 0.89571 0.262806 -0.35866
215 | 0.839987 0.287922 0.459916
216 | 0.426948 0.230877 0.874306
217 | -0.439294 0.254823 0.861444
218 | -0.842477 0.0498319 0.536423
219 | -0.848922 0.0222785 -0.528048
220 | -0.519314 -0.060697 -0.852425
221 | 0.711436 0.621166 0.328652
222 | 0.296991 0.550198 0.780435
223 | -0.277898 0.466254 0.839869
224 | -0.804707 0.400685 0.438063
225 | -0.826467 0.393711 -0.402421
226 | -0.367159 0.446228 -0.816134
227 | 0.347307 0.556777 -0.754571
228 | 0.726286 0.625463 -0.285139
229 | -0.00903199 -0.784063 -0.620616
230 | -0.423974 -0.807654 -0.409806
231 | -0.587436 -0.80769 0.0505482
232 | -0.386838 -0.791004 0.473993
233 | 0.0445213 -0.786005 0.616615
234 | 0.448086 -0.797126 0.404733
235 | 0.594034 -0.802996 -0.0481832
236 | 0.401617 -0.784754 -0.472085
237 | 0 -1 0
238 | -0.382683 0 -0.92388
239 | -0.92388 0 -0.382683
240 | -0.92388 0 0.382683
241 | -0.382683 0 0.92388
242 | 0.382683 0 0.92388
243 | 0.92388 0 0.382683
244 | 0.92388 0 -0.382683
245 | 0.382683 0 -0.92388
246 | 0 1 0
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 | 0 0.5
259 | 0 0
260 | 0.125 0
261 | 0.125 0.5
262 | 0.25 0
263 | 0.25 0.5
264 | 0.375 0
265 | 0.375 0.5
266 | 0.5 0
267 | 0.5 0.5
268 | 0.625 0
269 | 0.625 0.5
270 | 0.75 0
271 | 0.75 0.5
272 | 0.875 0
273 | 0.875 0.5
274 | 1 0
275 | 1 0.5
276 | 1 1
277 | 0 1
278 | 0.5 1
279 | 0.98097 0.654329
280 | 0.98097 0.845671
281 | 0.845671 0.98097
282 | 0.654329 0.98097
283 | 0.51903 0.845671
284 | 0.51903 0.654329
285 | 0.654329 0.51903
286 | 0.845671 0.51903
287 | 0.48097 0.845671
288 | 0.345671 0.98097
289 | 0.154329 0.98097
290 | 0.0190301 0.845671
291 | 0.0190301 0.654329
292 | 0.154329 0.51903
293 | 0.345671 0.51903
294 | 0.48097 0.654329
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 | 0.320638 0.380634 0.135941 1.24537
306 | 0.295108 0.350326 0.125116 1.41374
307 | 0.29472 0.349865 0.124952 1.4163
308 | 0.318156 0.377688 0.134889 1.26173
309 | 0.294538 0.349649 0.124875 1.4175
310 | 0.316421 0.375629 0.134153 1.27318
311 | 0.294682 0.349821 0.124936 1.41655
312 | 0.316358 0.375553 0.134126 1.27359
313 | 0.295107 0.350325 0.125116 1.41375
314 | 0.318127 0.377654 0.134876 1.26192
315 | 0.29557 0.350874 0.125312 1.4107
316 | 0.320807 0.380835 0.136012 1.24425
317 | 0.295767 0.351108 0.125396 1.4094
318 | 0.322767 0.383163 0.136844 1.23132
319 | 0.295558 0.350861 0.125307 1.41077
320 | 0.322672 0.38305 0.136803 1.23195
321 | 0.353715 0.419903 0.149965 1.02721
322 | 0.35514 0.421594 0.150569 1.01781
323 | 0.357498 0.424394 0.151569 1.00226
324 | 0.359424 0.42668 0.152386 0.989556
325 | 0.359564 0.426846 0.152445 0.988633
326 | 0.35797 0.424954 0.151769 0.999144
327 | 0.355716 0.422278 0.150813 1.01401
328 | 0.353982 0.420219 0.150078 1.02545
329 | 0.400303 0.47521 0.169718 0.719944
330 | 0.399301 0.47402 0.169293 0.726554
331 | 0.398891 0.473534 0.169119 0.729257
332 | 0.399373 0.474106 0.169324 0.726078
333 | 0.400478 0.475418 0.169792 0.718791
334 | 0.401542 0.476681 0.170243 0.711775
335 | 0.40184 0.477035 0.170369 0.709809
336 | 0.401306 0.4764 0.170143 0.713331
337 | 0.447514 0.531258 0.189735 0.408569
338 | 0.447659 0.531429 0.189796 0.407617
339 | 0.447545 0.531294 0.189748 0.408366
340 | 0.447207 0.530892 0.189604 0.410598
341 | 0.446869 0.530492 0.189461 0.412822
342 | 0.446753 0.530354 0.189412 0.413587
343 | 0.446913 0.530543 0.18948 0.412537
344 | 0.447227 0.530916 0.189613 0.410466
345 | 0.49059 0.582395 0.207998 0.12447
346 | 0.49123 0.583156 0.20827 0.120247
347 | 0.491033 0.582922 0.208186 0.121545
348 | 0.490116 0.581833 0.207797 0.127596
349 | 0.489034 0.580549 0.207339 0.134729
350 | 0.488451 0.579856 0.207092 0.138576
351 | 0.488644 0.580086 0.207174 0.137301
352 | 0.489499 0.581101 0.207536 0.131661
353 | 0.509462 0.6048 0.216 3.0456
354 | 0.291127 0.3456 0.123429 1.44
355 | 0.27451 0.168963 0.0495673 1
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 |
364 |
365 |
366 |
367 |
368 | 0.382513
369 | 1
370 | 0.388933
371 | 0.388651
372 | 0.384866
373 | 0.387082
374 | 0.39403
375 | 0.390349
376 | 0.380323
377 | 0
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 | 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 8 4 4 4 4 4 4 4 4 8
395 | 8 0 0 0 0 0 0 1 1 1 1 0 2 2 1 9 0 3 3 2 9 1 3 3 2 1 1 2 2 1 2 1 4 4 1 10 1 5 5 3 10 2 5 5 3 2 2 4 4 1 3 2 6 6 1 11 2 7 7 4 11 3 7 7 4 3 3 6 6 1 4 3 8 8 1 12 3 9 9 5 12 4 9 9 5 4 4 8 8 1 5 4 10 10 1 13 4 11 11 6 13 5 11 11 6 5 5 10 10 1 6 5 12 12 1 14 5 13 13 7 14 6 13 13 7 6 6 12 12 1 7 6 14 14 1 15 6 15 15 8 15 7 15 15 8 7 7 14 14 1 0 7 16 1 1 8 7 17 0 0 10 8 1 5 3 16 8 16 16 9 17 8 18 17 9 9 8 19 3 2 9 9 1 3 2 17 9 16 17 9 18 9 18 18 9 8 9 19 0 0 8 10 1 0 0 18 10 16 18 9 19 10 18 19 9 15 10 19 15 8 15 11 1 15 8 19 11 16 19 9 20 11 18 20 9 14 11 19 13 7 14 12 1 13 7 20 12 16 20 9 21 12 18 21 9 13 12 19 11 6 13 13 1 11 6 21 13 16 21 9 22 13 18 22 9 12 13 19 9 5 12 14 1 9 5 22 14 16 22 9 23 14 18 23 9 11 14 19 7 4 11 15 1 7 4 23 15 16 23 9 16 15 18 16 9 10 15 19 5 3 22 16 1 22 9 24 16 16 24 9 25 16 18 25 9 23 16 19 23 9 23 17 1 23 9 25 17 16 25 9 26 17 18 26 9 16 17 19 16 9 16 18 1 16 9 26 18 16 26 9 27 18 18 27 9 17 18 19 17 9 17 19 1 17 9 27 19 16 27 9 28 19 18 28 9 18 19 19 18 9 18 20 1 18 9 28 20 16 28 9 29 20 18 29 9 19 20 19 19 9 19 21 1 19 9 29 21 16 29 9 30 21 18 30 9 20 21 19 20 9 20 22 1 20 9 30 22 16 30 9 31 22 18 31 9 21 22 19 21 9 21 23 1 21 9 31 23 16 31 9 24 23 18 24 9 22 23 19 22 9 24 24 1 24 9 32 24 16 32 9 33 24 18 33 9 25 24 19 25 9 25 25 1 25 9 33 25 16 33 9 34 25 18 34 9 26 25 19 26 9 26 26 1 26 9 34 26 16 34 9 35 26 18 35 9 27 26 19 27 9 27 27 1 27 9 35 27 16 35 9 36 27 18 36 9 28 27 19 28 9 28 28 1 28 9 36 28 16 36 9 37 28 18 37 9 29 28 19 29 9 29 29 1 29 9 37 29 16 37 9 38 29 18 38 9 30 29 19 30 9 30 30 1 30 9 38 30 16 38 9 39 30 18 39 9 31 30 19 31 9 31 31 1 31 9 39 31 16 39 9 32 31 18 32 9 24 31 19 24 9 33 32 1 33 9 40 32 16 40 9 41 32 18 41 9 34 32 19 34 9 34 33 1 34 9 41 33 16 41 9 42 33 18 42 9 35 33 19 35 9 35 34 1 35 9 42 34 16 42 9 43 34 18 43 9 36 34 19 36 9 36 35 1 36 9 43 35 16 43 9 44 35 18 44 9 37 35 19 37 9 37 36 1 37 9 44 36 16 44 9 45 36 18 45 9 38 36 19 38 9 38 37 1 38 9 45 37 16 45 9 46 37 18 46 9 39 37 19 39 9 39 38 1 39 9 46 38 16 46 9 47 38 18 47 9 32 38 19 32 9 32 39 1 32 9 47 39 16 47 9 40 39 18 40 9 33 39 19 33 9 40 40 1 40 9 48 40 16 48 9 49 40 18 48 9 41 40 19 41 9 41 41 1 41 9 49 41 16 48 9 50 41 18 48 9 42 41 19 42 9 42 42 1 42 9 50 42 16 48 9 51 42 18 48 9 43 42 19 43 9 43 43 1 43 9 51 43 16 48 9 52 43 18 48 9 44 43 19 44 9 44 44 1 44 9 52 44 16 48 9 53 44 18 48 9 45 44 19 45 9 45 45 1 45 9 53 45 16 48 9 54 45 18 48 9 46 45 19 46 9 46 46 1 46 9 54 46 16 48 9 55 46 18 48 9 47 46 19 47 9 47 47 1 47 9 55 47 16 48 9 48 47 18 48 9 40 47 19 40 9 50 48 1 48 9 56 48 16 48 9 57 48 18 48 9 51 48 19 48 9 51 49 1 48 9 57 49 16 48 9 58 49 18 48 9 52 49 19 48 9 52 50 1 48 9 58 50 16 48 9 59 50 18 48 9 53 50 19 48 9 53 51 1 48 9 59 51 16 48 9 60 51 18 48 9 54 51 19 48 9 54 52 1 48 9 60 52 16 48 9 61 52 18 48 9 55 52 19 48 9 55 53 1 48 9 61 53 16 48 9 62 53 18 48 9 48 53 19 48 9 48 54 1 48 9 62 54 16 48 9 63 54 18 48 9 49 54 19 48 9 49 55 1 48 9 63 55 16 48 9 56 55 18 48 9 50 55 19 48 9 58 56 1 48 9 64 56 20 48 9 59 56 19 48 9 59 57 1 48 9 64 57 20 48 9 60 57 19 48 9 60 58 1 48 9 64 58 20 48 9 61 58 19 48 9 61 59 1 48 9 64 59 20 48 9 62 59 19 48 9 62 60 1 48 9 64 60 20 48 9 63 60 19 48 9 63 61 1 48 9 64 61 20 48 9 56 61 19 48 9 56 62 1 48 9 64 62 8 48 9 57 62 19 48 9 57 63 1 48 9 64 63 20 48 9 58 63 19 48 9 0 0 1 1 1 65 64 16 49 9 66 65 18 49 9 1 0 19 2 1 1 1 1 2 1 66 65 16 49 9 67 66 18 49 9 2 1 19 4 1 2 2 1 4 1 67 66 16 49 9 68 67 18 49 9 3 2 19 6 1 3 3 1 6 1 68 67 16 49 9 69 68 18 49 9 4 3 19 8 1 4 4 1 8 1 69 68 16 49 9 70 69 18 49 9 5 4 19 10 1 5 5 1 10 1 70 69 16 49 9 71 70 18 49 9 6 5 19 12 1 6 6 1 12 1 71 70 16 49 9 72 71 18 49 9 7 6 19 14 1 7 7 1 14 1 72 71 16 49 9 65 64 18 49 9 0 7 19 1 1 73 72 21 50 9 80 72 22 50 9 79 72 23 50 9 78 72 24 50 9 77 72 25 50 9 76 72 26 50 9 75 72 27 50 9 74 72 28 50 9 81 73 0 50 9 73 73 1 50 9 74 73 2 50 9 82 73 3 50 9 82 74 3 50 9 74 74 2 50 9 75 74 4 50 9 83 74 5 50 9 83 75 5 50 9 75 75 4 50 9 76 75 6 50 9 84 75 7 50 9 84 76 7 50 9 76 76 6 50 9 77 76 8 50 9 85 76 9 50 9 85 77 9 50 9 77 77 8 50 9 78 77 10 50 9 86 77 11 50 9 86 78 11 50 9 78 78 10 50 9 79 78 12 50 9 87 78 13 50 9 87 79 13 50 9 79 79 12 50 9 80 79 14 50 9 88 79 15 50 9 88 80 15 50 9 80 80 14 50 9 73 80 16 50 9 81 80 17 50 9 81 81 29 50 9 82 81 30 50 9 83 81 31 50 9 84 81 32 50 9 85 81 33 50 9 86 81 34 50 9 87 81 35 50 9 88 81 36 50 9
396 |
397 |
398 |
399 | default
400 | 0
401 | false
402 | 0.05
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 | 0 0 0
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 | 1
422 | 120
423 | 300
424 | pixels
425 | 1
426 | 32
427 | 32
428 | hilbert
429 | false
430 | false
431 | 0
432 | 1
433 | 0
434 | 1
435 | s8
436 | gaussian
437 | 0.25
438 | 0.1
439 | false
440 | true
441 | 8
442 | 8
443 | 0.001
444 | false
445 | 10
446 | true
447 | 1
448 | 4
449 | 0.0001
450 | true
451 | 0
452 | 1 1 1
453 | true
454 | all
455 | 64
456 | 1
457 | 0
458 | 1
459 | false
460 | true
461 | 256
462 | true
463 | 2.5
464 | 6
465 | 1
466 | both
467 | false
468 | false
469 |
470 | false
471 |
472 | false
473 | 100000
474 | 32
475 | refraction
476 |
477 |
478 |
479 |
480 |
481 |
482 | 1
483 | true
484 | true
485 | true
486 | true
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 | 24
508 | 0
509 | 5
510 | 0
511 | 5
512 | frames
513 |
514 |
515 |
516 |
517 | 24
518 |
519 |
520 |
521 |
522 | 0
523 | 5
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 | 24
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 |
542 |
--------------------------------------------------------------------------------
/resources/pier.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexanderperrin/threejs-ballooning/f1ee634626bd679980de68685bf8d1a3ca263b69/resources/pier.blend
--------------------------------------------------------------------------------
/resources/plane.lxo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexanderperrin/threejs-ballooning/f1ee634626bd679980de68685bf8d1a3ca263b69/resources/plane.lxo
--------------------------------------------------------------------------------
/resources/tree.fbx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexanderperrin/threejs-ballooning/f1ee634626bd679980de68685bf8d1a3ca263b69/resources/tree.fbx
--------------------------------------------------------------------------------
/resources/tree.lxo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexanderperrin/threejs-ballooning/f1ee634626bd679980de68685bf8d1a3ca263b69/resources/tree.lxo
--------------------------------------------------------------------------------
/src/ImprovedNoise.js:
--------------------------------------------------------------------------------
1 | // http://mrl.nyu.edu/~perlin/noise/
2 |
3 | var ImprovedNoise = function () {
4 |
5 | var p = [ 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10,
6 | 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87,
7 | 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211,
8 | 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208,
9 | 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5,
10 | 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119,
11 | 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232,
12 | 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249,
13 | 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205,
14 | 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180 ];
15 |
16 | for ( var i = 0; i < 256; i++ ) {
17 |
18 | p[ 256 + i ] = p[ i ];
19 |
20 | }
21 |
22 | function fade( t ) {
23 |
24 | return t * t * t * ( t * ( t * 6 - 15 ) + 10 );
25 |
26 | }
27 |
28 | function lerp( t, a, b ) {
29 |
30 | return a + t * ( b - a );
31 |
32 | }
33 |
34 | function grad( hash, x, y, z ) {
35 |
36 | var h = hash & 15;
37 | var u = h < 8 ? x : y,
38 | v = h < 4 ? y : h === 12 || h === 14 ? x : z;
39 | return ( ( h & 1 ) === 0 ? u : -u ) + ( ( h & 2 ) === 0 ? v : -v );
40 |
41 | }
42 |
43 | return {
44 |
45 | noise: function ( x, y, z ) {
46 |
47 | var floorX = ~~x,
48 | floorY = ~~y,
49 | floorZ = ~~z;
50 |
51 | var X = floorX & 255,
52 | Y = floorY & 255,
53 | Z = floorZ & 255;
54 |
55 | x -= floorX;
56 | y -= floorY;
57 | z -= floorZ;
58 |
59 | var xMinus1 = x - 1,
60 | yMinus1 = y - 1,
61 | zMinus1 = z - 1;
62 |
63 | var u = fade( x ),
64 | v = fade( y ),
65 | w = fade( z );
66 |
67 | var A = p[ X ] + Y,
68 | AA = p[ A ] + Z,
69 | AB = p[ A + 1 ] + Z,
70 | B = p[ X + 1 ] + Y,
71 | BA = p[ B ] + Z,
72 | BB = p[ B + 1 ] + Z;
73 |
74 | return lerp( w, lerp( v, lerp( u, grad( p[ AA ], x, y, z ),
75 | grad( p[ BA ], xMinus1, y, z ) ),
76 | lerp( u, grad( p[ AB ], x, yMinus1, z ),
77 | grad( p[ BB ], xMinus1, yMinus1, z ) ) ),
78 | lerp( v, lerp( u, grad( p[ AA + 1 ], x, y, zMinus1 ),
79 | grad( p[ BA + 1 ], xMinus1, y, z - 1 ) ),
80 | lerp( u, grad( p[ AB + 1 ], x, yMinus1, zMinus1 ),
81 | grad( p[ BB + 1 ], xMinus1, yMinus1, zMinus1 ) ) ) );
82 |
83 | }
84 | };
85 | };
86 |
87 | export default ImprovedNoise;
88 |
--------------------------------------------------------------------------------
/src/classes/bird.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 Alexander Perrin contact@alexperrin.com
2 |
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy
4 | // of this software and associated documentation files (the "Software"), to deal
5 | // in the Software without restriction, including without limitation the rights
6 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | // copies of the Software, and to permit persons to whom the Software is
8 | // furnished to do so, subject to the following conditions:
9 |
10 | // The above copyright notice and this permission notice shall be included in all
11 | // copies or substantial portions of the Software.
12 |
13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | // SOFTWARE.
20 |
21 | const FLIGHT_SPEED = 30;
22 | const FLOCK_DIST = 16;
23 | const PLAYER_SEP_DIST = 80;
24 | const SEPARATION_FORCE = 100;
25 |
26 | class Bird extends THREE.Mesh {
27 | constructor() {
28 | let geometry = new THREE.Geometry();
29 | geometry.vertices.push(
30 | new THREE.Vector3(0, 0, 0.5),
31 | new THREE.Vector3(1.2, 0, 0),
32 | new THREE.Vector3(0, 0, -0.5),
33 | new THREE.Vector3(0, 0, -0.5),
34 | new THREE.Vector3(-1.2, 0, 0),
35 | new THREE.Vector3(0, 0, 0.5),
36 | );
37 | geometry.faces.push(new THREE.Face3(0, 1, 2));
38 | geometry.faces.push(new THREE.Face3(3, 4, 5));
39 | geometry.computeBoundingSphere();
40 | super(
41 | geometry,
42 | new THREE.MeshBasicMaterial({
43 | color: 0xffffff,
44 | }),
45 | );
46 | this.velocity = new THREE.Vector3(0, 0, FLIGHT_SPEED);
47 | }
48 |
49 | update(dt, center, player) {
50 | this.velocity.z = FLIGHT_SPEED;
51 | // Add veloctity
52 | this.position.add(this.velocity.clone().multiplyScalar(dt));
53 |
54 | let balloonPos = player.position.clone();
55 | balloonPos.y += 16;
56 |
57 | // Difference between player and this position
58 | let pv = balloonPos.sub(this.position);
59 | let pDist = pv.lengthSq();
60 | let pvN = pv.clone().normalize();
61 | // this.position.x += dt * Math.sin( this.position.z / 10 ) * 2;
62 | if (Math.sqrt(pDist) < PLAYER_SEP_DIST) {
63 | // Separate from player
64 | let force = 1.0 / (pDist * 0.02);
65 | // window.flight.debug.drawRay( this.position, pvN.multiplyScalar( -force ), new THREE.Color( 0x00ff00 ) );
66 | let separation = pvN.multiplyScalar(-force * SEPARATION_FORCE * dt);
67 | this.position.add(new THREE.Vector3(separation.x, separation.y, 0));
68 | } else {
69 | // Difference between center and this position
70 | let v = center.clone().sub(this.position);
71 | // Distance to center
72 | let dist = v.length();
73 | let vN = v.clone().normalize();
74 | if (dist > FLOCK_DIST) {
75 | this.position.add(vN.multiplyScalar(dt));
76 | }
77 | }
78 | // Do some flappin
79 | let geo = this.geometry;
80 | geo.vertices[1].y = Math.sin(this.position.z * 0.65);
81 | geo.vertices[4].y = Math.sin(this.position.z * 0.65);
82 | geo.verticesNeedUpdate = true;
83 | }
84 | }
85 |
86 | export default Bird;
87 |
--------------------------------------------------------------------------------
/src/classes/heightmap.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 Alexander Perrin contact@alexperrin.com
2 |
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy
4 | // of this software and associated documentation files (the "Software"), to deal
5 | // in the Software without restriction, including without limitation the rights
6 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | // copies of the Software, and to permit persons to whom the Software is
8 | // furnished to do so, subject to the following conditions:
9 |
10 | // The above copyright notice and this permission notice shall be included in all
11 | // copies or substantial portions of the Software.
12 |
13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | // SOFTWARE.
20 |
21 | import ImprovedNoise from '../ImprovedNoise';
22 |
23 | const VALLEY_01_SCALE = 0.025;
24 | const VALLEY_02_SCALE = 0.01;
25 | const VALLEY_01_MULT = 1.0;
26 | const VALLEY_02_MULT = 0.5;
27 | const HEIGHT_MULT = 10.0;
28 | const RIVER_WIDTH = 100.0;
29 |
30 | class Heightmap {
31 |
32 | constructor( opts ) {
33 | this.noise = new ImprovedNoise();
34 | this.scale = opts.hasOwnProperty( 'scale' ) ? opts.scale : 100;
35 | this.height = opts.hasOwnProperty( 'height' ) ? opts.height : 0;
36 | this.noiseOffset = opts.hasOwnProperty( 'noiseOffset' ) ? opts.noiseOffset : 0;
37 | this.rScale = 1 / this.scale;
38 | }
39 |
40 | lerp( from, to, t ) {
41 | return ( 1 - t ) * from + t * to;
42 | }
43 |
44 | clamp( val, min, max ) {
45 | let t = val < min ? min : val;
46 | return t > max ? max : t;
47 | }
48 |
49 | getHeight( x, y ) {
50 | let n1 = this.clamp( this.perlinNoise( x, y, 0.5 ) + 0.2, 0, 1 );
51 | let n2 = this.perlinNoise( x, y, 2 );
52 | let height = n1 + n2;
53 | height *= this.clamp( Math.pow( height + 0.5, 5 ), 0, 1 );
54 | height = this.lerp( height, this.step( height, 5 ), this.perlinNoise( x, 0.2, 1 ) );
55 | height *= 0.3;
56 | height *= Math.pow( Math.abs( VALLEY_01_SCALE * x ), 2 ) * VALLEY_01_MULT + 0.5;
57 | height += Math.pow( Math.abs( VALLEY_02_SCALE * x ), 2 ) * VALLEY_02_MULT;
58 |
59 | // River
60 | let river = RIVER_WIDTH / Math.abs( x - ( this.perlinNoise( x, y, 0.5 ) - 0.5 ) * 200 );
61 | height -= 0.5 * this.clamp( river, 0, 5 );
62 |
63 | return height * HEIGHT_MULT;
64 | }
65 |
66 | perlinNoise( x, y, frequency ) {
67 | x += this.noiseOffset.x;
68 | y += this.noiseOffset.y;
69 | x = x < 0 ? 0 : x;
70 | y = y < 0 ? 0 : y;
71 | return this.noise.noise( x * this.rScale * frequency, 0, y * this.rScale * frequency ) + 0.5;
72 | }
73 |
74 | step( height, steps ) {
75 | return Math.floor( height * steps ) / steps;
76 | }
77 | }
78 |
79 | export default Heightmap;
80 |
--------------------------------------------------------------------------------
/src/classes/mathf.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 Alexander Perrin contact@alexperrin.com
2 |
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy
4 | // of this software and associated documentation files (the "Software"), to deal
5 | // in the Software without restriction, including without limitation the rights
6 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | // copies of the Software, and to permit persons to whom the Software is
8 | // furnished to do so, subject to the following conditions:
9 |
10 | // The above copyright notice and this permission notice shall be included in all
11 | // copies or substantial portions of the Software.
12 |
13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | // SOFTWARE.
20 |
21 | import SeedRandom from 'seedrandom';
22 |
23 | let rnd = new SeedRandom( 'gh3jf023ja84' );
24 | let rnd2 = new SeedRandom( 'aowjdiao8q2u' );
25 | let count = 0;
26 |
27 | class Mathf {
28 | static clamp( num, min, max ) {
29 | return num < min ? min : num > max ? max : num;
30 | }
31 |
32 | static getCount() {
33 | return count;
34 | }
35 |
36 | static lerp( from, to, t ) {
37 | return from + t * ( to - from );
38 | }
39 |
40 | static inverseLerp( from, to, t ) {
41 | let v = from;
42 | if ( t <= from ) {
43 | v = from;
44 | } else if ( t >= to ) {
45 | v = to;
46 | }
47 | v = ( t - from ) / ( to - from );
48 | return v;
49 | }
50 |
51 | static randRange( min, max ) {
52 | return rnd.quick() * ( max - min ) + min;
53 | }
54 |
55 | static randRange2( min, max ) {
56 | return rnd2.quick() * ( max - min ) + min;
57 | }
58 |
59 | static moveTowards( current, target, maxDelta ) {
60 | let delta = target - current;
61 | if ( Math.abs( delta ) > maxDelta ) {
62 | delta = maxDelta * Math.sign( delta );
63 | }
64 | return current + delta;
65 | }
66 | }
67 |
68 | export default Mathf;
69 |
--------------------------------------------------------------------------------
/src/classes/player.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 Alexander Perrin contact@alexperrin.com
2 |
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy
4 | // of this software and associated documentation files (the "Software"), to deal
5 | // in the Software without restriction, including without limitation the rights
6 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | // copies of the Software, and to permit persons to whom the Software is
8 | // furnished to do so, subject to the following conditions:
9 |
10 | // The above copyright notice and this permission notice shall be included in all
11 | // copies or substantial portions of the Software.
12 |
13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | // SOFTWARE.
20 |
21 | import Mathf from "./mathf";
22 |
23 | const FLIGHT_SPEED = 12;
24 | const BANK_SPEED = 0.5;
25 | const SPIN_SPEED = 1;
26 | const SIDEWAYS_SPEED = 5;
27 | const FLAG_ADJUST_SPEED = 55;
28 | const SCARF_SEG_DIST = 0.3;
29 |
30 | class Player extends THREE.Object3D {
31 | constructor() {
32 | super();
33 | this.angularVelocity = new THREE.Vector3();
34 | this.bankVelocity = 0.0;
35 | this.velocity = new THREE.Vector3();
36 | this.bankVelocity = 0.0;
37 | this.rotation.set(0, 0, 0, "ZXY");
38 | this.scarf = null;
39 | this.spin = 0.0;
40 | this.gridPos = {
41 | x: 0,
42 | y: 0,
43 | };
44 | this.initScarf();
45 | }
46 |
47 | initScarf() {
48 | let geometry = new THREE.Geometry();
49 | for (let i = 0; i < 20; ++i) {
50 | geometry.vertices.push(
51 | new THREE.Vector3(
52 | this.position.x,
53 | this.position.y,
54 | this.position.z + i * SCARF_SEG_DIST,
55 | ),
56 | );
57 | }
58 | let line = new THREE.MeshLine();
59 | let material = new THREE.MeshLineMaterial({
60 | color: new THREE.Color(0x663322),
61 | });
62 | line.setGeometry(geometry, function(v) {
63 | return 0.3;
64 | });
65 | let mesh = new THREE.Mesh(line.geometry, material); // this syntax could definitely be improved!
66 | this.scarf = line;
67 | window.flight.scene.add(mesh);
68 | }
69 |
70 | update() {
71 | let dt = window.flight.deltaTime;
72 | let input = window.flight.input;
73 |
74 | // Twist
75 | this.angularVelocity.y += dt * input.x * SPIN_SPEED;
76 | this.rotation.y += this.angularVelocity.y * dt;
77 | this.rotation.y += dt * 0.1;
78 | this.angularVelocity.y -= this.angularVelocity.y * dt;
79 |
80 | // Move left and right
81 | this.velocity.x += dt * -input.x * SIDEWAYS_SPEED;
82 | this.position.add(this.velocity.clone().multiplyScalar(dt));
83 | this.velocity.x -= this.velocity.x * dt * 0.3;
84 |
85 | // Move forward
86 | this.position.z += dt * FLIGHT_SPEED;
87 |
88 | // Bank
89 | this.bankVelocity += input.x * BANK_SPEED * dt;
90 | this.bankVelocity -= this.bankVelocity * dt;
91 | this.rotation.z += this.bankVelocity * dt;
92 | this.rotation.z -=
93 | Math.sign(this.rotation.z) * Math.pow(this.rotation.z, 2) * dt * 5;
94 |
95 | // Positions array is interleved vector3
96 | let positions = this.scarf.positions;
97 | let numPoints = positions.length;
98 | for (let i = 0; i < numPoints; i += 3) {
99 | if (i === 0) {
100 | // Position first scarf point at balloon position
101 | positions[i] = this.position.x;
102 | positions[i + 1] = this.position.y - 3;
103 | positions[i + 2] = this.position.z;
104 | } else {
105 | // i - 3 for previous point
106 | positions[i] = Mathf.moveTowards(
107 | positions[i],
108 | positions[i - 3],
109 | (FLAG_ADJUST_SPEED / numPoints) *
110 | Math.abs(positions[i] - positions[i - 3]),
111 | );
112 | positions[i + 1] = positions[i - 2];
113 | if (Math.abs(positions[i + 2] - positions[i - 1]) > SCARF_SEG_DIST) {
114 | positions[i + 2] +=
115 | positions[i - 1] - positions[i + 2] - SCARF_SEG_DIST;
116 | }
117 | positions[i] += (Math.sin(positions[i + 2] * 0.2) * 0.3) / (i + 1);
118 | }
119 | }
120 | this.scarf.process();
121 | this.scarf.geometry.computeBoundingBox();
122 | this.scarf.geometry.computeBoundingSphere();
123 | }
124 | }
125 |
126 | export default Player;
127 |
--------------------------------------------------------------------------------
/src/classes/random.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 Alexander Perrin contact@alexperrin.com
2 |
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy
4 | // of this software and associated documentation files (the "Software"), to deal
5 | // in the Software without restriction, including without limitation the rights
6 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | // copies of the Software, and to permit persons to whom the Software is
8 | // furnished to do so, subject to the following conditions:
9 |
10 | // The above copyright notice and this permission notice shall be included in all
11 | // copies or substantial portions of the Software.
12 |
13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | // SOFTWARE.
20 |
21 | import SeedRandom from 'seedrandom';
22 |
23 | class Random {
24 | constructor( seed ) {
25 | this.seed = seed;
26 | this.generator = new SeedRandom( seed );
27 | }
28 |
29 | range( min, max ) {
30 | return this.generator.quick() * ( max - min ) + min;
31 | }
32 | }
33 |
34 | export default Random;
35 |
--------------------------------------------------------------------------------
/src/classes/terrain-patch.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 Alexander Perrin contact@alexperrin.com
2 |
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy
4 | // of this software and associated documentation files (the "Software"), to deal
5 | // in the Software without restriction, including without limitation the rights
6 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | // copies of the Software, and to permit persons to whom the Software is
8 | // furnished to do so, subject to the following conditions:
9 |
10 | // The above copyright notice and this permission notice shall be included in all
11 | // copies or substantial portions of the Software.
12 |
13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | // SOFTWARE.
20 |
21 | import Mathf from "./mathf";
22 |
23 | const SEGS_X = 8;
24 | const SEGS_Y = 8;
25 | const VERTS_X = SEGS_X + 1;
26 |
27 | class TerrainPatch extends THREE.Mesh {
28 | constructor(opts) {
29 | super();
30 | this.objects = [];
31 | this.width = opts.hasOwnProperty("width") ? opts.width : 0;
32 | this.height = opts.hasOwnProperty("height") ? opts.height : 0;
33 | this.heightmap = opts.hasOwnProperty("heightmap")
34 | ? opts.heightmap
35 | : undefined;
36 | this.debug = opts.hasOwnProperty("debug") ? opts.debug : false;
37 | let position = opts.hasOwnProperty("position")
38 | ? opts.position
39 | : new THREE.Vector3();
40 | this.position.set(position.x, position.y, position.z);
41 | this.material = opts.hasOwnProperty("material") ? opts.material : undefined;
42 | this.verts = null;
43 | this.verts3 = [];
44 | this.normals = [];
45 | this.geometry = this.createGeometry();
46 | this.geometry.computeBoundingBox();
47 | this.geometry.computeBoundingSphere();
48 | this.scatters = [];
49 |
50 | this.axisHelper = null;
51 | this.boundingBoxHelper = null;
52 |
53 | // Add debug helpers
54 | if (this.debug) {
55 | this.boundingBoxHelper = new THREE.BoundingBoxHelper(this, 0xffaa00);
56 | this.boundingBoxHelper.update();
57 | this.axisHelper = new THREE.AxisHelper(this.width / 2);
58 | this.axisHelper.position.copy(this.position);
59 | window.flight.scene.add(this.axisHelper);
60 | window.flight.scene.add(this.boundingBoxHelper);
61 | }
62 | }
63 |
64 | /**
65 | * @description Rebuilds the terrain heightmap and scatter geometry.
66 | */
67 | rebuild(scene) {
68 | let vertsX = SEGS_X + 1;
69 | let vertsY = SEGS_Y + 1;
70 | let v = 0;
71 | for (let i = 0; i < vertsY; ++i) {
72 | for (let j = 0; j < vertsX; ++j, v += 3) {
73 | this.verts[v + 1] = 0.0;
74 | let noise = this.heightmap.getHeight(
75 | this.verts[v] + this.position.x,
76 | this.verts[v + 2] + this.position.z,
77 | );
78 | this.verts[v + 1] = noise;
79 | }
80 | }
81 | this.geometry.attributes.position.needsUpdate = true;
82 | this.geometry.computeBoundingBox();
83 | this.geometry.computeBoundingSphere();
84 | this.geometry.computeVertexNormals();
85 |
86 | // Regenerate scatter
87 | this.scatters.forEach(v => {
88 | scene.remove(v.scatterMesh);
89 | v.scatterMesh.geometry.dispose();
90 | v.scatterMesh = this.createScatterGeometry(v.opts);
91 | window.flight.scene.add(v.scatterMesh);
92 | });
93 |
94 | if (this.debug) {
95 | this.boundingBoxHelper.update();
96 | this.axisHelper.position.copy(this.position);
97 | }
98 | }
99 |
100 | /**
101 | * Returns normal and position data as nice object array.
102 | */
103 | getNiceHeightmapData() {
104 | let vertsX = SEGS_X + 1;
105 | let vertsY = SEGS_Y + 1;
106 | let v = 0;
107 | let points = [];
108 | let norms = this.geometry.attributes.normal.array;
109 | for (let i = 0; i < vertsY; ++i) {
110 | for (let j = 0; j < vertsX; ++j, v += 3) {
111 | points.push({
112 | position: new THREE.Vector3(
113 | this.verts[v] + this.position.x,
114 | this.verts[v + 1] + this.position.y,
115 | this.verts[v + 2] + this.position.z,
116 | ),
117 | normal: new THREE.Vector3(norms[v], norms[v + 1], norms[v + 2]),
118 | });
119 | }
120 | }
121 | return points;
122 | }
123 |
124 | /**
125 | * @description Adds a mesh to scatter on to the terrain.
126 | */
127 | addScatterObject(opts) {
128 | let scatterMesh = this.createScatterGeometry(opts);
129 |
130 | // Store data for terrain to be able to rebuild scatter when regenerated
131 | this.scatters.push({
132 | scatterMesh: scatterMesh, // The batched scatter mesh
133 | opts: opts,
134 | });
135 |
136 | window.flight.scene.add(scatterMesh);
137 | }
138 |
139 | /**
140 | * @description Creates the scatter geometry mesh.
141 | */
142 | createScatterGeometry(opts) {
143 | let mesh = opts.hasOwnProperty("mesh") ? opts.mesh : null;
144 | let count = opts.hasOwnProperty("count") ? opts.count : 0;
145 | let minSize = opts.hasOwnProperty("minSize") ? opts.minSize : null;
146 | let maxSize = opts.hasOwnProperty("maxSize") ? opts.maxSize : null;
147 | let minHeight = opts.hasOwnProperty("minHeight") ? opts.minHeight : 0;
148 | let maxHeight = opts.hasOwnProperty("maxHeight") ? opts.maxHeight : 128;
149 | let lockXZScale = opts.hasOwnProperty("lockXZScale")
150 | ? opts.lockXZScale
151 | : false;
152 | let maxSlope = opts.hasOwnProperty("maxSlope") ? opts.maxSlope : 0;
153 |
154 | let meshGeo = mesh.geometry;
155 | let vertCount = meshGeo.attributes.position.count;
156 |
157 | let matrix = new THREE.Matrix4();
158 | let rotation = new THREE.Quaternion();
159 | let position = new THREE.Vector3();
160 | let scale = new THREE.Vector3();
161 |
162 | // Scatter geometry
163 | let geometry = new THREE.BufferGeometry();
164 |
165 | // Vertex positions
166 | let posAttrib = new THREE.Float32Attribute(
167 | new Float32Array(
168 | vertCount * meshGeo.attributes.position.itemSize * count,
169 | ),
170 | meshGeo.attributes.position.itemSize,
171 | );
172 |
173 | // Vertex normals
174 | let normAttrib = new THREE.Float32Attribute(
175 | new Float32Array(
176 | vertCount * meshGeo.attributes.position.itemSize * count,
177 | ),
178 | meshGeo.attributes.position.itemSize,
179 | );
180 |
181 | // Vertex colours
182 | let colorAttrib = new THREE.Float32Attribute(
183 | new Float32Array(vertCount * meshGeo.attributes.color.itemSize * count),
184 | meshGeo.attributes.color.itemSize,
185 | );
186 |
187 | geometry.addAttribute("position", posAttrib);
188 | geometry.addAttribute("normal", normAttrib);
189 | geometry.addAttribute("color", colorAttrib);
190 |
191 | let size;
192 | let sway = 0.05;
193 |
194 | // Create individual objects for the scatter
195 | for (let i = 0; i < count; ++i) {
196 | let coord = {
197 | x: Mathf.randRange(this.position.x, this.position.x + this.width),
198 | y: 0,
199 | z: Mathf.randRange(this.position.z, this.position.z + this.height),
200 | };
201 |
202 | let pos = this.getPosition(coord);
203 | let normal = this.getNormal(coord);
204 |
205 | // Min height for spawn
206 | if (pos.y < minHeight || pos.y > maxHeight || normal.y < maxSlope) {
207 | continue;
208 | }
209 |
210 | position.set(pos.x, pos.y, pos.z);
211 |
212 | rotation.setFromEuler(
213 | new THREE.Euler(
214 | Mathf.randRange(-sway, sway),
215 | Mathf.randRange(0, Math.PI * 2),
216 | Mathf.randRange(-sway, sway),
217 | THREE.Euler.DefaultOrder,
218 | ),
219 | );
220 |
221 | let pScale = Mathf.lerp(
222 | 0.5,
223 | 1.0,
224 | this.heightmap.perlinNoise(
225 | pos.x + this.position.x,
226 | pos.z + this.position.z,
227 | 3,
228 | ),
229 | );
230 |
231 | let xScale = Mathf.randRange(minSize.x, maxSize.x);
232 | size = {
233 | x: xScale,
234 | y: Mathf.randRange(minSize.y, maxSize.y),
235 | z: lockXZScale ? xScale : Mathf.randRange(minSize.z, maxSize.z),
236 | };
237 |
238 | scale.set(size.x * pScale, size.y * pScale, size.z * pScale);
239 | matrix.compose(
240 | position,
241 | rotation,
242 | scale,
243 | );
244 | meshGeo.applyMatrix(matrix);
245 | geometry.merge(meshGeo, i * vertCount);
246 | meshGeo.applyMatrix(matrix.getInverse(matrix));
247 | }
248 |
249 | let scatterMesh = new THREE.Mesh(geometry, mesh.material);
250 | scatterMesh.castShadow = true; // mesh.castShadow;
251 | return scatterMesh;
252 | }
253 |
254 | /**
255 | * @description Gets an object space position on the landscape based on world coordinates.
256 | * @returns {Vector3} The position.
257 | */
258 | getPosition(coord) {
259 | let localCoord = {
260 | x: (coord.x - this.position.x) / this.width,
261 | y: (coord.z - this.position.z) / this.height,
262 | };
263 |
264 | // Base vertex index
265 | let ix1 = Math.floor(localCoord.x * SEGS_X);
266 | let iy1 = Math.floor(localCoord.y * SEGS_Y);
267 |
268 | let i1 = (VERTS_X * iy1 + ix1) * 3; // Bottom right
269 | let i2 = i1 + 3; // Bottom left
270 | let i3 = i1 + VERTS_X * 3; // Top right
271 | let i4 = i3 + 3; // Top left
272 |
273 | // Grid index interpolant time values collected from remainder
274 | let rx1 = localCoord.x * SEGS_X - ix1;
275 | let ry1 = localCoord.y * SEGS_Y - iy1;
276 |
277 | let h1, h2, h;
278 |
279 | // Interpolate heights of each vert using bilinear interpolation
280 | h1 = Mathf.lerp(this.verts[i1 + 1], this.verts[i2 + 1], rx1); // Bottom left to bottom right
281 | h2 = Mathf.lerp(this.verts[i3 + 1], this.verts[i4 + 1], rx1); // Top left to top right
282 | h = Mathf.lerp(h1, h2, ry1);
283 |
284 | return new THREE.Vector3(coord.x, h, coord.z);
285 | }
286 |
287 | /**
288 | * {bool} Does this terrain patch contains a given world position?
289 | */
290 | containsWorldPosition(coord) {
291 | let localCoord = {
292 | x: (coord.x - this.position.x) / this.width,
293 | y: (coord.z - this.position.z) / this.height,
294 | };
295 | return (
296 | localCoord.x <= 1.0 &&
297 | localCoord.x >= 0 &&
298 | localCoord.y <= 1 &&
299 | localCoord.y >= 0
300 | );
301 | }
302 |
303 | /**
304 | * Gets the normal of the terrain at the given world coordinates.
305 | * @return {Vector3} The normal.
306 | */
307 | getNormal(coord) {
308 | let localCoord = {
309 | x: (coord.x - this.position.x) / this.width,
310 | y: (coord.z - this.position.z) / this.height,
311 | };
312 |
313 | // Base vertex index
314 | let ix1 = Math.floor(localCoord.x * SEGS_X);
315 | let iy1 = Math.floor(localCoord.y * SEGS_Y);
316 |
317 | let i1 = (VERTS_X * iy1 + ix1) * 3; // Bottom right
318 | let i2 = i1 + 3; // Bottom left
319 | let i3 = i1 + VERTS_X * 3; // Top right
320 | let i4 = i3 + 3; // Top left
321 |
322 | // Grid index interpolant time values collected from remainder
323 | let rx1 = localCoord.x * SEGS_X - ix1;
324 | let ry1 = localCoord.y * SEGS_Y - iy1;
325 |
326 | let norms = this.geometry.attributes.normal.array;
327 |
328 | // Interpolate heights of each vert using bilinear interpolation
329 | let v1 = new THREE.Vector3();
330 | v1.lerpVectors(
331 | new THREE.Vector3(norms[i1], norms[i1 + 1], norms[i1 + 2]),
332 | new THREE.Vector3(norms[i2], norms[i2 + 1], norms[i2 + 2]),
333 | rx1,
334 | );
335 | let v2 = new THREE.Vector3();
336 | v2.lerpVectors(
337 | new THREE.Vector3(norms[i3], norms[i3 + 1], norms[i3 + 2]),
338 | new THREE.Vector3(norms[i4], norms[i4 + 1], norms[i4 + 2]),
339 | rx1,
340 | );
341 | let n = new THREE.Vector3();
342 | n.lerpVectors(v1, v2, ry1);
343 | return n;
344 | }
345 |
346 | /**
347 | * Creates terrain geometry data and heightmap.
348 | */
349 | createGeometry() {
350 | let geo = new THREE.BufferGeometry();
351 | let vertsX = SEGS_X + 1;
352 | let vertsY = SEGS_Y + 1;
353 |
354 | this.verts = new Float32Array(vertsX * vertsY * 3);
355 | this.uvs = new Float32Array(vertsX * vertsY * 2);
356 | let v = 0;
357 | let uv = 0;
358 | let stepX = this.width / SEGS_X;
359 | let stepY = this.height / SEGS_Y;
360 | for (let j = 0; j < vertsY; ++j) {
361 | for (let i = 0; i < vertsX; ++i, v += 3, uv += 2) {
362 | let pos = {
363 | x: i * stepX,
364 | y: 0,
365 | z: j * stepY,
366 | };
367 | let noise = this.heightmap.getHeight(
368 | pos.x + this.position.x,
369 | pos.z + this.position.z,
370 | );
371 | pos.y = noise;
372 | if (pos.y < -15) {
373 | // let helper = new THREE.AxisHelper( 10 );
374 | // helper.position.set( pos.x + this.position.x, -15, pos.z + this.position.z );
375 | // window.flight.scene.add( helper );
376 | }
377 | this.verts[v] = pos.x;
378 | this.verts[v + 1] = pos.y;
379 | this.verts[v + 2] = pos.z;
380 | this.uvs[uv] = i / (vertsX - 1);
381 | this.uvs[uv + 1] = j / (vertsY - 1);
382 | }
383 | }
384 |
385 | let indices = new Uint32Array(SEGS_X * SEGS_Y * 6);
386 |
387 | for (let i = 0, t = 0, j = 0, v = 0; i < SEGS_Y; ++i, v = i * vertsX) {
388 | for (j = 0; j < SEGS_X; ++j, t += 6, v++) {
389 | indices[t] = v;
390 | indices[t + 1] = v + vertsX;
391 | indices[t + 2] = v + vertsX + 1;
392 | indices[t + 3] = v;
393 | indices[t + 4] = v + vertsX + 1;
394 | indices[t + 5] = v + 1;
395 | }
396 | }
397 |
398 | geo.addAttribute("position", new THREE.BufferAttribute(this.verts, 3));
399 | geo.addAttribute("uv", new THREE.BufferAttribute(this.uvs, 2));
400 | geo.setIndex(new THREE.BufferAttribute(indices, 1));
401 | geo.computeVertexNormals();
402 | return geo;
403 | }
404 | }
405 |
406 | export default TerrainPatch;
407 |
--------------------------------------------------------------------------------
/src/shaders/landscape_frag.glsl:
--------------------------------------------------------------------------------
1 | #define PHONG
2 |
3 | uniform vec3 cliffColor;
4 | uniform vec3 grassColor;
5 | uniform vec3 sandColor;
6 | uniform vec3 emissive;
7 | uniform vec3 specular;
8 | uniform vec3 xFogColor;
9 | uniform float shininess;
10 | uniform float opacity;
11 | uniform float steps;
12 | uniform float threshold;
13 | uniform sampler2D map;
14 | uniform float waterHeight;
15 |
16 | varying vec3 vWorldNormal;
17 | varying vec3 vWorldPos;
18 |
19 | #include
20 | #include
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 | #include
27 | #include
28 | #include
29 | #include
30 | #include
31 | #include
32 | #include
33 | #include
34 | #include
35 | #include
36 | #include
37 | #include
38 | #include
39 | #include
40 |
41 | void main() {
42 |
43 | #include
44 |
45 | float y = floor((vWorldNormal.y) * steps + threshold) / steps;
46 | vec3 c = mix(sandColor, grassColor, clamp(floor(vWorldPos.y - waterHeight), 0.01, 0.99));
47 | c = mix(cliffColor, c, y);
48 | vec4 diffuseColor = vec4( c, opacity );
49 | ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
50 | vec3 totalEmissiveRadiance = emissive;
51 |
52 | #include
53 | #include
54 | #include
55 | #include
56 | #include
57 | #include
58 | #include
59 | #include
60 | #include
61 |
62 | // accumulation
63 | #include
64 | #include
65 |
66 | // modulation
67 | #include
68 |
69 | vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
70 | float dot = pow(saturate(1.0 - dot(normalize(vViewPosition), normal)), 5.0);
71 | outgoingLight += vec3(0.8 * dot, dot, 0.7 * dot);
72 |
73 | #include
74 |
75 | gl_FragColor = vec4( outgoingLight, diffuseColor.a );
76 |
77 | #include
78 | #include
79 | #include
80 | #include
81 |
82 | c = gl_FragColor.rgb;
83 | gl_FragColor = mix(vec4(c, 1), vec4(xFogColor, 1), clamp((abs(vWorldPos.x) - 128.0) / 32.0, 0.0, 1.0));
84 | }
85 |
--------------------------------------------------------------------------------
/src/shaders/landscape_vert.glsl:
--------------------------------------------------------------------------------
1 | #define PHONG
2 |
3 | varying vec3 vViewPosition;
4 | varying vec3 vWorldNormal;
5 | varying vec3 vWorldPos;
6 |
7 | #ifndef FLAT_SHADED
8 |
9 | varying vec3 vNormal;
10 |
11 | #endif
12 |
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 |
21 | void main() {
22 |
23 | #include
24 | #include
25 | #include
26 |
27 | #include
28 | #include
29 |
30 | #ifndef FLAT_SHADED // Normal computed with derivatives when FLAT_SHADED
31 |
32 | vNormal = normalize( transformedNormal );
33 |
34 | #endif
35 |
36 | #include
37 | #include
38 | #include
39 | #include
40 |
41 | vViewPosition = - mvPosition.xyz;
42 | vWorldNormal = normal;
43 |
44 | #include
45 | #include
46 | #include
47 |
48 | vWorldPos = worldPosition.xyz;
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/src/shaders/standard_frag.glsl:
--------------------------------------------------------------------------------
1 | #define PHONG
2 |
3 | uniform vec3 diffuse;
4 | uniform vec3 emissive;
5 | uniform vec3 specular;
6 | uniform float shininess;
7 | uniform float opacity;
8 | uniform vec3 xFogColor;
9 |
10 | varying vec3 vWorldPos;
11 |
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 | #include
27 | #include
28 | #include
29 | #include
30 | #include
31 | #include
32 | #include
33 |
34 | void main() {
35 |
36 | #include
37 |
38 | vec4 diffuseColor = vec4( diffuse, opacity );
39 | ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
40 | vec3 totalEmissiveRadiance = emissive;
41 |
42 | #include
43 | #include
44 | #include
45 | #include
46 | #include
47 | #include
48 | #include
49 | #include
50 | #include
51 |
52 | // accumulation
53 | #include
54 | #include
55 |
56 | // modulation
57 | #include
58 |
59 | vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
60 |
61 | #include
62 |
63 | gl_FragColor = vec4( outgoingLight, diffuseColor.a );
64 |
65 | #include
66 | #include
67 | #include
68 | #include
69 |
70 | vec3 c = gl_FragColor.rgb;
71 | gl_FragColor = mix(vec4(c, 1), vec4(xFogColor, 1), clamp((abs(vWorldPos.x) - 128.0) / 32.0, 0.0, 1.0));
72 | }
73 |
--------------------------------------------------------------------------------
/src/shaders/standard_vert.glsl:
--------------------------------------------------------------------------------
1 | #define PHONG
2 |
3 | varying vec3 vViewPosition;
4 | varying vec3 vWorldPos;
5 |
6 | #ifndef FLAT_SHADED
7 |
8 | varying vec3 vNormal;
9 |
10 | #endif
11 |
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 | #include
23 |
24 | void main() {
25 |
26 | #include
27 | #include
28 | #include
29 |
30 | #include
31 | #include
32 | #include
33 | #include
34 | #include
35 |
36 | #ifndef FLAT_SHADED // Normal computed with derivatives when FLAT_SHADED
37 |
38 | vNormal = normalize( transformedNormal );
39 |
40 | #endif
41 |
42 | #include
43 | #include
44 | #include
45 | #include
46 | #include
47 | #include
48 | #include
49 |
50 | vViewPosition = - mvPosition.xyz;
51 |
52 | #include
53 | #include
54 | #include
55 |
56 | vWorldPos = worldPosition.xyz;
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/webpack.common.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | const HtmlWebpackPlugin = require("html-webpack-plugin");
3 | const CleanWebpackPlugin = require("clean-webpack-plugin");
4 | const webpack = require("webpack");
5 |
6 | module.exports = {
7 | entry: {
8 | app: "./src/index.js",
9 | },
10 | output: {
11 | filename: "[name].bundle.js",
12 | path: path.resolve(__dirname, "dist"),
13 | },
14 | plugins: [
15 | new CleanWebpackPlugin(["dist"]),
16 | new HtmlWebpackPlugin({
17 | template: "./public/index.html",
18 | minify: true,
19 | }),
20 | new webpack.ProvidePlugin({
21 | THREE: "three",
22 | }),
23 | new webpack.HotModuleReplacementPlugin(),
24 | ],
25 | module: {
26 | rules: [
27 | {
28 | test: /\.css$/,
29 | use: ["style-loader", "css-loader"],
30 | },
31 | {
32 | test: /\.glsl$/,
33 | use: ["webpack-glsl-loader"],
34 | },
35 | ],
36 | },
37 | };
38 |
--------------------------------------------------------------------------------
/webpack.dev.js:
--------------------------------------------------------------------------------
1 | const merge = require("webpack-merge");
2 | const common = require("./webpack.common.js");
3 |
4 | module.exports = merge(common, {
5 | mode: "development",
6 | devtool: "inline-source-map",
7 | devServer: {
8 | contentBase: "./public",
9 | hot: true,
10 | },
11 | });
12 |
--------------------------------------------------------------------------------
/webpack.prod.js:
--------------------------------------------------------------------------------
1 | const merge = require("webpack-merge");
2 | const common = require("./webpack.common.js");
3 | const MinifyPlugin = require("babel-minify-webpack-plugin");
4 | const CopyWebpackPlugin = require("copy-webpack-plugin");
5 |
6 | module.exports = merge(common, {
7 | mode: "production",
8 | plugins: [
9 | new MinifyPlugin(),
10 | new CopyWebpackPlugin([{ from: "public", ignore: ["index.html"] }]),
11 | ],
12 | });
13 |
--------------------------------------------------------------------------------