Articles of glsl

Сбой локальных переменных GLSL ES?

Я пытаюсь реализовать некоторые шейдеры из онлайн-учебников (lighthouse3d.com) в моем движке OpenGL ES 2.0. Проблема в том, что по какой-то причине ЛЮБЫЕ переменные, объявленные в области main (), приводят к сбою всего шейдера. Например, это не удается: void main(){ vec4 color; gl_FragColor = vec4(1.0, 0.5, 0.5, 1.0); } Но это прекрасно работает: void main(){ //vec4 […]

Нарисуйте текст или изображение в потоке камеры (GLSL)

У меня есть приложение для прямого трансляции, основанное на примерах графики , где я отправляю свой видеопоток по RTMP для прямой трансляции. Теперь я хочу пометить свое видео, наложив текст или логотип на свой видеопоток. Я знаю, что это можно сделать с помощью фильтрации GLSL, но я понятия не имею, как реализовать это на основе […]

Тестирование Android GLSL

Недавно я столкнулся с ошибкой компиляции фрагмента шейдера на определенных устройствах (при компиляции% 90 успешно прошла) Каков общий подход для тестирования шейдеров? Я там какой-нибудь сервис, который может помочь выполнить компиляцию шейдеров на разных устройствах Android?

Как ускорить загрузку / компиляцию шейдеров на Android

Я написал OpenGL живые обои для Android, которые используют 17 пиксельных и 17 вершинных шейдеров. На моем HTC Legend они занимают около 3 секунд для загрузки и компиляции. Время загрузки составляет около 20% от этого, остальные компилируются. Живые обои имеют контекст OpenGL, каждый раз, когда запускается полноэкранное приложение, и когда обои становятся видимыми снова, все […]

Можно ли деформировать базовое изображение с помощью OpenGL ES 2.0?

У меня есть приложение Android 4.0, которое использует GL_OES_EGL_image_external метод рендеринга видео в качестве поверхности OpenGL. Это отлично работает. Кроме того, я хотел бы растянуть / деформировать несколько патчей поверх этого. В настоящее время я затеняю те области, которые я хотел бы деформировать с некоторыми дополнительными шейдерами на некоторых квадрациклах поверх этих областей. Я зациклился […]

Android OpenGL Render to frameBuffer в исходном (малом) разрешении, а затем масштабирует его (viewPort) до размера экрана

У меня есть видеокамера NV21 (YUV420), в которой я применяю к ней фрагментарный шейдер, чтобы получить некоторые эффекты фильтра и YUV для преобразования RGB. Все работает, кроме плохой производительности. Мой фрагментарный шейдер немного тяжелый, потому что он имеет много textur2D() . Исходное разрешение кадра 480×640 пикселей, и я заметил, что если я устанавливаю видовое окно […]

For-loop в шейдерном коде, работающем с жестким кодом, но не с однородной переменной

Я попросил о помощи по проблеме OpenGL ES 2.0 в этом вопросе . Кажется, что ответ очень странный для меня. Поэтому я решил задать этот вопрос в надежде понять, что происходит. Вот фрагмент ошибочного кода вершины-шейдера: // a bunch of uniforms and stuff… uniform int u_lights_active; void main() { // some code… for ( int […]

OpenGL ES 2.0 прозрачность с использованием альфа-тестирования в шейдере

Я пытаюсь сделать прозрачный объект в OpenGL ES 2.0. Я настраиваю GL с параметрами: GLES20.glEnable(GLES20.GL_DEPTH_TEST); GLES20.glDepthFunc(GLES20.GL_LESS); GLES20.glDisable(GLES20.GL_BLEND); GLES20.glClearDepthf(1.0f); Вот код для шейдеров: private final String mVertexShader = "uniform mat4 uMVPMatrix;\n" + "attribute vec4 aPosition;\n" + "attribute vec2 aTextureCoord;\n" + "varying vec2 vTextureCoord;\n" + "void main() {\n" + " gl_Position = uMVPMatrix * aPosition;\n" + " […]

Ошибка Adreno 220 GLSL

Мы испытываем проблему с альфа-тестированием GLSL на телефоне Sony Xperia S с Adreno 220 GPU. Устройство работает под управлением Android 4.0.4. На Adreno 200, Adreno 205, Adreno 225, а также на графических процессорах Tegra2 , Mali400 и PowerVR работает нормально. Шейдерный код: // vertex uniform highp mat4 uMVPMatrix; attribute highp vec4 aPosition; attribute highp vec2 […]

Обработка видео на Android 3.x / Google TV / SDK: видеокадра для SurfaceTexture / OpenGL / GLSL

Потратив некоторое время на это, лучше спросить. Спасибо за помощь, ребята! Вопрос Как визуализировать видеокадр из MediaPlayer или VideoView в SurfaceTexture или текстуру OpenGL, чтобы изменить цвет текстуры / фрагмента с помощью GLSL? (Нам это нужно для прикольных процедур обработки видеороликов GLES / GLSL.) контекст A) Google TV (устройство LG G2 2012) – устройство Android […]