Сообщение от
Dexus
Виндовая сборка с шейдерами-шмейдерами (несколько штук в комплекте)
Интересно, есть пара вопросов по шейдерам и текстурам в OpenGL.
1) в текущем варианте на время рендеринга текстуры активируется программа шейдеров, грубо говоря сейчас схема рендеринга такая:
Код:
glUseProgram(_program);
glBindTexture(GL_TEXTURE_2D, curtxid);
glBegin(GL_TRIANGLE_STRIP);
glTexCoord2f(1.0f, 0.0f); ctx.glVertex2f(1.0f, 0.0f); // RT
glTexCoord2f(0.0f, 0.0f); ctx.glVertex2f(0.0f, 0.0f); // LT
glTexCoord2f(1.0f, 1.0f); ctx.glVertex2f(1.0f, 1.0f); // RB
glTexCoord2f(0.0f, 1.0f); ctx.glVertex2f(0.0f, 1.0f); // LB
glEnd();
glUseProgram(0);
а как сделать многопроходную обработку, где используются несколько шейдеров для каждого прохода?
Как пример, вот какой-то многопроходный вариант на шейдерах: http://www.mediafire.com/file/touakp...er.shader/file
Как доработать код для поддержки таких многопроходных шейдеров? Насколько понимаю, нужно загрузить несколько программ для каждого прохода?
2) если вызывать glTexImage2D с GL_BGRA в качестве формата, будут ли проблемы на разном железе?
Например вот так:
Код:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
bytesPerLine / 4, sizey,
0, GL_BGRA, GL_UNSIGNED_BYTE,
pBuf);