Я вручную генерирую MIP-карты с помощью вычислительных шейдеров, так как я не просто фильтрую, а выполняю некоторые вычисления.
Прямой подход состоит в том, чтобы для каждого текселя уровня 1 прочитать четыре соответствующих текселя на уровне 0, выполнить фильтрацию и затем записать тексель. сделайте это для всего уровня, а затем повторите для следующего уровня.
Но должен быть более быстрый способ :) вместо чтения уровня 0, записи уровня 1, а затем снова чтения уровня 1, записи уровня 2 и т. д., вероятно, более эффективно, например. прочитать тайл уровня 0, а затем итеративно записать все значения для следующих нескольких уровней в одном и том же диспетчерском вызове. Таким образом, можно было сохранить до половины прочтений.
мой вопрос, это уже было сделано? меня интересует более подробный алгоритм, который доказал свою эффективность.
В частности, я реализую алгоритм «тяни-толкай», который сначала вычисляет эти мип-уровни от наибольшего к наименьшему. На втором этапе он уточняет мип-уровни, начиная со второго к наименьшему, используя либо исходный тексель, либо интерполяцию четырех окружающих текселей на грубом мип-уровне. Эффективные схемы вычислений для этого я бы тоже хотел увидеть, но не смог найти в гугле.