Редактировать: убрал много беспорядка и перефразировал вопрос.
Я сохранил массив с плавающей точкой в моем шейдере, используя:
float simpleArray2D[4] = { 10.0f, 20.0f, 30.0f, 400.0f };
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, 2, 2, 0, GL_RGB, GL_FLOAT, &simpleArray2D);
Как получить доступ к определенным элементам из массива с плавающей точкой в шейдере?
Определенный фрагментный шейдеркод, показывающий, что я сделал, чтобы проверить это до сих пор, отображающий зеленый цвет, когда значение является указанным (10.0f
в данном случае), и красный, если это не так.
vec2 textureCoordinates = vec2(0.0f, 0.0f);
float testValueFloat = float(texture(floatArraySampler, textureCoordinates));
outColor = testValueFloat >= 10.0f ? vec4(0,1,0,1) : vec4(1,0,0,1); //Showed green
//outColor = testValueFloat >= 10.1f ? vec4(0,1,0,1) : vec4(1,0,0,1); //Showed red