在OpenGL中使用点Sprite呈现矢量场

时间:2013-01-29 18:59:00

标签: opengl shader point-sprites

我想用OpenGL渲染矢量场可视化。现在,我有一个3D立方体填充点,我需要用箭头替换。我在OpenGL中已经阅读了很多关于Point Sprites的内容,它们似乎非常符合我的需求。

我还没有真正使用纹理,所以有一些关于它们与Point Sprites一起使用的问题:

首先,是否可以通过使用纹理轻松地用箭头替换我的点?如果是这样,是否可以使用着色器旋转或缩放这些点精灵任意度?

如果还有其他可能性而不是点精灵来实现这一点,那么听到它们也会很棒。我正在使用OpenGL 4.2。

2 个答案:

答案 0 :(得分:2)

点精灵始终是屏幕对齐的正方形。并且它们具有依赖于实现的最大大小。

如果您需要执行此类操作,则应使用以点为输入的Geometry Shader,并输出四边形(作为三角形条带的4个顶点)。然后你可以做任何你想做的事。

请注意,您应尝试传递尽可能少的信息。理想情况下,为了获得最佳性能,您只应输出到gl_Positionvec2,以指示特定位置在四边形中的位置。

答案 1 :(得分:1)

  

是否可以使用着色器按任意度来缩放这些点精灵?

不,点精灵有一个实现定义的大小上限。