效果图对比

网上的解决方案就是这些,不知道是我的threejs版本太高还是什么原因,对象里面没这些属性
// gltf.scene.traverse(function (child) {
// if (child.isMesh) {
// child.frustumCulled = false;
// //模型阴影
// child.castShadow = true;
// //模型自发光
// child.material.emissive = child.material.color;
// child.material.emissiveMap = child.material.map;
// }
// })
后面通过[其他文档发现需要更改材质,点击这里],发现应该是模型编码的原因,只需要加上
renderer.outputEncoding = sRGBEncoding;
即可(默认情况下threeJS会使用线性编码(LinearEncoding)的方式渲染材质,因此会丢失真实颜色,需要改用RGB模式编码(sRGBEncoding)进行对材质进行渲染。)
本文介绍了在Three.js高版本中遇到的模型渲染问题,重点在于如何通过更改材质编码从线性到sRGB,以解决模型颜色丢失问题。作者分享了解决步骤和关键代码段,包括设置`renderer.outputEncoding = sRGBEncoding;`。
1484

被折叠的 条评论
为什么被折叠?



