Это рабочий пример с числами с плавающей запятой:
Код: Выделить всё
float Test[5][2] = { 2.0f, 2.0f };
GLuint tex;
GLuint tbo;
glGenBuffers(1, &tbo);
glBindBuffer(GL_TEXTURE_BUFFER, tbo);
glBufferData(GL_TEXTURE_BUFFER, sizeof(Test), Test, GL_STATIC_DRAW);
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_BUFFER, tex);
glTexBuffer(GL_TEXTURE_BUFFER, GL_RG32F, tbo);
// Fragment Shader:
uniform samplerBuffer textureData;
void main()
{
vec2 TexBegin = texelFetch(textureData, 0).xy;
if (TexBegin.x == 2)
{
color = vec4(1.0, 0.0, 0.0, 1.0);
}
else
{
color = vec4(0.0, 0.0, 0.0, 1.0);
}
}
Код: Выделить всё
int Test[5][2] = { 2, 2 };
GLuint tex;
GLuint tbo;
glGenBuffers(1, &tbo);
glBindBuffer(GL_TEXTURE_BUFFER, tbo);
glBufferData(GL_TEXTURE_BUFFER, sizeof(Test), Test, GL_STATIC_DRAW);
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_BUFFER, tex);
glTexBuffer(GL_TEXTURE_BUFFER, GL_RG32I, tbo);
// Fragment Shader:
uniform samplerBuffer textureData;
void main()
{
vec2 TexBegin = texelFetch(textureData, 0).xy;
if (TexBegin.x == 2)
{
color = vec4(1.0, 0.0, 0.0, 1.0);
}
else
{
color = vec4(0.0, 0.0, 0.0, 1.0);
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... eturn-ints