【发布时间】:2012-07-21 18:26:42
【问题描述】:
我正在使用着色器和可编程管道,我需要用一条线(可能是彩色的)连接两个网格,但我只有这两个对象的模型矩阵。这条线应该从这些对象的中心开始,所以我假设两个点的对象坐标应该是:
start point: 0,0,0
end point: 0,0,0
为了连接这两个对象,我假设我必须将着色器中的这些点乘以它们各自对象的模型矩阵。然后将所有内容乘以视图矩阵(这对两个对象来说很常见)。并最终通过投影矩阵。
我一直使用带顶点数组的着色器,如何将两个不同的顶点传递给着色器?我也应该为他们穿制服吗?由于 glDrawElements 和 glDrawArrays 都需要数据数组,我应该使用什么函数来绘制线?
【问题讨论】:
-
如果你想要很多行(100s,1000s),那么将点作为制服发送是低效的。另外,你会如何画线?有一些方法(几何着色器输出lines_strips或片段着色器测试每个像素),但这不必要地复杂。
-
好的,如果我需要使用数组,您能否提供一个示例来说明如何做到这一点?
-
这是同样的问题,但对于固定功能 GL:stackoverflow.com/questions/11593053/…
标签: c++ opengl graphics glsl shader