Как динамически установить текущий уровень MIP отображаемого изображения (или текстуры) в Kivy?
Я хотел бы реализовать уклон в сторону более четких изображений с мип-карт, динамически переопределяя текущий уровень MIP на основе пользовательских логика масштабирования c. Я относительно новичок в python и glsl, и мне трудно понять, какие части исходного кода (если таковые имеются) могли бы помочь здесь.
Из документации Kivy я получил, что оба * Объекты 1006 * и Image/CoreImage
, используемые для отображения изображений в Kivy, имеют свойство keep_data
, которое "сохраняет данные изображения при создании текстуры «, который выглядит как объект ImageData
. ImageData
может иметь свойство mipmaps
, которое может хранить "данные для каждого mipmap" . Он также имеет метод get_mipmap()
, который "получает изображение mipmap с указанным c уровнем, если он существует" и add_mipmap()
, который msgstr "добавляет изображение для указанного c уровня mipmap" . И, глядя на исходный код kivy.core.image, рассматриваемые ImageData, кажется, доступны по адресу
Image(source="image.png", keep_data=True, mipmap=True)._coreimage.image._data
, но это список из одного элемента с несколькими свойствами, такими как размер и путь к файлу, которые хранятся в длинная строка и, по-видимому, больше ничего.
Если извлечение отдельных уровней mip невозможно из высокоуровневого уровня, может ли это быть достигнуто с помощью базового OpenGL, с результатом, доступным виджетам Kivy или холсту виджетов? Если это так, простой пример для начинающего будет очень кстати.