环境贴图选用方式

选择使用 RGBELoader 还是 TextureLoader 加载纹理,主要取决于你的纹理类型和用途。以下是两种加载器的使用场景:

复制代码
new RGBELoader()
    //设置纹理文件的路径
    .setPath('/textures/')
    //加载 HDR 环境贴图
    .load('royal_esplanade_1k.hdr', (texture) => {
      //Equirectangular映射是一种将球面图像展开成矩形的技术,广泛应用于全景图的展示
      texture.mapping = THREE.EquirectangularReflectionMapping //将纹理的映射类型设置为 Equirectangular 反射映射,这通常用于环境贴图,以实现逼真的反射效果,
      scene.background = texture //将纹理设置为场景的背景
      scene.environment = texture //将纹理设置为环境纹理
      renderer.render(scene, camera) //渲染场景
和
  const loader = new THREE.TextureLoader()
  //使用 TextureLoader 的 load 方法加载全景图像。第一个参数是图像文件的路径,第二个参数是一个回调函数,它在纹理加载完成后被调用
  const texture = loader.load('/images/panorama.jpg', () => {
    //用于生成一个立方体渲染目标,其大小基于加载的全景图像的高度
    const rt = new THREE.WebGLCubeRenderTarget(texture.image.height)
    rt.fromEquirectangularTexture(renderer, texture)
    scene.background = rt.texture
  })

使用 RGBELoader(第一个代码示例)

RGBELoader 是专门用来加载 HDR(高动态范围)环境贴图的,它支持 RGBE 格式的纹理。HDR 纹理能够存储更广泛的亮度和颜色信息,这对于创建逼真的光照和反射效果非常重要。

HDR 环境贴图:当你需要加载 HDR 格式的环境贴图时,比如 .hdr 文件,应该使用 RGBELoader。

逼真的光照和反射:HDR 纹理能够提供更真实的光照效果和反射,适用于需要高动态范围光照的场景。

ACES 色调映射:RGBELoader 加载的纹理通常与 ACES 色调映射一起使用,以获得更好的色彩和光照效果。

使用 TextureLoader(第二个代码示例)

TextureLoader 是用来加载普通的纹理图像,如 JPEG 或 PNG 文件,它不支持 HDR 格式。

普通纹理图像:当你需要加载普通的全景图或者立方体纹理时,比如 .jpg 或 .png 文件,应该使用 TextureLoader。

快速设置背景:如果你只需要快速将全景图设置为场景背景,而不需要 HDR 的高动态范围特性,使用 TextureLoader 加载纹理并转换为立方体纹理是一个简单直接的方法。

性能考虑:与 HDR 纹理相比,普通的纹理图像通常具有更小的文件大小和更快的加载时间,但牺牲了一些光照和反射的细节。

总结

如果你的项目需要使用 HDR 环境贴图来实现更逼真的光照效果,选择 RGBELoader。

如果你的项目只需要普通的全景背景或者立方体纹理,且不需要 HDR 的特性,选择 TextureLoader。

在实际应用中,这两种加载器可以根据项目的具体需求和资源选择合适的使用场景。

相关推荐
CG_MAGIC1 天前
主流 3D 模型格式(FBX/OBJ/DAE/GLTF)材质支持与转换操作指南
3d·渲染·动画·材质·贴图·3d 模型格式·材质支持与转换操作指南
渲吧-云渲染6 天前
3ds MAX文件/贴图名称乱码?6大根源及解决方案
3d·贴图
CG_MAGIC16 天前
3D 建模核心术语扫盲:拓扑、UV 展开、烘焙与 AO 贴图解析
3d·渲染·贴图·uv·拓扑·渲云渲染·ao 贴图
bug总结1 个月前
Three.js 实战:使用 PBR 贴图打造真实地面材质
材质·贴图
向宇it1 个月前
【实现100个unity特效】unity中使用ShaderGraph实现一个贴图UV循环移动滚动的指示效果
游戏·3d·unity·c#·游戏引擎·贴图·uv
小卡不对头1 个月前
电脑截图软件排行榜 Windows和mac电脑截图软件TOP10
windows·macos·电脑·笔记本电脑·贴图
Thomas_YXQ1 个月前
Unity URP法线贴图实现教程
开发语言·unity·性能优化·游戏引擎·unity3d·贴图·单一职责原则
在下胡三汉2 个月前
3dmax一键烘焙很多张贴图合并成一张贴图插件支持fbx/obj/blender多材质模型合并为一张贴图
blender·材质·贴图
在下胡三汉2 个月前
3dmax烘焙插件3dmax法线贴图烘焙教程glb和gltf元宇宙灯光效果图烘焙烘焙光影贴图支持VR渲染器
vr·贴图
weixin_377634842 个月前
【数据增强】精细化贴图数据增强
人工智能·目标检测·贴图