Python / Kivy: Как отобразить изображение с заданным уровнем c mip? - PullRequest
0 голосов
/ 30 марта 2020

Как динамически установить текущий уровень 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 или холсту виджетов? Если это так, простой пример для начинающего будет очень кстати.

...