我是opengl的新手,我正在努力在屏幕上显示多层物体。我试图在它上面显示不同形状的图像。现在我拥有的东西:
原型代码,其中模型在给定矩形中绘制图像。我使用了最常见的概念,其中片段着色器从纹理中读取颜色信息
in vec2 texCoord;
out vec4 color;
uniform sampler2D myTexture;
void main()
{
color = texture(myTexture, texCoord);
}
使用几何着色器渲染形状的原型代码。形状的数量非常少(十几个)。
//geometry shader stub
layout(points) in;
layout(triangle_strip, max_vertices = 5) out;
in vec2 shapeDim[];
void draw_rectangle(vec4 pos, float w, float h); //etc...
void main()
{
draw_rectangle(gl_in[0].gl_Position, shapeDim[0].x, shapeDim[0].y);
}
现在我很困惑如何合并两个原型以使形状位于纹理之上。