|
@@ -95,10 +95,11 @@
|
|
|
<script src="../build/three.js"></script>
|
|
|
<script src="js/shaders/SSAOShader.js"></script>
|
|
|
<script src="js/controls/OrbitControls.js"></script>
|
|
|
+ <script src="js/libs/stats.min.js"></script>
|
|
|
|
|
|
<script>
|
|
|
|
|
|
- var camera, scene, renderer, controls;
|
|
|
+ var camera, scene, renderer, controls, stats;
|
|
|
var target;
|
|
|
var postScene, postCamera;
|
|
|
var supportsExtension = true;
|
|
@@ -108,12 +109,14 @@
|
|
|
|
|
|
function init() {
|
|
|
|
|
|
- renderer = new THREE.WebGLRenderer( { canvas: document.querySelector('canvas') } );
|
|
|
+ renderer = new THREE.WebGLRenderer( { canvas: document.querySelector( 'canvas' ) } );
|
|
|
+
|
|
|
+ if ( !renderer.extensions.get( 'WEBGL_depth_texture' ) ) {
|
|
|
|
|
|
- if ( !renderer.extensions.get('WEBGL_depth_texture') ) {
|
|
|
supportsExtension = false;
|
|
|
- document.querySelector('#error').style.display = 'block';
|
|
|
+ document.querySelector( '#error' ).style.display = 'block';
|
|
|
return;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
renderer.setPixelRatio( window.devicePixelRatio );
|
|
@@ -121,6 +124,9 @@
|
|
|
|
|
|
//
|
|
|
|
|
|
+ stats = new Stats();
|
|
|
+ document.body.appendChild( stats.dom );
|
|
|
+
|
|
|
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 50 );
|
|
|
camera.position.z = -4;
|
|
|
|
|
@@ -155,10 +161,10 @@
|
|
|
function setupPost () {
|
|
|
|
|
|
// Setup post processing stage
|
|
|
- postCamera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1);
|
|
|
- var postMaterial = new THREE.ShaderMaterial({
|
|
|
- vertexShader: document.querySelector('#post-vert').textContent.trim(),
|
|
|
- fragmentShader: document.querySelector('#post-frag').textContent.trim(),
|
|
|
+ postCamera = new THREE.OrthographicCamera( -1, 1, 1, -1, 0, 1 );
|
|
|
+ var postMaterial = new THREE.ShaderMaterial( {
|
|
|
+ vertexShader: document.querySelector( '#post-vert' ).textContent.trim(),
|
|
|
+ fragmentShader: document.querySelector( '#post-frag' ).textContent.trim(),
|
|
|
uniforms: {
|
|
|
cameraNear: { value: camera.near },
|
|
|
cameraFar: { value: camera.far },
|
|
@@ -166,20 +172,21 @@
|
|
|
tDepth: { value: target.depthTexture }
|
|
|
}
|
|
|
});
|
|
|
- var postPlane = new THREE.PlaneGeometry(2, 2);
|
|
|
- var postQuad = new THREE.Mesh(postPlane, postMaterial);
|
|
|
+ var postPlane = new THREE.PlaneBufferGeometry( 2, 2 );
|
|
|
+ var postQuad = new THREE.Mesh( postPlane, postMaterial );
|
|
|
postScene = new THREE.Scene();
|
|
|
- postScene.add(postQuad);
|
|
|
+ postScene.add( postQuad );
|
|
|
|
|
|
}
|
|
|
|
|
|
function setupScene () {
|
|
|
- var diffuse = new THREE.TextureLoader().load('textures/brick_diffuse.jpg');
|
|
|
+
|
|
|
+ var diffuse = new THREE.TextureLoader().load( 'textures/brick_diffuse.jpg' );
|
|
|
diffuse.wrapS = diffuse.wrapT = THREE.RepeatWrapping;
|
|
|
|
|
|
// Setup some geometries
|
|
|
- var geometry = new THREE.TorusKnotGeometry(1, 0.3, 128, 64);
|
|
|
- var material = new THREE.MeshBasicMaterial({ color: 'blue' });
|
|
|
+ var geometry = new THREE.TorusKnotBufferGeometry( 1, 0.3, 128, 64 );
|
|
|
+ var material = new THREE.MeshBasicMaterial( { color: 'blue' } );
|
|
|
|
|
|
var count = 50;
|
|
|
var scale = 5;
|
|
@@ -187,17 +194,17 @@
|
|
|
for ( var i = 0; i < count; i ++ ) {
|
|
|
|
|
|
var r = Math.random() * 2.0 * Math.PI;
|
|
|
- var z = (Math.random() * 2.0) - 1.0;
|
|
|
- var zScale = Math.sqrt(1.0 - z * z) * scale;
|
|
|
+ var z = ( Math.random() * 2.0 ) - 1.0;
|
|
|
+ var zScale = Math.sqrt( 1.0 - z * z ) * scale;
|
|
|
|
|
|
- var mesh = new THREE.Mesh(geometry, material);
|
|
|
+ var mesh = new THREE.Mesh( geometry, material );
|
|
|
mesh.position.set(
|
|
|
- Math.cos(r) * zScale,
|
|
|
- Math.sin(r) * zScale,
|
|
|
+ Math.cos( r ) * zScale,
|
|
|
+ Math.sin( r ) * zScale,
|
|
|
z * scale
|
|
|
);
|
|
|
- mesh.rotation.set(Math.random(), Math.random(), Math.random());
|
|
|
- scene.add(mesh);
|
|
|
+ mesh.rotation.set( Math.random(), Math.random(), Math.random() );
|
|
|
+ scene.add( mesh );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -228,6 +235,8 @@
|
|
|
// render post FX
|
|
|
renderer.render( postScene, postCamera );
|
|
|
|
|
|
+ stats.update();
|
|
|
+
|
|
|
}
|
|
|
|
|
|
</script>
|