Я работаю над рендерингом текстуры в QT с QGLWidget и QGLFramebufferObject. Мое намерение состоит в том, чтобы записывать значения с плавающей запятой в текстуру через шейдер.glclampcolor отсутствует в QT
Я использую текстуру GL_RGB32F, и RTT, похоже, происходит. Однако значения, хранящиеся в текстуре, зажаты между 0 и 1.
Контрольное значение gl_FragData [0] = vec4 (120.0, 2.0, 0.8, 1.0); в шейдере результаты в 1.0, 1.0, 0.8 в текстуре.
Я вижу сообщения, предполагающие, что вызовы glClampColor
glClampColorARB (GL_CLAMP_FRAGMENT_COLOR, GL_FALSE); glClampColorARB (GL_CLAMP_READ_COLOR, GL_FALSE);
избавится от этого зажима, но, к сожалению, я не могу найти этот вызов в QT 5.0.2. Кажется, что он удален после QT 4.3 внутри QOpenGLFunctions
Как я могу это достичь?
Класс 'QOpenGLFunctions' предназначен для обеспечения доступа к API OpenGL/ES 2.0, который не определяет' glClampColor'. Вы можете попробовать перейти на Qt 5.1, который предоставляет класс QOpenGLFunctions для каждой версии OpenGL (см. Http://qt-project.org/doc/qt-5.1/qtdoc/classes.html#o). –
как насчет зажима? http://www.opengl.org/wiki/Floating_point_and_mipmapping_and_filtering говорит, что GL_TGB32F не должен зажимать цвет? – fen