import * as THREE from 'three'; export default class Renderer { constructor(experience) { this.experience = experience; this.canvas = this.experience.canvas; this.sizes = this.experience.sizes; this.scene = this.experience.scene; this.camera = this.experience.camera; this.setInstance(); } setInstance() { this.instance = new THREE.WebGLRenderer({ canvas: this.canvas, antialias: true, alpha: true, logarithmicDepthBuffer: true }); // this.instance.toneMapping = THREE.CineonToneMapping; // this.instance.toneMappingExposure = 1.75; // this.instance.shadowMap.enabled = true; // this.instance.shadowMap.type = THREE.PCFSoftShadowMap; this.instance.setSize(this.sizes.width, this.sizes.height); this.instance.setPixelRatio(this.sizes.pixelRatio); } resize() { this.instance.setSize(this.sizes.width, this.sizes.height); this.instance.setPixelRatio(this.sizes.pixelRatio); } update() { this.instance.render(this.scene, this.camera.instance); } destroy() { this.instance.dispose(); this.instance.domElement.remove(); } }