Я делаю простое приложение для фильтрации изображений в Android, и я реализовал фильтр нижних частот, используя тот же метод в GPUImage (https://github.com/BradLarson/GPUImage)
буферизует смесь кадров предыдущего и текущего фотоаппарата и отображает ее.
Поэтому я создал буфер FBO и отрендерил текущую текстуру камеры, повторно использовав ее в качестве текстуры для смешения в шейдерном фильтре нижних частот со следующей текстурой камеры.
Я тестировал свой код на некоторых смартфонах (Galaxy S10, Nexus 6P и т. Д.), И он работал хорошо. Однако в Galaxy S8 (Mali-G71) результат странный, и я не знаю, что было не так.
Это неправильные результаты
Вот мой код:
Fragment shader:
varying vec2 vTextureCoord;
uniform sampler2D sTexture1;
uniform float filterStrength;
void main() {
vec4 texColor0 = texture2D(sTexture, vTextureCoord);
vec4 texColor1 = texture2D(sTexture1, vTextureCoord);
gl_FragColor = mix(texColor0, texColor1, filterStrength);
}
Что может привести к такому результату?
Заранее спасибо.