你好,我创建了一个平面,并偏移了1000m,视图变换后平面有些抖动,麻烦请您能给个解决方案 代码很简单,我直接铺这里了。期待您的回复。

precision highp float;
  attribute vec3 position3DHigh;
  attribute vec3 position3DLow;
  attribute float batchId;
  attribute vec4 position;
  attribute vec3 normal;
  void main() {
      // vec4 viewPosition = czm_translateRelativeToEye(position3DHigh, position3DLow);
      // gl_Position = czm_modelViewProjectionRelativeToEye*viewPosition;
      // 以上方式不抖,但不知道怎么偏移

      vec4 worldPosition = czm_model * position;
      vec3 normalWorld = normalize(mat3(czm_model) * normal);
      worldPosition.xyz += normalWorld * 1005.; // 能偏移,但视图变换会抖,精度不够?
      gl_Position = czm_viewProjection * worldPosition;
      
  }

(post deleted by author)

我会正常偏移了,但纹理坐标标又出现了问题,纹理坐标输出是黑色的,之前用模型到世界坐标,纹理坐标还是正常的 const vs =
precision highp float;
attribute vec3 position3DHigh;
attribute vec3 position3DLow;
attribute float batchId;
attribute vec4 position;
attribute vec3 normal;
attribute vec2 st;
varying vec2 v_st;
void main() {
v_st = st;
vec4 pos_ec = czm_translateRelativeToEye(position3DHigh, position3DLow);
vec3 normal_wc = normalize(mat3(czm_model) * normal);
vec4 normal_ec = normalize(mat4(czm_inverseView) * vec4(normal_wc,1.));
pos_ec.xyz += normal_ec.xyz * 1015.;
gl_Position = czm_modelViewProjectionRelativeToEye * pos_ec; //投影变换
}
; const fs =
varying vec2 v_st;
void main()
{
gl_FragColor = vec4(v_st,0.,1.);
}
;