首页 / 浏览问题 / 三维GIS / 问题详情
cesium加载glb模型报错
6EXP 2022年08月23日
[Cesium WebGL] Fragment shader compile log: ERROR: 0:103: 'undefined' : undeclared identifier

ERROR: 0:103: 'texture2D' : no matching overloaded function found

ERROR: 0:103: 'SRGBtoLINEAR4' : no matching overloaded function found

ERROR: 0:103: '=' : dimension mismatch

ERROR: 0:103: '=' : cannot convert from 'const mediump float' to 'highp 4-component vector of float'

[Cesium WebGL] Fragment shader translation failed. An error occurred while rendering. Rendering has stopped. RuntimeError: Fragment shader failed to compile. Compile log: ERROR: 0:103: 'undefined' : undeclared identifier

ERROR: 0:103: 'texture2D' : no matching overloaded function found

ERROR: 0:103: 'SRGBtoLINEAR4' : no matching overloaded function found

ERROR: 0:103: '=' : dimension mismatch

ERROR: 0:103: '=' : cannot convert from 'const mediump float' to 'highp 4-component vector of float' Error at new RuntimeError (http://localhost:8050/Source/Core/RuntimeError.js:38:11) at createAndLinkProgram (http://localhost:8050/Source/Renderer/ShaderProgram.js:242:13) at reinitialize (http://localhost:8050/Source/Renderer/ShaderProgram.js:498:17) at initialize (http://localhost:8050/Source/Renderer/ShaderProgram.js:491:3) at ShaderProgram._bind (http://localhost:8050/Source/Renderer/ShaderProgram.js:567:3) at beginDraw (http://localhost:8050/Source/Renderer/Context.js:1240:17) at Context.draw (http://localhost:8050/Source/Renderer/Context.js:1346:3) at DrawCommand.execute (http://localhost:8050/Source/Renderer/DrawCommand.js:591:11) at executeCommand (http://localhost:8050/Source/Scene/Scene.js:2155:13) at executeTranslucentCommandsSortedMRT (http://localhost:8050/Source/Scene/OIT.js:771:5)

2 个回答

估计大概率是模型的问题了,有试过原生Cesium能加么
271EXP 2022年08月23日
我在官网下载了cesium的源码,然后在cesium示例中加载了那个glb模型,也是报这种错误,这个模型用到了自发光贴图,好像就是因为这个纹理导致加载报错,想知道怎样解决这个问题,因为需要支持加载这个模型
自发光贴图,cesium可能并不支持这种,原始用max做的话,应该可以用max那个工具大全全部转成位图然后再搞,或者贴图的话改成glow纹理的贴图,glow也算是发光贴图可以用ps搞出来。然后再重新贴。常规来说blender导出的gltf最稳定可以试试哈哈哈哈
根据报错确实好像是纹理方面的问题

您那边查看一下这个模型的纹理对应的尺寸大小呢?

512,1024亦或是更大?

也有提到着色器的问题,更换浏览器也试一下呢
4,151EXP 2022年08月23日
因为这个模型是别人提供的,所以具体的纹理尺寸不太清楚,我切换了浏览器,在其他浏览器中也报相同的错。

那可能是模型上的问题

之前有过类似报错

是白膜使用自发光纹理

最后定位是白膜拉伸的时候使用的功能不对

问题连接:http://ask.supermap.com/112645

当然也不排除是您数据的纹理问题,建议使用其他的软件进行查看

或者您这边看能否提供数据,我这边帮您测试

可以把模型给您
我要怎么给您
私信我您数据的百度云链接,或者私信我您的联系方式。
好的,我私信给你了
您是用的这个方式添加的模型吗?

viewer.entities.add({
                    name: "gltf",
                    position: position,
                    model: {
                        uri: ‘.glb’
                    }
                });
是的,利用entity添加的
您好,

经确定是您这个数据上的问题

glb应该是可以在3dmax中打开的

但是该数据在3dmax中打开失败

应该是贴图或者模型上的问题

Cesium的正常glb文件获取渠道,通常是通过3dmax去进行导出的

您可以尝试一下其他自己导出的数据能否成功
好的,谢谢您
...