Cesium CustomShader 不生效的问题
CustomShader官网文档(1.95版本):http://cesium.xin/cesium/en/Documentation1.95/CustomShader.html
一个比较刁钻的例子。
这几天想给模型贴图,学习用CustomShader,找了几个文章的demo和官方demo,都不生效,原来代码基本是这样的:
function loadTilesetTexture(tileset) {
Cesium.ExperimentalFeatures.enableModelExperimental = true;
let customShader = new Cesium.CustomShader({
...
});
tileset.customShader = customShader;
}
后来做了各种尝试包括把customShader赋值放到readyPromise之后,在加载模型时直接定义customShader,加延时,换其他类型的模型,升级Cesium等,今天才偶然发现是 enableModelExperimental 这句放的位置不对,应该放在将模型的primitive添加到scene.primitives之前:
Cesium.ExperimentalFeatures.enableModelExperimental = true;
tileset = viewer.scene.primitives.add(
new Cesium.Cesium3DTileset({
...
})
);
loadTilesetTexture(tileset);
function loadTilesetTexture(tileset) {
let customShader = new Cesium.CustomShader({
...
});
tileset.customShader = customShader;
}