Cesium中glb模型颜色暗淡解决

问题:

3dmax导出fbx,此fbx文件导入blender中,再由blender导出成glb模型,该glb模型放入cesium中贴图颜色颜色暗沉无光,试了各种办法(泛光、时差、多光源、唯一光)效果均不明显。

原因:

发现,转格式过程中不知道哪一环出错,会导致模型材质一个叫metallicFactor的属性格式化,变成最暗的1。

解决方法:

把导出模型由glb改变为gltf文件导出(因为glb不可文本编辑)

 

把gltf文件用文本打开, 修改metallicFactor属性为0, 即可解决模型暗沉的问题。


若该方法无效,可以再尝试泛光、设置时差等

泛光:

const bloom = viewer.scene.postProcessStages.bloom;
bloom.enabled = true;
bloom.uniforms.glowOnly = false;
bloom.uniforms.contrast = 128;
bloom.uniforms.brightness = -0.45;
设置时间定在正午12点钟

const a = viewer.clock.currentTime
let now2 = new Date();
let todayNoon = new Date(now2.getFullYear(), now2.getMonth(), now2.getDate(), 12, 0, 0);
viewer.clock.currentTime = Cesium.JulianDate.fromDate(todayNoon);

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_60794435/article/details/135262045

 

 

2.关闭时间对于模型亮度的影响
viewer.scene.light = new Cesium.DirectionalLight({
direction: new Cesium.Cartesian3(0.354925, -0.890918, -0.283358)
})
3.查看gltf模型文件
1、gltf模型文件用文本打开,打开后查看materials节点,以其中一个为例进行说明。

{
"doubleSided" : true,
"name" : "Material #2145370080",
"pbrMetallicRoughness" : {
"baseColorTexture" : {
"index" : 9
},
"metallicFactor" : 0,
"roughnessFactor" : 0.858578622341156
}
},
其中:

pbrMetallicRoughness:指定了基于metallic-roughness模型的材质属性(没有显式指定的材质属性会使用属性的默认值);

baseColorFactor:包含了红,绿,蓝和alpha成分,构成了材质了基本颜色(这里设置的是亮橘色)。

metallicFactor:用于指定材质的反射情况与金属的相似度。

roughnessFactor:用于指定材质粗糙度。

 

2、检查materials节点的材质是否具有metallicFactor属性,metallicFactor的值在0-1之间,值越大,模型越暗。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_34520411/article/details/121704504

posted @ 2025-03-31 16:15  googlegis  阅读(155)  评论(0)    收藏  举报

坐标合肥,非典型GIS开发人员 GitHub