потребуется отправить большой массив поплавков в графический процессор в каждом кадре, и ему сказали * Сделать это с текстурой. Следующий мелкий тест просто выводит черный, когда он должен мигать.
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
, заставляя его попробовать только на половине экрана, и какой -то другой цвет в другом месте приводит к тому, что другая половина очень хорошо, поэтому проблема в том, что Texelfetch всегда возвращается 0.
потребуется отправить большой массив поплавков в графический процессор в каждом кадре, и ему сказали * Сделать это с текстурой. Следующий мелкий тест просто выводит черный, когда он должен мигать.[code]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 [/code] , заставляя его попробовать только на половине экрана, и какой -то другой цвет в другом месте приводит к тому, что другая половина очень хорошо, поэтому проблема в том, что Texelfetch всегда возвращается 0.
потребуется отправить большой массив поплавков в графический процессор в каждом кадре, и ему сказали * Сделать это с текстурой. Следующий мелкий тест просто выводит черный, когда он должен мигать. float data ;
//...fill data
//...in the render loop...
Мне нужно отправить большой массив поплавков в графический процессор каждый кадр, и мне сказали, что я должен сделать это с текстурой. Следующий мелкий тест просто выводит черный, когда он должен мигать. float data ;
//...fill data
//...in the...
Мне нужно отправить большой массив поплавков в графический процессор каждый кадр, и мне сказали, что я должен сделать это с текстурой. Следующий мелкий тест просто выводит черный, когда он должен мигать. float data ;
//...fill data
//...in the...
Следующее просто отображает части экрана.float data ;
//...fill data
//in the render loop
data =T;//T is an oscilating variable, this is just for testing that the data was sent
GLuint texture;
glGenTextures(1, &texture);
glActiveTexture(GL_TEXTURE0...
Следующее просто отображает части экрана.float data ;
//...fill data
//in the render loop
data =T;//T is an oscilating variable, this is just for testing that the data was sent
GLuint texture;
glGenTextures(1, &texture);
glActiveTexture(GL_TEXTURE0...