1.91版本有自定义着色器了,不过还是得做些小操作,许多网上的倾斜摄影转换工具没有计算法线或者没有保留,积雪需要法线参与,即向上的法线则混合白色,如下着色器代码。
options.customShader = new Cesium.CustomShader({
lightingModel: Cesium.LightingModel.UNLIT,
fragmentShaderText: `
void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material)
{
vec3 normalEC = fsInput.attributes.normalEC;
vec3 normalMC = czm_inverseNormal * normalEC;
vec3 color = material.diffuse;
vec3 white = vec3(1.0,1.0,1.0);
float m = dot(normalMC, vec3(0.0,0.0,1.0));
m = pow(m,5.0);
material.diffuse = mix(color, white, clamp(m,0.0,1.0) * 0.5);
}
`,
});
OC版本增加
Cesium::gltfConfig::recalcucaluteNormal = true 参数,使制作的3dtiles能实现积雪效果