目前我有一个简单的着色器,可以将静态网格物体渲染到场景中。我想知道是否可以在我的顶点着色器中有第二个输出,它在投影应用后为我提供了我的对象的2D边界框。像这样:
#version 330 core
in vec4 Vertex_ms;
in vec4 Normal_ms;
out vec4 Normal_ws;
uniform mat4 Proj;
uniform mat4 View;
uniform mat4 Model;
uniform out vec2 topRight;
uniform out vec2 bottomLeft;
void main() {
gl_Position = Proj * View * Model * Vertex_ms;
topRight = max(gl_Position.xy, topRight);
bottomLeft = min(gl_Position.xy, bottomLeft);
Normal_ws = Model * Normal_ms;
}
这不起作用,因为我不能写制服,但目的是,我可以减少项目顶点以获得一个边界框。