Как передать много произвольных данных плавания в фрагментный шейдер с 1D -текстурой в каждом кадре? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как передать много произвольных данных плавания в фрагментный шейдер с 1D -текстурой в каждом кадре? [закрыто]

Сообщение Anonymous »

потребуется отправить большой массив поплавков в графический процессор в каждом кадре, и ему сказали * Сделать это с текстурой. Следующий мелкий тест просто выводит черный, когда он должен мигать.

Код: Выделить всё

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.


Подробнее здесь: https://stackoverflow.com/questions/796 ... -a-1d-text
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»