Идеальное (3D) наложение текстур в opengl

Я пытаюсь создать простую визуализацию 3D-массива в opengl. 3D-массив содержит значения цвета. Чтобы добиться этого, я мог бы просто нарисовать много кубов, дав им текстурные координаты, чтобы указать на правильный тексель. Ну, я попробовал, и это работает. Но мне нужно гораздо больше, и единственный способ достичь того, чего я хочу, - это просто нарисовать полные 2D-плоскости на каждой сетке в направлении другой оси, когда плоскость включена, и сделать это в 6 направлениях. Например, я рисую плоскость XY от -15 до +15, по координатам Z от -15 до +15, и делаю это также для задней плоскости XY, плоскости YZ, задней плоскости YZ, ... Таким образом, я могу просто поместить координаты 3D-текстуры в каждом углу, а интерполяция должна сделать все остальное.

Я взял массив-координаты как текстурные координаты, между 0 и 32, причина этого в том, что в шейдере я могу перекрыть текстурную координату и затем разделить ее на 32, чтобы получить точный тексель для каждого пикселя сетки ,

Но увы ... пиксельный шейдер постоянно сомневается в выборе, один пиксель сопоставляется с другим пикселем, отличным от следующего пикселя, в то время как следующий следующий пиксель снова корректно отображается.

Раньше я решал подобные проблемы, добавляя 0,5 или 0,35 к числам с плавающей точкой, чтобы удостовериться, что числа с плавающей точкой правильно округлены на всех аппаратных платформах, но мне все равно это кажется взломом. Кроме того, это неработать с трехмерной текстурой.

Может кто-нибудь сказать мне, как справиться с этим?

Ответы на вопрос(1)

Ваш ответ на вопрос