下面的线,延伸无限远距离是神器。期望的是连接两个椭圆的线:
我已经检查了手动加载到VBO中的数据,用于表示线的点位于中间椭圆的中心和底部椭圆的中心。绘图的代码看起来像。
m_shaderManager->useProgram(m_handle);
glBindBuffer(GL_ARRAY_BUFFER, m_vbo); GL_CALL
m_shaderManager->enableVertexAttribArrays(m_handle, m_shaderVertexAttrib);
m_shaderManager->setUniformMatrix4X4(m_handle, m_mvp.to_gl_matrix(), "uMVP");
glDrawArrays(GL_LINE_STRIP, 0, m_vertexAttrib.get_attribute_count()); GL_CALL
答案 0 :(得分:1)
你告诉你m_mvp
是身份,所以我猜顶点着色器中的输入与输出相同(至少是顶点位置)。如果您在着色器中放置的两个点是可见的两个向量:[0 0 0]
和[3.5e-8, -3, 0]
,那么难怪您的输出看起来就像现在这样。 [0 0 0]
是屏幕的中心,线条开始,[3.5e-8, -3, 0]
在y方向(在可见区域下)的屏幕之外-2。屏幕上的所有可见顶点都在每个维度[-1 | 1]
范围内(标准化设备坐标)。