composer不提供内置hdr环境贴图,需外部导入;推荐poly haven、hdri haven(旧资源)、hdri hub等支持免版权且提供原生.hdr/.exr格式的站点,避免ae导出或手机拍摄的降级文件,并确保three.js中rgbeloader、pmremgenerator及effectcomposer的framebuffertype等配置匹配以保精度。

Composer 本身不提供内置 HDR 环境贴图,所有环境光都需外部导入 —— 这不是功能缺失,而是设计使然:它专注后期链管理,不托管资源。
哪些网站能直接下载可用的 .hdr/.exr 文件
必须选支持免版权、无压缩、原生浮点格式的站点,否则导入 EffectComposer 后会因精度丢失导致高光断层或反射发灰:
-
Poly Haven:免费、分类清晰、含预览球面视图,下载即为未压缩
.hdr或.exr,可直接拖进 Three.js 或 postprocessing 项目 -
HDRI Haven(已并入 Poly Haven):旧资源仍可访问,注意检查文件后缀是否为
.hdr而非.jpg变体 -
HDRI Hub:部分免费,商用需订阅;下载时务必勾选 “Download EXR” 或 “HDR (RGBE)” 选项,避开自动转成
.png的“preview”版本
为什么不能用 AE 导出的 .hdr 或手机拍的全景图
AE 里拖入的 .hdr 文件会被自动降级为 8-bit .png,Unity/C4D/Blender 中也常见类似隐式转换 —— 这类文件在 EffectComposer 里加载后,frameBufferType: HalfFloatType 就失去意义,因为输入源早已是 LDR:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 现象:环境光看起来“平”,金属反射没层次,Bloom 效果发散无力
- 验证方式:用
TextureLoader加载后打印texture.encoding,应为THREE.RGBEEncoding或THREE.RGBM7Encoding,而非THREE.sRGBEncoding - 补救:用 Python + OpenEXR 库或 exr2hdr 工具重打包,但不如源头选对格式省事
Three.js + EffectComposer 中加载 HDR 的关键配置
仅把 .hdr 文件 load 进来还不够,必须匹配渲染路径的编码与缓冲区类型,否则 HDR 信息在写入帧缓冲时就被截断:
- 加载时指定编码:
const loader = new RGBELoader().setDataType(THREE.FloatType) - 传给
PMREMGenerator(用于生成环境球 MIP 链)前,确保原始 texture 的colorSpace为THREE.NoColorSpace -
EffectComposer初始化必须设frameBufferType: THREE.HalfFloatType,若用THREE.FloatType则需 GPU 支持且性能开销大增 - 若搭配
RenderPass使用,其renderToScreen应为false,否则 HDR 值会在最后一步被 sRGB 转换硬 clipped
最容易被忽略的一点:HDR 环境贴图的旋转和强度无法靠后期节点动态调节 —— 它在 PMREMGenerator 生成预滤波立方体贴图时就固化了方向与曝光。需要运行时控制,得自己封装一个带 rotation 和 intensity uniform 的自定义环境采样 shader,而不是依赖 EffectComposer 自带的 EnvironmentPass。










