我需要在我创建的两个网格之间画一条线。每个网格都与不同的模型矩阵相关联。我一直在思考如何做到这一点,我想到了:
glMatrixMode(GL_MODELVIEW);
glLoadMatrixf(first_object_model_matrix);
glBegin(GL_LINES);
glVertex3f(0, 0, 0); // object coord
glMatrixMode(GL_MODELVIEW);
glLoadMatrixf(first_object_model_matrix);
glVertex3f(0, 0, 0); // ending point of the line
glEnd( );
但问题是我无法打电话glMatrixMode
and glLoadMatrixf
之间glBegin
and glEnd
。我还使用着色器和可编程管道,因此在渲染场景时返回到固定管道的想法并不令人兴奋。
Can you:
- 准确地建议我如何使用着色器在两个网格(我有它们的模型矩阵)之间画一条线。
or
- 建议我如何编写与上面类似的代码来绘制一条具有两个网格模型矩阵的线。
通过将每个点与模型矩阵之一相乘来计算直线的两个点。以下是伪代码。由于您使用的是 Qt,因此您可以使用其内置数学库来实现此效果。
vec3 line_point_1 = model_matrix_object1 * vec4(0, 0, 0, 1);
vec3 line_point_2 = model_matrix_object2 * vec4(0, 0, 0, 1);
// Draw Lines
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)