研究的也不是很深,尝试着看剖析问题看看,有翻了之前的文章看了下:
Fabric 材质 上
Fabric 材质 下
本来想尝试看看 repeat的回调的函数,结果发现没有好的解决方案。
只能尝试更改默认的着色器代码:
let appear = new Cesium.MaterialAppearance({
flat :true ,
material: new Cesium.Material({
translucent:false,
fabric : {
type :`Image`,
uniforms : {
image:`./static/images/symbol/0301.png`
}
},
}),
vertexShaderSource://重点更改顶点着色器
`
// GLSL 300 语法,顶点着色器
in vec3 position3DHigh;
in vec3 position3DLow;
in vec3 normal;
in vec2 st;
in float batchId;
out vec3 v_positionEC;
out vec3 v_normalEC;
out vec2 v_st;
void main() {
vec4 p = czm_computePosition();
v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates
v_normalEC = czm_normal * normal; // normal in eye coordinates
v_st = st;
gl_Position = czm_modelViewProjectionRelativeToEye * p;
}
`
});
//appear.fragmentShaderSource 片元着色器
//appear.vertexShaderSource 顶点着色器
let primitive = new Cesium.Primitive({
geometryInstances: instances,
appearance: appear
});下面是说明:








问 Cesium对多个多边形进行图片贴图,每个多边形大小不一样,该怎么设置repeat值?