Что делает функция пиксельного шейдера tex1D с Texture2d - PullRequest
1 голос
/ 16 ноября 2011

Если я вызову tex1d из своего пиксельного шейдера для текстуры, которая была инициализирована как texture2d, будет ли она обрабатывать данные как одномерный массив, а затем просто возьмет элемент в той позиции, которую вы укажете?

Например, если у вас есть текстура 10 x 10 (это будет одномерный массив длиной 100 элементов), и вы вызываете tex1d (mySampler, 0.95), он вернет вам элемент 95?

1 Ответ

1 голос
/ 17 ноября 2011

Я думаю, вы найдете эту цитату (касающуюся DirectX 9, на которой построен XNA) актуальной:

Поскольку среда выполнения не поддерживает одномерные текстуры, компилятор будет использовать 2D-текстуру, зная, что координата y не важна. Поскольку tex1D (s, t) (DirectX HLSL) реализован в виде поиска 2D-текстур, компилятор может свободно выбирать y-компонент эффективным способом.

Другими словами: вы указываете координату X, а координата Y не определена.

С здесь .

Так что нет, это не развернет индексы. Но вы уже получили ответ о том, как это сделать .

...