我想在两个顶点之间画一条线。但是,我事先并不知道这两点。
我想要做的是上传一个顶点缓冲区,其中两个顶点位于(0,0,0)。然后,在绘制调用之前,即在glDrawArrays(GL_LINES,0,1)之前,尝试使用单独的模型矩阵转换两个顶点。我正在使用一个着色器程序。为了解释它,有点像我知道fromVertex和toVertex,我想画一条线。我想应用模型矩阵1,将顶点1从(0,0,0)转换为fromVertex,将模型矩阵2转换为将顶点2从(0,0,0)转换为toVertex。
uniform mat4 projection;
uniform mat4 camera;
uniform mat4 model;
in vec3 vert;
in vec2 vertTexCoord;
in vec3 vertColor;
out vec2 fragTexCoord;
out vec3 fragColor;
void main() {
// Pass the tex coord straight through to the fragment shader
fragTexCoord = vertTexCoord;
fragColor = vertColor;
// Apply all matrix transformations to vert
gl_Position = projection * camera * model * vec4(vert, 1);
}
我无法将其转换为代码,因为我无法想到在绘制直线时将顶点着色器中的模型矩阵均匀变量设置为两个不同的值的方法。我正在考虑使用比例和/或旋转操作来实现这一目标。但是,我猜测必须有一种更简单的方法来做到这一点。
答案 0 :(得分:0)
我试图在渲染循环中不使用glBufferData来解决这个问题。只需使用它并上传顶点就可以解决这个问题。