Как показывать часть объекта с другой стороны экрана?

По оси x работает так как нужно

По оси y тоже

Тут проблема. Получается нужно ещё как-то верно показывать кусочек снизу. Как это сделать?

Код шейдера

uniform vec2 uTranslate;
uniform vec2 uResolution;
varying vec2 vUv;

void main() {

  vec4 modelPosition = modelMatrix * vec4(position, 1.0);

  modelPosition.x += uTranslate.x * 1.0;
  modelPosition.y += uTranslate.y * -1.0;

  modelPosition.xy = -uResolution / 2.0 + mod(modelPosition.xy , uResolution);

  vec4 viewPosition = viewMatrix * modelPosition;
  vec4 projectedPosition = projectionMatrix * viewPosition;

  gl_Position = projectedPosition;

  vUv = uv;

}

Вот это работает для двух осей по отдельности:

modelPosition.xy = -uResolution / 2.0 + mod(modelPosition.xy , uResolution);


Ответы (0 шт):