Сложность типовых методов HLSL. О(1), О(n)?

Привет всем. Я хотел знать, знает ли кто-нибудь о сложности функций выборки текстур HLSL, таких как tex2d и эквивалент DX10/11. Если текстура содержит массив пикселей, доступ к пикселю будет иметь постоянную сложность, но для доступа к пикселю он использует UV, поэтому тогда я не знаю сложности функции. Кто-нибудь знает?


person Santiago Pacheco    schedule 07.02.2013    source источник
comment
Это будет O (1), потому что на самом деле нет никакого 'n', от которого он мог бы зависеть. Он просто вычислит адрес памяти, используя предоставленные данные uv и проиндексирует память, и все это можно сделать O (1). Я не сразу нахожу ссылку, поэтому это просто комментарий.   -  person jcoder    schedule 07.02.2013
comment
Интересно, почему это должно иметь значение.   -  person Bartek Banachewicz    schedule 07.02.2013
comment
Я хотел знать, поскольку у меня есть цикл, который использует выборку текстуры на каждой итерации, поэтому я хотел знать, насколько размер текстуры повлияет на него.   -  person Santiago Pacheco    schedule 07.02.2013


Ответы (1)


O(1)

Я не знаю, как сэмплирование HLSL работает внутри, но недавно я создал свои собственные (рабочие) сэмплеры для пользовательского класса сетки. Разница в производительности вызвана выбором метода интерполяции:

Точечный пробоотборник

Семплер точек использует интерполяцию ближайшего соседа. Этот алгоритм, конечно, очень эффективен, так как UV просто округляются до ближайших целочисленных индексов пикселей.

Линейный сэмплер

Этот тип дает более хорошие результаты, так как он использует линейную интерполяцию. Предположим, что ваши UVs указывают на место между четырьмя пикселями. Затем выполняется lerp для верхних пикселей в квадрате, еще один для нижних пикселей и третий для результатов. Поскольку этот вид фильтрации включает четыре пикселя и 12 интерполяций с плавающей запятой, он не такой быстрый, как точечная выборка.

Анизотропный сэмплер

Анизотропный фильтр дает результаты (на данный момент) самого высокого качества. Это самый медленный из доступных типов.


Сравнение выборок


person Lucius    schedule 07.02.2013
comment
Текстурные фильтры, как я до этого не додумался :facepalm, спасибо, это все, что я хотел знать - person Santiago Pacheco; 07.02.2013