forked from jhugheswebdev/sound-equalizer-threejs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
81 lines (65 loc) · 1.99 KB
/
script.js
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
var m_analyzer;
var m_renderer;
// var m_mouse;
var m_render_queue;
var m_blob;
var m_pbr;
var m_light;
var m_ctrl;
var m_device_checker;
var init = function(){
// device_checker
m_device_checker = new DeviceChecker();
var _is_mobile = m_device_checker.is_mobile();
var _is_retina = m_device_checker.is_retina();
// init audio input analyzer
m_analyzer = new AudioAnalyzer();
// init mouse handler
// m_mouse = new MouseHandler();
// m_mouse.register_dom_events(document.body);
// init shared renderer
var _is_perspective = true;
m_renderer = new ThreeSharedRenderer(_is_perspective);
m_renderer.append_renderer_to_dom(document.body);
m_renderer.renderer.autoClear = true;
// init pbr
m_pbr = new ThreePBR();
// init light
m_light = new ThreePointLight();
// init blob
m_blob = new NoiseBlob(m_renderer, m_analyzer, m_light);
m_blob.set_PBR(m_pbr);
if(_is_retina) m_blob.set_retina();
// setup render queue
m_render_queue = [
m_blob.update.bind(m_blob)
];
// init gui
m_ctrl = new Ctrl(m_blob, m_light, m_pbr, m_analyzer);
};
var update = function(){
requestAnimationFrame( update );
// update audio analyzer
m_analyzer.update();
// m_analyzer.debug(document.getElementsByTagName("canvas")[0]);
// update blob
m_blob.update_PBR();
// update pbr
m_pbr.exposure = 5.
+ 30. * m_analyzer.get_level();
// update light
// if(m_ctrl.params.light_ziggle)
// m_light.ziggle( m_renderer.timer );
// update renderer
if(m_ctrl.params.cam_ziggle)
m_renderer.ziggle_cam(m_analyzer.get_history());
m_renderer.render(m_render_queue);
};
document.addEventListener('DOMContentLoaded', function(){
if(window.location.protocol == 'http:' && window.location.hostname != "localhost"){
window.open("https://" + window.location.hostname + window.location.pathname,'_top');
} else {
init();
update();
}
});