Init Commit
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
import * as THREE from 'three';
|
||||
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
|
||||
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
|
||||
import { UltraHDRLoader } from 'three/addons/loaders/UltraHDRLoader.js';
|
||||
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';
|
||||
|
||||
|
||||
const scene = new THREE.Scene();
|
||||
|
||||
const sizes = {
|
||||
width: window.innerWidth,
|
||||
height: window.innerHeight,
|
||||
}
|
||||
|
||||
//console.log(sizes.width + "x" + sizes.height);
|
||||
|
||||
//RENDERER
|
||||
const renderer = new THREE.WebGLRenderer({antialias:true});
|
||||
renderer.setSize( sizes.width, sizes.height );
|
||||
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
|
||||
renderer.toneMapping = THREE.ACESFilmicToneMapping;
|
||||
renderer.toneMappingExposure = 1.5;
|
||||
renderer.outputColorSpace = THREE.SRGBColorSpace;
|
||||
renderer.shadowMap.enabled = true;
|
||||
renderer.shadowMap.type = THREE.PCFShadowMap;
|
||||
document.body.appendChild( renderer.domElement );
|
||||
|
||||
//CAMERA
|
||||
const camera = new THREE.PerspectiveCamera( 65, sizes.width / sizes.height, 0.1, 1000 );
|
||||
camera.position.x = 0;
|
||||
camera.position.y = 2;
|
||||
camera.position.z = 7.5;
|
||||
|
||||
const controls = new OrbitControls( camera, renderer.domElement );
|
||||
controls.enableDamping = true;
|
||||
controls.dampingFactor = 0.05; // Friction
|
||||
controls.screenSpacePanning = false; // Vertical panning along screen
|
||||
controls.update();
|
||||
|
||||
|
||||
|
||||
|
||||
//RESIZING
|
||||
function handleResize(){
|
||||
sizes.width = window.innerWidth;
|
||||
sizes.height = window.innerHeight;
|
||||
camera.aspect = sizes.width/sizes.height;
|
||||
camera.updateProjectionMatrix();
|
||||
renderer.setSize( sizes.width, sizes.height );
|
||||
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
|
||||
}
|
||||
window.addEventListener("resize", handleResize);
|
||||
|
||||
|
||||
|
||||
//MODEL LOADER
|
||||
let core_logo_mesh;
|
||||
const loader = new GLTFLoader();
|
||||
loader.load( 'models/MBS-2408 Oreophryne anulata.glb', function ( glb ) {
|
||||
core_logo_mesh = glb.scene;
|
||||
scene.add( glb.scene );
|
||||
|
||||
}, undefined, function ( error ) {
|
||||
|
||||
console.error( error );
|
||||
|
||||
} );
|
||||
|
||||
//ENVIRONMENT
|
||||
const env_loader = new UltraHDRLoader();
|
||||
const env_texture = await env_loader.loadAsync( 'assets/studio_small_08_4k.jpg' );
|
||||
env_texture.mapping = THREE.EquirectangularReflectionMapping;
|
||||
scene.background = new THREE.Color(0xe6e6e6);
|
||||
// scene.background = env_texture;
|
||||
// scene.backgroundBlurriness = 0.5;
|
||||
scene.environment = env_texture;
|
||||
// console.log(scene.environment);
|
||||
|
||||
|
||||
//LIGHTS
|
||||
const ambient_light = new THREE.AmbientLight( 0xFFFFFF , 0.1); // soft white light
|
||||
scene.add( ambient_light );
|
||||
const sun = new THREE.DirectionalLight( 0xFFFFFF, 0.5);
|
||||
sun.castShadow = true;
|
||||
scene.add( sun );
|
||||
// const helper = new THREE.DirectionalLightHelper( sun, 5 );
|
||||
// scene.add( helper );
|
||||
|
||||
|
||||
//EFFECTS PASS
|
||||
// const composer = new EffectComposer( renderer );
|
||||
// const renderPass = new RenderPass(scene, camera);
|
||||
// composer.addPass(renderPass);
|
||||
// const bloomPass = new UnrealBloomPass(
|
||||
// new THREE.Vector2(sizes.width, sizes.height),
|
||||
// 0.35, // strength
|
||||
// 1, // radius
|
||||
// 1 // threshold
|
||||
// );
|
||||
// composer.addPass(bloomPass);
|
||||
|
||||
|
||||
|
||||
renderer.setAnimationLoop( animate );
|
||||
|
||||
function animate( time ) {
|
||||
|
||||
//cube.rotation.x = time / 2000;
|
||||
//cube.rotation.y = time / 1000;
|
||||
controls.update();
|
||||
//core_logo_mesh.rotation.y = time / 1000;
|
||||
renderer.render( scene, camera );
|
||||
//console.log(camera.position);
|
||||
// if (core_logo_mesh){
|
||||
// core_logo_mesh.rotation.y = time / 1500;
|
||||
// }
|
||||
//composer.render();
|
||||
}
|
||||
Reference in New Issue
Block a user