diff --git a/src/helpers/code/hdri/three.js b/src/helpers/code/hdri/three.js index ce25608..7ca7ebd 100644 --- a/src/helpers/code/hdri/three.js +++ b/src/helpers/code/hdri/three.js @@ -13,11 +13,32 @@ export const createCode = (hdri) => [ import * as THREE from "three"; import { WebGLRenderer, Scene, PerspectiveCamera, PointLight, AmbientLight } from "three"; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"; - import { preloader } from "./loader"; + import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader"; ${lightsAndSceneSetup} - /* Add HRDI sample here */ + renderer.toneMapping = THREE.ACESFilmicToneMapping; + renderer.toneMappingExposure = 1; + + const pmremGenerator = new THREE.PMREMGenerator(renderer); + pmremGenerator.compileEquirectangularShader(); + + new RGBELoader().load("${hdri.file}", (texture) => { + const envMap = pmremGenerator.fromEquirectangular(texture).texture; + scene.background = envMap; + scene.environment = envMap; + texture.dispose(); + pmremGenerator.dispose(); + + onResize(); + animate(); + + const sphere = new THREE.Mesh( + new THREE.SphereBufferGeometry(2, 64, 32), + new THREE.MeshStandardMaterial({ metalness: 1, roughness: 0 }) + ); + scene.add(sphere); + }); ${renderSetUp} `,