Как проиндексировать текстуру в виде отдельной таблицы поиска из шейдера?
Вопрос
Я пишу шейдер на GLSL, и мне нужно передать ему определенный объем информации.Единственный практичный способ передать эту информацию - это использовать одномерную текстуру.
Я создаю текстуру и сеттинг GL_TEXTURE_MIN_FILTER
и GL_TEXTURE_MAG_FILTER
Для GL_NEAREST
Теперь из шейдера мне нужно получить доступ к текстуре, чтобы я мог точно проиндексировать каждый вектор с числом 3, который я в него ввел.
Каков верный способ сделать это легко?
То, что я ищу, - это формула, которая принимает размер массива и индекс, который я хочу, и дает мне число в [0,1], которое соответствует нужному мне текселю.
Решение
idx/(size-1)
возможно?Просто сначала убедитесь, что idx и size являются плавающими значениями.
Другие советы
Только что обнаружил, что OpenGL 3.0 делает эту потребность устаревшей с введением texelFetch()
функции, которые также доступны с расширением GL_EXT_gpu_shader4