35 lines
1.4 KiB
JavaScript
35 lines
1.4 KiB
JavaScript
xrf.frag.env = function(v, opts){
|
|
let { mesh, model, camera, scene, renderer, THREE} = opts
|
|
let env = mesh.getObjectByName(v.string)
|
|
env.material.map.mapping = THREE.EquirectangularReflectionMapping;
|
|
scene.environment = env.material.map
|
|
//scene.texture = env.material.map
|
|
renderer.toneMapping = THREE.ACESFilmicToneMapping;
|
|
renderer.toneMappingExposure = 2;
|
|
// apply to meshes *DISABLED* renderer.environment does this
|
|
const maxAnisotropy = renderer.capabilities.getMaxAnisotropy();
|
|
setTimeout( () => {
|
|
scene.traverse( (mesh) => {
|
|
//if (mesh.material && mesh.material.map && mesh.material.metalness == 1.0) {
|
|
// mesh.material = new THREE.MeshBasicMaterial({ map: mesh.material.map });
|
|
// mesh.material.dithering = true
|
|
// mesh.material.map.anisotropy = maxAnisotropy;
|
|
// mesh.material.needsUpdate = true;
|
|
//}
|
|
//if (mesh.material && mesh.material.metalness == 1.0 ){
|
|
// mesh.material = new THREE.MeshBasicMaterial({
|
|
// color:0xffffff,
|
|
// emissive: mesh.material.map,
|
|
// envMap: env.material.map,
|
|
// side: THREE.DoubleSide,
|
|
// flatShading: true
|
|
// })
|
|
// mesh.material.needsUpdate = true
|
|
// //mesh.material.envMap = env.material.map;
|
|
// //mesh.material.envMap.intensity = 5;
|
|
// //mesh.material.needsUpdate = true;
|
|
//}
|
|
});
|
|
},500)
|
|
console.log(` └ applied image '${v.string}' as environment map`)
|
|
}
|