我正在使用openGL 3.1并使用QGL函数进行编程。我无法通过在统一vec4 mycolor到片段着色器我一直在使用初始化我的程序:无法在片段着色器中传递统一颜色opengl
m_program = new QOpenGLShaderProgram(this);
m_program->addShaderFromSourceCode(QOpenGLShader::Vertex, vertexShaderSource);
m_program->addShaderFromSourceCode(QOpenGLShader::Fragment, fragmentShaderSource);
m_program->link();
m_posAttr = m_program->attributeLocation("posAttr");
m_mycolor = m_program->uniformLocation("mycolor");
m_matrixUniform = m_program->uniformLocation("matrix");
,然后我尝试
GLfloat color[] = {
0.0f, 1.0f, 0.0f, 1.0f };
glUniform4fv(m_mycolor, 4, color);
发色到我的片段着色器是:
static const char *fragmentShaderSource =
"uniform vec4 mycolor;\n"
"void main() {\n"
" gl_FragColor = mycolor;\n"
"}\n";
,我什么也没有显示
如果您对所有四个组件使用0.5f,该怎么办?有时很容易让RGBA BGRA订单混合起来,最终得到一个0 alpha通道 – faffaffaff
再次没有... –