Здравствуйте.
Не подскажете где я мог чего упустить.
Я шейдером рисую во фреймбуфер четыре точки разного цвета. (Потом это будут координаты вершин).
Потом я считываю в TmpBuf то, что получилось (числа как то более понятно чем цвета) и следом рисую квадратик используя фрейбуфер как текстуру.
В OpenGL 2.1 В режиме GL_TEXTURE_2D я вижу квадртик состоящий из 4 разноцветных квадратиков (как и ожидалось).
В OpenGL 3.2 В режиме GL_TEXTURE_2D я вижу квадртик с плавными переходами цветов, цвета переходят как повертикали так и по горизонтали.
В OpenGL 3.2 В режиме GL_TEXTURE_RECTANGLE я вижу квадртик одного цвета.
Во всех случаях в TmpBuf числа похожие на правду и они меняются в зависимости от входных данных, но квадратик в GL_TEXTURE_RECTANGLE всегда однотонный (темно-желтый).
GlslProgram.bind;
GlslProgram.setTexture ( 'TextureVertex', 0 );
FrameBuffer.bind;
startOrtho(2, 2);
drawQuadsRect(2, 2);
endOrtho;
GlslProgram.unbind;
SetLength(TmpBuf, FrameBuffer.getWidth * FrameBuffer.getHeight * 4 );
glReadPixels ( 0, 0, FB.getWidth, FB.getHeight , GL_RGBA, GL_FLOAT, TmpBuf );
DrawQuads(...);
Один код на разных драйверах дает разный резельтат
Страница: 1
Сообщений 1 страница 1 из 1
Поделиться12011-12-20 18:44:51
Страница: 1