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