小编M_g*_*bal的帖子

在片段着色器opengl中无法传递均匀的颜色

我正在使用openGL 3.1并使用QGL函数进行编程.我无法将统一的vec4 mycolor传递给片段着色器我使用以下命令初始化我的程序:

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");
Run Code Online (Sandbox Code Playgroud)

然后我尝试发送颜色

 GLfloat color[] = {
        0.0f, 1.0f, 0.0f, 1.0f    };
glUniform4fv(m_mycolor, 4, color);
Run Code Online (Sandbox Code Playgroud)

我的片段着色器是:

 static const char *fragmentShaderSource =
    "uniform vec4 mycolor;\n"
    "void main() {\n"
    "   gl_FragColor = mycolor;\n"
    "}\n";
Run Code Online (Sandbox Code Playgroud)

我什么也没看到

opengl fragment-shader

3
推荐指数
1
解决办法
6007
查看次数

python函数中的最大递归深度错误

我在该行中遇到最大递归深度错误if hasattr(self, '_ubuffer')。有人可以看到我在做什么错吗?该函数的完整代码为:

def __getattr__(self, name):
        if hasattr(self, '_ubuffer'):
            buffer = object.__getattribute__(self,'_ubuffer')
            if name in buffer.dtype.names:
                return buffer.data[name]
        return object.__getattribute__(self,name)
Run Code Online (Sandbox Code Playgroud)

python recursion exception-handling

2
推荐指数
1
解决办法
750
查看次数

qt中如何获取视口大小

如何在qt opengl中获取视口的大小(以像素为单位)并将其转换为Vec2f?我的着色器需要它。

我知道 getWindowSize()。

opengl qt

-2
推荐指数
1
解决办法
9397
查看次数