0

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

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

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

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

4

2 回答 2

2

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

如果你需要做这样的事情,你应该使用一个几何着色器,它将点作为输入,并输出一个四边形(作为三角形带的 4 个顶点)。然后你可以做任何你想做的事。

请注意,您应该尽可能少地传递信息,以免脱离 GS。理想情况下,为了获得最佳性能,您应该只输出到gl_Position和输出到一个vec2指示特定位置在四边形中的位置。

于 2013-01-30T01:21:25.693 回答
1

是否有可能......使用着色器以任意程度缩放这些点精灵?

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

于 2013-01-29T19:05:44.680 回答