Функция Tex2D возвращает интерполированные значения, когда они находятся вне центра пикселя ((например, 0,5, 0,5)), это действительно проблема, когда у вас есть большая текстура, такая как 1920x1080.
У меня есть пиксельный шейдер HLSL, который сначала производит выборку небольшого изображения, затем вычисляет соответствующий пиксель в большой справочной таблице (1920x1080) и производит выборку. Проблема состоит в том, что ошибки точности с плавающей точкой делают невозможным попадание в мертвую точку пикселя, поэтому он возвращает цвет, интерполированный с соседними пикселями.
Как я могу преодолеть эту проблему? Могу ли я установить его не интерполировать в сэмплере?
Edit:
Очевидно, я могу использовать встроенную функцию tex2Dproj, где я делю свои координаты x и y заранее на 1.92 и 1.08, а затем передаю 1000 в качестве аргумента t.w, чтобы избежать любых значительных ошибок точности с плавающей точкой. Но мне кажется странным, что я должен это сделать.