Initial Commit
This commit is contained in:
64
public/main.js
Normal file
64
public/main.js
Normal file
@@ -0,0 +1,64 @@
|
||||
let scene = new THREE.Scene();
|
||||
|
||||
let camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
|
||||
camera.position.y = 2;
|
||||
camera.position.z = 5;
|
||||
camera.lookAt(new THREE.Vector3(0,0,0));
|
||||
|
||||
let renderer = new THREE.WebGLRenderer();
|
||||
renderer.antialias = true;
|
||||
renderer.setSize( window.innerWidth, window.innerHeight );
|
||||
document.body.appendChild( renderer.domElement );
|
||||
|
||||
|
||||
let keyLight = new THREE.DirectionalLight(0xffffff, 0.8);
|
||||
keyLight.position.set(-10, 10, 10);
|
||||
|
||||
let fillLight = new THREE.DirectionalLight(0xffffff, 0.3);
|
||||
fillLight.position.set(10, 10, 10);
|
||||
|
||||
let ambientLight = new THREE.AmbientLight(0xffffff, 0.3);
|
||||
|
||||
scene.add(keyLight);
|
||||
scene.add(fillLight);
|
||||
scene.add(ambientLight);
|
||||
|
||||
var mtlLoader = new THREE.MTLLoader();
|
||||
mtlLoader.setPath('models/');
|
||||
mtlLoader.load('cheese.mtl', function (materials) {
|
||||
materials.preload();
|
||||
|
||||
var objLoader = new THREE.OBJLoader();
|
||||
objLoader.setMaterials(materials);
|
||||
objLoader.setPath('models/');
|
||||
objLoader.load('cheese.obj', function (object) {
|
||||
object.name = "cheese";
|
||||
scene.add(object);
|
||||
object.position.y -= 0.75;
|
||||
});
|
||||
});
|
||||
|
||||
var animate = function (timestamp) {
|
||||
let speed = 1.2;
|
||||
let iTime = ((timestamp / 1000) * speed) % (Math.PI * 2);
|
||||
|
||||
requestAnimationFrame( animate );
|
||||
let cheese = scene.getObjectByName("cheese");
|
||||
|
||||
if(cheese) {
|
||||
cheese.rotation.y += 0.01;
|
||||
}
|
||||
|
||||
camera.zoom = 1.5 + Math.sin(iTime) / 10;
|
||||
camera.updateProjectionMatrix();
|
||||
|
||||
renderer.render(scene, camera);
|
||||
};
|
||||
|
||||
animate(0);
|
||||
|
||||
window.addEventListener( 'resize', () => {
|
||||
camera.aspect = window.innerWidth / window.innerHeight;
|
||||
camera.updateProjectionMatrix();
|
||||
renderer.setSize( window.innerWidth, window.innerHeight );
|
||||
}, false );
|
||||
Reference in New Issue
Block a user