You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

three.js升级r131后环境贴图影响场景光照,如何使其仅作用于材质反射

解决方案

你可以从以下两种方案中选择适配你现有项目的实现路径:

  • 方案一:取消全局环境贴图配置,仅给MeshStandardMaterial单独配置环境贴图

    1. 移除scene.environment的全局赋值逻辑
    2. 遍历场景中所有材质实例:如果是MeshStandardMaterial或其派生的MeshPhysicalMaterial,手动给材质的envMap属性赋值你的环境贴图;MeshPhongMaterial不做任何处理
    3. 如果有动态加载的模型,在模型加载完成的回调中执行同样的材质遍历赋值逻辑即可
      该方案完全不会干扰你现有光照配置的效果,Phong材质和Standard材质的表现都会符合预期。
  • 方案二:保留全局环境贴图配置,屏蔽其对Phong材质的影响

    1. 保留原有scene.environment的全局赋值
    2. 遍历场景中所有MeshPhongMaterial实例,将其envMapIntensity参数设置为0,即可完全抵消全局环境贴图对Phong材质的光照贡献
    3. 保持MeshStandardMaterial的envMapIntensity为默认值1(或你需要的自定义强度),保证其反射效果正常
      该方案不需要调整环境贴图的赋值逻辑,只需要补充材质参数的遍历修改即可。

补充说明

r131版本新增的PMREM自动转换逻辑不影响上述两种方案的运行效果,你不需要额外修改环境贴图的预处理逻辑,两种方案都可以保留你原有的AmbientLight和随相机联动的DirectionalLight配置,无需调整原有光照逻辑。

内容的提问来源于stack exchange,提问作者kovacsv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:54:03