-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathindex.html
executable file
·146 lines (110 loc) · 3.82 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<!-- Inspired from : https://threejs.org/examples/#misc_controls_orbit -->
<!DOCTYPE html>
<html lang="en">
<head>
<title>three.js webgl - head controls</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<style>
body {
color: #000;
font-family:Monospace;
font-size:13px;
text-align:center;
font-weight: bold;
background-color: #fff;
margin: 0px;
overflow: hidden;
}
#info {
color:#000;
position: absolute;
top: 0px; width: 100%;
padding: 5px;
}
a {
color: red;
}
#headControlsCanvas {
position: fixed;
right: 0px;
bottom: 0px;
z-index: 1000;
transform-origin: bottom right;
max-height: 25%;
max-width: 25%;
}
</style>
</head>
<body>
<div id="container"></div>
<div id="info">
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> - head controls example. 3D scene from orbit control example.
</div>
<script type="text/javascript" src="../../../libs/threejs/v90/three.min.js"></script>
<!-- JEEFACEFILTER API (required by HeadControls.js) -->
<script src="../../../dist/jeelizFaceFilter.js"></script>
<!-- HeadControls script -->
<script src="../../../helpers/HeadControls.js"></script>
<!-- HeadControls Wrapper (provides THREE.HeadControls) -->
<script src="ThreeHeadControls.js"></script>
<!-- This canvas will be used to display the head tracking : //-->
<canvas id='headControlsCanvas' width='512' height='512'></canvas>
<script>
var camera, controls, scene, renderer;
init();
animate(0);
function init() {
scene = new THREE.Scene();
scene.background = new THREE.Color( 0xcccccc );
scene.fog = new THREE.FogExp2( 0xcccccc, 0.002 );
renderer = new THREE.WebGLRenderer();
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
var container = document.getElementById( 'container' );
container.appendChild( renderer.domElement );
camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 1000 );
camera.position.z = 500;
//instantiate HEAD CONTROLS
var NNCpath='../../../dist/'; //where to find NNC.json from the current path
controls = new THREE.HeadControls( camera, 'headControlsCanvas', NNCpath );
//controls.enableZoom = false;
//tweak sensibility parameters
controls.sensibilityZ=1.5;
controls.sensibilityRotateX=0.003;
controls.sensibilityRotateY=0.003;
// world
var geometry = new THREE.CylinderGeometry( 0, 10, 30, 4, 1 );
var material = new THREE.MeshPhongMaterial( { color: 0xffffff, flatShading: true } );
for ( var i = 0; i < 500; i ++ ) {
var mesh = new THREE.Mesh( geometry, material );
mesh.position.x = ( Math.random() - 0.5 ) * 1000;
mesh.position.y = ( Math.random() - 0.5 ) * 1000;
mesh.position.z = ( Math.random() - 0.5 ) * 1000;
mesh.updateMatrix();
mesh.matrixAutoUpdate = false;
scene.add( mesh );
}
// lights
var light = new THREE.DirectionalLight( 0xffffff );
light.position.set( 1, 1, 1 );
scene.add( light );
var light = new THREE.DirectionalLight( 0x002288 );
light.position.set( -1, -1, -1 );
scene.add( light );
var light = new THREE.AmbientLight( 0x222222 );
scene.add( light );
window.addEventListener( 'resize', onWindowResize, false );
}
function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize( window.innerWidth, window.innerHeight );
}
function animate() {
requestAnimationFrame( animate );
renderer.render( scene, camera );
}
</script>
</body>
</html>