【问题标题】:OpenGL - Access next 3 vertices in buffer from the vertex shaderOpenGL - 从顶点着色器访问缓冲区中的下 3 个顶点
【发布时间】:2015-01-14 06:20:48
【问题描述】:

我使用从向量数组提供的 2 个缓冲区在世界周围放置一堆方形图块,一个用于颜色,另一个用于位置。三角形顶点颜色不是平滑的,因为它们不会在正方形的两个 tris 之间进行插值。为了解决这个问题,我想单独设置每个片段的颜色,手动混合顶点的颜色。我也不能用预制纹理代替这个过程。

我遇到的问题是将缓冲区中接下来的 3 个顶点位置和位置传递给顶点着色器。有什么简单的方法可以做到这一点?

谢谢,祝你有美好的一天!

【问题讨论】:

  • 顶点颜色不在两个 tris 之间插值是什么意思?可以加个图吗?在顶点着色器中获取多个顶点没有简单的方法,但我可能有另一种解决方案。
  • @JeremyLaumon puu.sh/ev0rj/2bf0c29a68.png 这是一个很好的例子,因为它使用重心过滤而不是我想要的双线性,所以顶点照明没有在我的瓷砖中的 tris 之间进行插值

标签: c++ opengl interpolation vbo vertex-shader


【解决方案1】:

添加另一组属性并将glVertexAttribPointer 设置为也指向顶点位置缓冲区,但带有偏移量。请记住,在末尾添加一些虚拟填充,以便在到达数组末尾时不会越界访问。在这种情况下,…_ADJACENCY 绘图模式也很有用(如果可用)。

【讨论】:

  • 谢谢@datenwolf!我不得不做大量的摆弄才能让它正确实施,但提到偏移参数让我朝着正确的方向前进。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多