使用MaterialProperty设置Entity的材质
//创建一个自定义MaterialProperty
class CustomMaterialProperty {
constructor(){
this.definitionChanged = new Cesium.Event();//
Cesium.Material._materialCache.addMaterial('CustomMaterial',{
fabric:{
type:"CustomMaterial",
uniforms:{
uTime:0
},
source:`
czm_material czm_getMaterial(czm_materialInput materialInput)
{
czm_material material = czm_getDefaultMaterial(materialInput);
material.diffuse = vec3(materialInput.st,uTime);
return material;
}
`
}
});
//创建一个对象 用来存储材质着色器中需要用的参数
this.params={
uTime:0,
}
gsap.to(
this.params,{
uTime:1,
duration:2,
repeat:-1,
yoyo:true
})
}
getType() {
return 'CustomMaterial';
}
getValue(time, result) {
result.uTime = this.params.uTime;
return result;
}
}
let material = new CustomMaterialProperty();
let rectangle = viewer.entities.add({
rectangle: {
coordinates: Cesium.Rectangle.fromDegrees(
-90.0,
39.0,
-85,
42.0
),
// height: 10000,
//设置entity的材质 MaterialProperty 材质属性
material: material,
},
})
材质这块的内容想要完全搞懂,感觉还是要熟悉webgl。先混个脸熟,好像大概知道那些炫酷效果如何实现的了