Three.js 三、RGBELoader()HDR曝光量不变
我想使用siblThree.js 三、RGBELoader()HDR曝光量不变,three.js,hdr,Three.js,Hdr,我想使用sibl const loadHDR = () => { new THREE.RGBELoader().load('./resource/textures/HDR/Etnies_Park_Center_3k.hdr', (texture, textureData)=> { texture.encoding = THREE.RGBEEncoding; texture.minFilter = THREE.NearestFilter; texture
const loadHDR = () => {
new THREE.RGBELoader().load('./resource/textures/HDR/Etnies_Park_Center_3k.hdr', (texture, textureData)=> {
texture.encoding = THREE.RGBEEncoding;
texture.minFilter = THREE.NearestFilter;
texture.magFilter = THREE.NearestFilter;
texture.flipY = true;
console.log(texture)
textureData.height = 1200
textureData.width = 1200
textureData.exposure = 10
console.log(textureData)
const cubemap = new THREE.EquirectangularToCubeGenerator(texture, { resolution: 3200, type: THREE.UnsignedByteType });
exrBackground = cubemap.renderTarget;
cubeMapTexture = cubemap.update(renderer);
texture.dispose();
})
}
这是我的密码。及
console.log(textureData)
上述代码结果很好地显示了修正值。
但cubemap的曝光率并没有改变
另一个问题是读取.ibl文件
我必须读取webgl中太阳的位置,但我无法读取该文件。
我正在使用网页包。fs库不存在。我也在尝试用RGBELoader调整曝光。看起来您必须将其设置为渲染器的属性,因为您列出的属性仅由回调函数中的模块返回。他们不会“设置”任何东西 自您提出此问题以来,与环境地图相关的功能似乎发生了重大变化。例如,
THREE.equirectangleartosubegenerator
显然不再存在。它看起来像是pmremGenerator.fromEquirectangle的替代品,但我不能完全确定
这是我的代码,它加载一个等矩形图像并将其转换为立方体贴图,然后将其作为背景应用。可以使用r112中的渲染器.toneMappingExposure设置曝光。请注意,这是模块版本
new RGBELoader()
.setDataType(THREE.UnsignedByteType)
.load('filename.hdr', (hdrEquiRect, textureData) => {
hdrCubeRenderTarget = pmremGenerator.fromEquirectangular(hdrEquiRect);
pmremGenerator.compileCubemapShader();
scene.background = hdrCubeRenderTarget.texture;
renderer.toneMappingExposure = 0.5;
});
本例使用renderer.toneMappingExposure
调整HDRi背景的曝光: