Skip to content
Snippets Groups Projects
Commit db7ce626 authored by DeRycke Leanne's avatar DeRycke Leanne
Browse files

Add new file

parent 5e51962c
No related branches found
No related tags found
No related merge requests found
"use strict";import * as THREE from 'three';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { Coordinates } from './lib/Coordinates.js';
var camera, renderer;
var windowScale;
window.scene = new THREE.Scene();
var cameraControls;
var clock = new THREE.Clock();
var transparentCube; // Objet autour duquel la caméra tournera
function fillScene() {
scene = new THREE.Scene();
scene.fog = new THREE.Fog(0x808080, 2000, 4000);
// LIGHTS
scene.add(new THREE.AmbientLight(0x222222));
var light = new THREE.DirectionalLight(0xFFFFFF, 0.7);
light.position.set(200, 500, 500);
scene.add(light);
light = new THREE.DirectionalLight(0xFFFFFF, 0.9);
light.position.set(-200, -100, -400);
scene.add(light);
Coordinates.drawGround({ size: 1000 });
// Cube Transparent au Centre
var transparentMaterial = new THREE.MeshBasicMaterial({
transparent: true,
opacity: 0
});
var cubeGeometry = new THREE.BoxGeometry(100, 100, 100);
transparentCube = new THREE.Mesh(cubeGeometry, transparentMaterial);
transparentCube.position.set(0, 50, 0); // Position du cube
scene.add(transparentCube);
// Ajout du lit
var bed = new THREE.TextureLoader().load('lit.png');
var bedMaterial = new THREE.MeshBasicMaterial({ map: bed });
var bedSizeLength = 400, bedSizeHeight = 200, bedSizeWidth = 200;
var bedGeometry = new THREE.BoxGeometry(bedSizeLength, bedSizeHeight, bedSizeWidth);
bed = new THREE.Mesh(bedGeometry, bedMaterial);
//bed = new THREE.Mesh(bedGeometry);
bed.position.set(200, 100, 425);
window.scene.add(bed);
}
function init() {
var canvasWidth = 846;
var canvasHeight = 494;
var canvasRatio = canvasWidth / canvasHeight;
// RENDERER
renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.gammaInput = true;
renderer.gammaOutput = true;
renderer.setSize(canvasWidth, canvasHeight);
renderer.setClearColor(0xAAAAAA, 1.0);
// CAMERA
camera = new THREE.PerspectiveCamera(45, canvasRatio, 1, 4000);
camera.position.set(-500, 125, -100);
camera.lookAt(new THREE.Vector3(0, 0, 0));
// CONTROLS (L'utilisateur peut tourner la caméra)
cameraControls = new OrbitControls(camera, renderer.domElement);
cameraControls.enableDamping = true; // Ajoute un effet d'inertie
cameraControls.dampingFactor = 0.05;
cameraControls.rotateSpeed = 1.0;
}
function addToDOM() {
var container = document.getElementById('webGL');
var canvas = container.getElementsByTagName('canvas');
if (canvas.length > 0) {
container.removeChild(canvas[0]);
}
container.appendChild(renderer.domElement);
}
function animate() {
requestAnimationFrame(animate);
render();
}
function render() {
var delta = clock.getDelta();
cameraControls.update(); // Mise à jour des contrôles de la caméra
renderer.render(window.scene, camera);
}
// Lancement du programme
try {
init();
fillScene();
animate();
addToDOM();
} catch (e) {
var errorReport = "Your program encountered an unrecoverable error, cannot draw on canvas. Error was:<br/><br/>";
$('#webGL').append(errorReport + e);
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment