Какова функция fps glsl, фактически используемая для?
Каждый раз, когда я пьяную просматриваю, я вижу вопрос без ответа.
И это заставляет меня задаться вопросом, что на самом деле было предназначено для этого.
Чтение документов это:
abs (dFdx (p)) + abs (dFdy (p)).
Итак, это не классический выбор mip, который является max (dx, dy).
Это для альтернативного выбора мака? Но я не могу найти случай, когда абс (dx) + abs (dy) будет лучше.
Должна быть какая-то бумага сигграфа или общий алгоритм, который я полностью потерял, используя эту функцию. И это должно быть действительно популярно, потому что оно превратилось в GLSL.
Единственное, что я могу придумать, - это фильтр 2d, который мне не хватает.
Но что?
Я уверен, что кто-то здесь знает, и как только вы это увидите, это очевидно.
Итак: какой алгоритм использует abs (dx) + abs (dy)?
Ответы
Ответ 1
На самом деле вы действительно на деньги с предложением 2D-фильтрации. Любой фильтр, который опирается на какой-то показатель для скорости изменения между пикселем и его соседями, может воспользоваться этой функцией.
Примерами могут быть сглаживание, обнаружение краев, анизотропная фильтрация. Я уверен, что есть больше примеров, о которых можно было бы подумать.
По вашему вопросу и комментариям кажется, что вы ожидаете, что это разумная причина для включения этой функции в GLSL. Я бы просто сказал, что это полезная функция. Возможно, кто-то с более глубокими знаниями о фактических внутренних компонентах этой функции может предоставить более подробную информацию о том, что происходит за кулисами (т.е. Если есть какое-либо улучшение производительности над рукописным эквивалентом с dFdx и dFdy).
Ответ 2
это полная производная для функции DF = dF/dx * dx + dF/dy * dy. См. сходство?
fWidth >= DF или в словах fWidth - максимально возможное изменение в переменной фрагмента F между любым из соседних пикселей текущего фрагмента. т.е. 8 окружающих пикселей в окрестности 3x3.