我有一个基本的3D演示,使用VAO和着色器设置使用OpenGL绘制线条。
// Example vertices
float[] verts = {
1f, 1f, 1f,
0f, 0f, 0f
};
// Loading to VAO etc. as standard and enabling shader here...
// Draw call
glBindVertexArray(vaoID);
glDrawArrays(GL_LINES, 0, 2);
顶点着色器是基本的,目前没有使用模型矩阵:
gl_Position = projectionMatrix * viewMatrix * vec4(position, 1.0f);
这将输出在3D世界中正确绘制的线条,但是起点/终点仅基于顶点位置,但这并不太有用。
我的问题是:如何在世界坐标中指定起点和终点位置,并在这些点之间划一条线?
我想我需要以某种方式通过不同的模型矩阵来变换两个顶点中每个顶点的位置,但它根本不清楚它是如何工作的,以及原始顶点对于该线应该是什么。