【发布时间】:2017-03-12 07:59:39
【问题描述】:
我正在使用 openGL 3.3 在一个窗口中绘制 4 个多边形。我的程序计算 2 个多边形(m 和 n 边)的顶点,并应用一些变换来绘制和动画 2 个 m 边和 2 个 n 边的多边形。
我的问题是我需要将 2 个多边形的顶点存储在不同的内存位置,因为我想应用不同的转换,但我无法从我的顶点着色器中检索和显示这两个对象。
#version 330
in vec3 a_vertex;
uniform mat4 transform;
void main(void)
{
gl_Position = transform * vec4(a_vertex, 1.0);
}
此着色器仅显示前 2 个对象(其顶点存储在 location 0)。如果我写layout (location = 0) in vec3 a_vertex;,也会发生同样的情况。
否则写layout (location = 1) in vec3 a_vertex;我只能看到另外两个多边形(其顶点存储在位置1)。
这似乎是合理的。现在我的问题是:如何显示所有 4 个多边形?
P.S.:我认为Multiple objects drawing (OpenGL) 上一个问题包含答案,但解释太高级了,我无法将其翻译成代码。
【问题讨论】:
-
这与硬件加速实例有关吗?
标签: c++ opengl vertex-shader