Qt3d如何/在哪里将默认值分配给着色器统一?

时间:2019-06-07 05:22:53

标签: shader qt3d

在Qt的Qt 3D Wireframe QML example中,vertex shader code如下所示:

#version 330 core

in vec3 vertexPosition;
in vec3 vertexNormal;

out EyeSpaceVertex {
    vec3 position;
    vec3 normal;
} vs_out;

uniform mat4 modelView;
uniform mat3 modelViewNormal;
uniform mat4 mvp;

void main()
{
    vs_out.normal = normalize( modelViewNormal * vertexNormal );
    vs_out.position = vec3( modelView * vec4( vertexPosition, 1.0 ) );

    gl_Position = mvp * vec4( vertexPosition, 1.0 );
}

上面的uniform变量均未在示例的源代码中初始化,因此它们必须接收ShaderProgram的文档中所述的默认值,其中指出:

  

如果在着色器自省阶段遇到默认制服,Qt3D将自动填充一组默认制服。

还列出了“默认制服”的列表。

我试图在Qt源代码中找到为这些制服分配其默认值(我想是身份矩阵)的部分,但无法以某种方式进行。 有什么想法吗?

0 个答案:

没有答案