Следующее просто отображает части экрана.float data[10000];
//...fill data
//in the render loop
data[0]=T;//T is an oscilating variable, this is just for testing that the data was sent
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;
//several conditionals later
FragColor = texelFetch(data,0,0);//this is just a test
Подробнее здесь: https://stackoverflow.com/questions/796 ... -a-1d-text
Как передать много произвольных данных плавания в фрагментный шейдер с 1D -текстурой в каждом кадре? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение