РЕДАКТИРОВАТЬ 1: Включено шейдерИзменение уровня непрозрачности в OpenGL ES 2.0
EDIT 2: включено экран выстрелы
РЕДАКТИРОВАТЬ 3: В комплекте с экраном выстрел из исходной текстуры
EDIT 4
EDIT 5: Я думаю, проблема в том, что мои растровые изображения имеют частично прозрачные пиксели в них, чтобы начать с них, поэтому я задам новый вопрос, так как приведенный здесь ответ правильный для этого вопроса.
При ближайшем рассмотрении проблема не совсем решена, цвета не выглядят правильно.
String strFShader =
"precision mediump float;" +
"uniform float Opacity;" +
"varying vec2 v_texCoords;" +
"uniform sampler2D u_baseMap;" +
"void main()" +
"{" +
"gl_FragColor = texture2D(u_baseMap, v_texCoords);" +
"gl_FragColor.a *= Opacity;"+
"}";
И тогда в моем методе визуализации:
//Enable and set mode
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
//Draw
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
//Disable
GLES20.glDisable(GLES20.GL_BLEND);
Таким образом, при максимальной прозрачности (0.0), это все хорошо, то есть ничто не обращается. Однако на любом другом уровне, это не совсем верно, например, при нулевой прозрачности (непрозрачность до 1,0), это то, что я получаю:
[введите описание изображения здесь] [1]
Но это надо! на самом деле выглядеть следующим образом:
[введите описание изображения здесь] [2]
цвета выглядит слишком темным, и (на исходном изображении), то очень немного темный край действительно выражен.
Я предполагаю, что это как-то связано с режимом наложения? В основном я просто после эффекта, который можно получить в Photoshop, при изменении непрозрачности одного слоя над другим. Любые другие предложения были бы очень полезными.
Я также попробовал найденное решение здесь:
Но я получаю те же результаты?
Спасибо :-)
Спасибо за это, это очень ценится. Я редактировал свой вопрос, чтобы включить мои шейдеры. Пожалуйста, не могли бы вы показать, как я буду реализовывать это в своих шейдерах. Я все еще не на 100% понятен, потому что я использую текстуры - спасибо! – Zippy
Пересмотренный. См. Редактирование, которое я сделал. –
Еще раз спасибо за вашу постоянную помощь, я добавил несколько снимков экрана, чтобы показать, что происходит, когда я реализую это - любую идею, в которой я ошибаюсь? Еще раз спасибо – Zippy