Я пытаюсь создать шейдер фрагмента opengl-es, который заменит белые пиксели альфа. Изображение с клетчатым фоном - это то, что я хочу. Модифицированный фон представляет изображение после альфа-преобразования. Какие-нибудь советы? Обычно мне не хотелось бы спрашивать об этом здесь, но я ничего не могу найти.Как сделать фрагментарный шейдер заменить белый на alpha, opengl-es
ответ
Получение «белых пикселей», как в изображении вы публикуемую, кажется, становится черно-белую составляющую. То, что подытоживает значения RGB делящиеся на 3. Затем выход RGB все +0,0 в вашем случае и альфа равен полутонового пикселя ...
vec4 textureSample = texture2D(uniformTexture, textureCoordinate);
lowp float grayscaleComponent = textureSample.x*(1.0/3.0) + textureSample.y*(1.0/3.0) + textureSample.z*(1.0/3.0);
gl_FragColor = lowp vec4(.0, .0, .0, grayscaleComponent);
Собственно говоря, значение полутоновой является 0,2126 * R + 0,7152 * G + 0.0722 * B http://en.wikipedia.org/wiki/Grayscale
Это, к сожалению, очень спорно. Хотя этот подход, скорее всего, лучше всего подходит для работы с фотографиями, полученными в реальном времени, он может быть непригоден для большинства образованных компьютером изображений. Просто представьте, что вы попытаетесь сделать изображение в градациях серого, которое использует только компонент синего цвета, используя уравнение, которое вы разместили. Результат будет довольно темным, самый легкий пиксель будет преобразован примерно в 7,2% ... Такие цвета не являются естественными и не являются общими на фотографиях. –
- 1. мультисэмплинг и фрагментарный шейдер
- 2. Как «применить фрагментарный шейдер к GLSurfaceView/TextureView»?
- 3. YUV Преобразование через фрагментарный шейдер
- 4. Простой фрагментарный шейдер в Three.js
- 5. GLFW - Невозможно скомпилировать фрагментарный шейдер
- 6. Corrupt Vertex и фрагментарный шейдер
- 7. Использовать только фрагментарный шейдер в libGDX?
- 8. Как изменить фрагментарный шейдер киви RenderContext?
- 9. Как использовать фрагментарный шейдер от glslsandbox.com
- 10. Как применить фрагментарный шейдер к каждому пикселю?
- 11. Выполнять фрагментарный шейдер только для видимых пикселей
- 12. OpenGL - glDrawElementsInstanced - фрагментарный шейдер и неправильные цвета
- 13. Возможно ли манипулирование процессом интерполяции с вершины на фрагментарный шейдер?
- 14. Пиксельный шейдер всегда возвращался белый
- 15. Как фрагментарный шейдер определяет количество фрагментов из вывода вершинного шейдера?
- 16. Выполняет ли фрагментарный шейдер все пиксели из вершинного шейдера?
- 17. Android 2.3 - cant компиляция openGL 2.0 ES фрагментарный шейдер
- 18. trjs фрагментарный шейдер с использованием переработанных буферов кадров
- 19. Текстура загружена и связана, но фрагментарный шейдер не отображает ее
- 20. Ни вертекс-шейдер, ни фрагментарный шейдер не компилируются после загрузки из файла
- 21. Можно ли написать фрагментарный шейдер, который может сделать краю модели другим цветом в OpenGL ES 2.0?
- 22. android/opengles alpha текстуры не полупрозрачные, но бинарные прозрачные
- 23. Заменить белый интервал
- 24. Three.js png texture - alpha выглядит как белый вместо прозрачного
- 25. Как использовать фрагментарный шейдер для рисования сферической иллюзии в OpenGL ES?
- 26. Мой фрагментарный шейдер в программе WebGL устанавливает все цвета из моей текстуры в черный
- 27. Как получить вершины, из-за которых вызывается фрагментарный шейдер в OpenGL ES?
- 28. Как нарисовать красные линии, если я использовал фрагментарный шейдер для текстуры?
- 29. OpenGLES 2.0: эквивалент gl_VertexID?
- 30. Как сделать шейдер для преобразования в azimuthal_equidistant
Возможно, текстура растрового изображения может быть? – Nooble