我正在使用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
再次沒有... –