Intereting Posts
Приложения NFC от переопределения рынка «Завершить действие, используя» диалоговые записи Не могу найти подходящий пример для класса спрайтов android 2d opengl, который не использует GL11Ext для рисования Android Studio два варианта с различными файлами манифеста Сравнение компонентов интерфейса Android & iPhone Android-экранная клавиатура скрывает Python Kivy TextInputs AppCompat и Fragment не работают Инструмент для тестирования UI и Android от ADT21 Не может подключиться к метеориту с android-ddp после развертывания приложения метеоров Можно ли перезагрузить телефон с Android SDK или NDK? ViewPager со списком ListView. У указанного дочернего элемента уже есть родительский Android: как динамически загружать изображение с сервера по его имени из SQlite Отладчик Android Studio выделяет неправильные строки Как получить данные XML из активов в android? Создавайте подзаголовки Android, такие как iOS subviews Повторение детей в расширяемом списке

OpenGL ES 2.0 texture2D bias / lod

Я использую функции OpenGL ES 2.0 GLSL для управления изображениями. То, что я хочу достичь, – это выбрать определенный уровень детализации (LOD) при извлечении образца из текстуры из фрагментарного шейдера. По-видимому, texture2DLod() не поддерживается для texture2DLod() шейдеров в OpenGL ES 2.0 (но есть расширение GL_EXT_shader_texture_lod которое может его опционально предоставить).

Однако функция texture2D() по умолчанию обеспечивает третий необязательный смещение параметра. Насколько я понимаю, этот параметр должен быть смещением, добавленным к текущему LOD.

В моих тестах я рисую квадрат размером экрана, и я увеличиваю текстуру, масштабируя образцы координат. Я включил mipmapping для текстуры, используя GL_LINEAR_MIPMAP_LINEAR в качестве фильтра фильтрации. Результат, когда выборка с ненулевым параметром смещения на графическом процессоре ARM Mali-400 можно увидеть на изображении ниже.

ISTM, что некоторые пиксели используют фильтр минимизации, в то время как другие используют фильтр увеличения.

Как это контролируется? И как определить начальный LOD при использовании смещения? Можно ли настроить его из вершинного шейдера?

Связанный с этим вопрос следующий:

Как сэмплер GLSL определяет минимизацию и, следовательно, уровень mipmap, текстуры?

Texture2D с параметром смещения на ARM Mali-400

Обновление: я заметил, что если я пробую текстуру так, чтобы она закрывала экран, то она, похоже, делала правильный просмотр mipmap (даже если он увеличен). Теперь, если я добавлю небольшое смещение к образцам координат, тогда Я начну видеть полосу, которая видна на приведенном выше изображении (что еще больше увеличено). Если я не использую параметр смещения, я вообще не увижу никаких обвязок.