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

**URL:** <https://community.cesium.com/t/1000m/41415>\
**Category:** CesiumJS\
**Created:** [June 17, 2025, 12:54am UTC](https://community.cesium.com/t/1000m/41415 "2025-06-17T00:54:05Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![15811399626](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/15811399626/32/28173_2.png) [@15811399626](https://community.cesium.com/u/15811399626)\
**Post date:** [June 17, 2025, 12:54am UTC](https://community.cesium.com/t/1000m/41415/1 "2025-06-17T00:54:05Z")

</div>

```
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;
      
  }

```

---

<div class="post-metadata">

**Author:** ![15811399626](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/15811399626/32/28173_2.png) [@15811399626](https://community.cesium.com/u/15811399626)\
**Post date:** [June 17, 2025, 2:27am UTC](https://community.cesium.com/t/1000m/41415/3 "2025-06-17T02:27:08Z")

</div>

我会正常偏移了，但纹理坐标标又出现了问题，纹理坐标输出是黑色的，之前用模型到世界坐标，纹理坐标还是正常的` 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.);  
}  
`;`

---

<div class="post-metadata">

**Author:** ![Luke\_McKinstry](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/luke_mckinstry/32/25557_2.png) [@Luke\_McKinstry](https://community.cesium.com/u/Luke_McKinstry)\
**Post date:** [June 17, 2025, 8:37pm UTC](https://community.cesium.com/t/1000m/41415/4 "2025-06-17T20:37:01Z")

</div>

Hi @15811399626 ,  
I responded to your original post in the [other thread](https://community.cesium.com/t/topic/41397/2) you opened. Please see my comment and I hope we can continue the conversation there.

Thanks,  
Luke
