我想用OpenGL渲染矢量场可视化。现在,我有一个3D立方体填充点,我需要用箭头替换。我在OpenGL中已经阅读了很多关于Point Sprites的内容,它们似乎非常符合我的需求。
我还没有真正使用纹理,所以有一些关于它们与Point Sprites一起使用的问题:
首先,是否可以通过使用纹理轻松地用箭头替换我的点?如果是这样,是否可以使用着色器旋转或缩放这些点精灵任意度?
如果还有其他可能性而不是点精灵来实现这一点,那么听到它们也会很棒。我正在使用OpenGL 4.2。
答案 0 :(得分:2)
点精灵始终是屏幕对齐的正方形。并且它们具有依赖于实现的最大大小。
如果您需要执行此类操作,则应使用以点为输入的Geometry Shader,并输出四边形(作为三角形条带的4个顶点)。然后你可以做任何你想做的事。
请注意,您应尝试传递尽可能少的信息。理想情况下,为了获得最佳性能,您只应输出到gl_Position
和vec2
,以指示特定位置在四边形中的位置。
答案 1 :(得分:1)
是否可以使用着色器按任意度来缩放这些点精灵?
不,点精灵有一个实现定义的大小上限。