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

如何正确编码GLTF同时保留场景中其他网格和纹理的原有编码设置

解决方案

共有两种常用的实现方式,你可以根据项目复杂度选择:

方案1:仅对GLTF做编码适配,全局保持线性编码输出

全局保持renderer.outputEncoding为默认的LinearEncoding,不对全场景做统一sRGB转换,只针对GLTF内部的颜色类纹理做编码配置:

  • GLTF资源加载完成后,遍历所有模型节点的材质
  • 对颜色类贴图(基础色贴图map、环境贴图envMap、漫反射贴图等)设置[贴图变量].encoding = THREE.sRGBEncoding
  • 法线、金属度、粗糙度等数据类贴图不需要修改编码配置
  • 修改完成后设置material.needsUpdate = true触发材质更新

该方案下场景内的THREE.VideoTexture等其余资源全程走线性空间,不会被额外做编码转换。

方案2:保留全局sRGB输出配置,单独适配VideoTexture

如果不想批量修改GLTF材质,可以继续保留renderer.outputEncoding = THREE.sRGBEncoding的设置,仅调整视频纹理的编码属性抵消全局转换的影响:
直接设置videoTexture.encoding = THREE.sRGBEncoding,Three.js会自动对原生为sRGB格式的视频流做适配,避免被全局输出编码二次转换导致过曝,改造成本更低。


过曝问题示例:
浅背景下的Head5实拍图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:54:03