将 czm_material czm_getMaterial(czm_materialInput materialInput) { czm_material material = czm_getDefaultMaterial(materialInput); material.diffuse = 1.5 * color.rgb; vec2 st = materialInput.st; vec3 str = materialInput.str; float dis = distance(st, vec2(0.5, 0.5)); float per = fract(time); if (abs(str.z) > 0.001) { discard; } if (dis > 0.5) { discard; } else { float perDis = 0.5 / count; float disNum; float bl = .0; for (int i = 0; i <= 9; i++) { if (float(i) <= count) { disNum = perDis *float(i) - dis + per / count; if (disNum > 0.0) { if (disNum < perDis) { bl = 1.0 - disNum / perDis; } else if(disNum - perDis < perDis) { bl = 1.0 - abs(1.0 - disNum / perDis); } material.alpha = pow(bl, gradient); } } } } return material; } 翻译成成cesium webgl2标准
时间: 2024-01-07 08:04:19 浏览: 116
Here is the translation of the code into Cesium WebGL2 standard:
```javascript
function czm_getMaterial(materialInput) {
var material = czm_getDefaultMaterial(materialInput);
material.diffuse = color.rgb.multiply(1.5);
var st = materialInput.st;
var str = materialInput.str;
var dis = Cesium.distance(st, new Cesium.Cartesian2(0.5, 0.5));
var per = Cesium.fract(time);
if (Math.abs(str.z) > 0.001) {
discard;
}
if (dis > 0.5) {
discard;
} else {
var perDis = 0.5 / count;
var disNum;
var bl = 0.0;
for (var i = 0; i <= 9; i++) {
if (i <= count) {
disNum = perDis * i - dis + per / count;
if (disNum > 0.0) {
if (disNum < perDis) {
bl = 1.0 - disNum / perDis;
} else if (disNum - perDis < perDis) {
bl = 1.0 - Math.abs(1.0 - disNum / perDis);
}
material.alpha = Math.pow(bl, gradient);
}
}
}
}
return material;
}
```