目前我有一个简单的着色器,可以将静态网格渲染到场景中。我想知道是否有可能在我的顶点着色器中有第二个输出,它在应用投影后给我对象的 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;
}
这不起作用,因为我不能写制服,但目的是,我可以减少投影顶点以获得边界框。