【问题标题】:Render a vectorfield with Point Sprites in OpenGL在 OpenGL 中使用点精灵渲染矢量场
【发布时间】:2013-01-13 10:56:16
【问题描述】:

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

我还没有真正使用过纹理,所以对于将它们与 Point Sprites 一起使用存在一些问题:

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

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

【问题讨论】:

    标签: opengl shader point-sprites


    【解决方案1】:

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

    如果你需要做这样的事情,你应该使用Geometry Shader,它将点作为输入,并输出一个四边形(作为三角形带的 4 个顶点)。然后你就可以为所欲为。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-12
        • 2021-12-07
        • 1970-01-01
        • 2014-04-15
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        相关资源
        最近更新 更多