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

如何在Three.js与Blender中提升白色模型的洁白度?

模型增白调整方案

针对你想让白色模型达到更洁白的效果,结合当前Blender和网页端的表现,给出以下可行调整方案:

1. 强制覆盖模型材质,提升白色纯度

加载GLTF模型后,遍历所有网格材质,直接设置纯白基础色+适度自发光,让模型本身的白色更饱和:

loader.load(
  modelUrl,
  function (gltf) {
    globalGltf = gltf.scene
    // 遍历所有网格对象,调整材质
    globalGltf.traverse((obj) => {
      if (obj.isMesh) {
        // 设置基础色为纯白
        obj.material.color.set('#ffffff');
        // 添加自发光增强亮度,强度按需调整
        obj.material.emissive.set('#ffffff');
        obj.material.emissiveIntensity = 0.3;
        // 若为PBR材质,提高粗糙度让白色更均匀,避免局部过暗
        if (obj.material.isMeshStandardMaterial) {
          obj.material.roughness = 0.8;
        }
      }
    });
    globalGltf.scale.set(6, 15, 6)
    globalGltf.rotation.set(0, -0.2, 0)
    scene.add(globalGltf)
  },
  undefined,
  function (error) {
    console.error(error)
  }
)

2. 优化光照组合,避免暗部偏灰

当前SpotLight强度过高(7500)易导致曝光不均,改用环境光+方向光的柔和组合,保证整体亮度均匀:

// 移除原SpotLight,替换为以下光照
// 环境光:照亮暗部,保证基础亮度
const ambientLight = new THREE.AmbientLight('#ffffff', 0.8);
scene.add(ambientLight);

// 主方向光:提供立体感,强度适中
const directionalLight = new THREE.DirectionalLight('#ffffff', 1.5);
directionalLight.position.set(7.5, 5.5, 2.5);
// 可选:开启阴影增强真实感
directionalLight.castShadow = true;
directionalLight.shadow.mapSize.set(2048, 2048);
scene.add(directionalLight);

3. 开启色调映射,提升整体亮度

Three.js默认色调映射会压制亮部,开启ACES色调映射并调整曝光度,让白色更通透:

const renderer = new THREE.WebGLRenderer({
  canvas: canvas.value,
  alpha: true,
  antialias: true
});
// 启用ACES色调映射
renderer.toneMapping = THREE.ACESFilmicToneMapping;
renderer.toneMappingExposure = 1.2; // 数值越大越亮,按需微调
renderer.setPixelRatio(window.devicePixelRatio)
renderer.setSize(350, 250)
parentElement.appendChild(renderer.domElement)

4. 修正窗口Resize逻辑错误

当前Resize时会强制修改渲染尺寸为窗口大小,覆盖了初始设置的350x250,导致显示异常,修改为:

function onWindowResize() {
  // 保持渲染尺寸固定,仅更新相机比例
  camera.aspect = 350 / 250;
  camera.updateProjectionMatrix();
  // 不要修改renderer.setSize,避免破坏初始布局
}

额外Blender导出提示

确保Blender导出GLB时,已将材质的基础色设为纯白,按需开启自发光,并勾选「导出材质」选项,避免Three.js加载后材质参数偏差。

内容的提问来源于stack exchange,提问作者Robert Juszczyński

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:13:13