Код: Выделить всё
float data[10000];
//...fill data
//...in the render loop
float T=sin(time);//use your preferred way of getting the time
data[0]=T;
GLuint texture;
glGenTextures(1, &texture);
glActiveTexture(GL_TEXTURE0 ;
glBindTexture (GL_TEXTURE_1D, texture);
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage1D(GL_TEXTURE_1D, 0, GL_R32F, 10000, 0, GL_R32F, GL_UNSIGNED_BYTE, &data[0]);
GLint textureLoc = glGetUniformLocation(shaderProgram, "data" );
glUniform1i(textureLoc, 0);
glUseProgram(shaderProgram);
glBindVertexArray(VAO);
glDrawArrays(GL_TRIANGLES, 0, 3);
< /code>
В фрагментной шейдере: < /p>
#version 430 core
out vec4 FragColor;
uniform sampler1D data;
//...in the main section
FragColor = texelFetch(data,0,0);//this is just a test
Подробнее здесь: https://stackoverflow.com/questions/796 ... -a-1d-text