What’s on our mind?

Collection of articles, design, site, and resources made by designers and publisher @Menu View

* index29
function init() {
    container = document.getElementById('container');
    camera = new THREE.PerspectiveCamera(40, window.innerWidth / window.innerHeight, 1, 3000);
    camera.position.z = 4;
    scene = new THREE.Scene();
    clock = new THREE.Clock();

    var geometry = new THREE.TorusGeometry(0.8, 0.3, 16, 100);

    uniforms = {
        "time": {
            value: 1.0
        }
    };

    var material = new THREE.ShaderMaterial({
        uniforms: uniforms,
        vertexShader: document.getElementById('vertexShader').textContent,
        fragmentShader: document.getElementById('fragmentShader').textContent
    });

    var mesh = new THREE.Mesh(geometry, material);
    scene.add(mesh);

    renderer = new THREE.WebGLRenderer({
        antialias: true
    });
    renderer.setPixelRatio(window.devicePixelRatio);
    container.appendChild(renderer.domElement);

    // stats = new Stats();
    // container.appendChild(stats.dom);

    onWindowResize();

    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);
    render();
    // stats.update();
}

function render() {

    var delta = clock.getDelta();
    uniforms["time"].value += delta * 5;
    for (var i = 0; i < scene.children.length; i++) {
        var object = scene.children[i];
        object.rotation.y += delta * 0.5 * (i % 2 ? 1 : -1);
        object.rotation.x += delta * 0.5 * (i % 2 ? -1 : 1);
    }
    renderer.render(scene, camera);
}

function getRandom(min, max) {
    return Math.random() * (max - min) + min;
}