Я конвертирую png в текстуры со стороны java и рисую их на пользовательских позициях на экране в 2D-поверхности. В моем случае это точка 0,0 верхний левый угол экрана. Нижний правый угол - это, например, 1024x768. Теперь я хочу реализовать что-то вроде ImageView с эффектом прокрутки. Это означает, что во время прокрутки будут некоторые текстуры, видимые только частично. Например, верхние текстуры (верхние элементы) будут пропускать верхнюю часть, а нижние текстуры (нижние элементы) пропустят нижнюю часть.OpenGL ES 2.0 - как рисовать только часть текстуры с шейдерами?
Я использую стандартные вершинные и фрагмент шейдер:
precision mediump float;
varying vec2 v_texCoord;
uniform sampler2D s_texture;
void main()
{
gl_FragColor = texture2D(s_texture, v_texCoord);
}
//------------
uniform mat4 uMVPMatrix;
attribute vec4 vPosition;
attribute vec2 a_texCoord;
varying vec2 v_texCoord;
void main()
{
gl_Position = uMVPMatrix * vPosition;
v_texCoord = a_texCoord;
}
Пусть говорят, мой ImageView немного прокручиваются, и я вижу только 70% от высоты детали верхних текстур? Первые 30% должны быть невидимыми. Как изменить шейдер вершин или фрагментов?
Я использую OpenGL ES 2.0
Спасибо
Второй способ звучит лучше для моих целей. Я думаю, что знаю, как это сделать, и я попробую это на простом примере. Я считаю, что эта тема может быть интересной для многих людей, поэтому, если кто-то может добавить простой пример, я буду очень рад. Большое спасибо. – user1063364