OpenGL:创建复杂和平滑的多边形

时间:2012-04-28 12:31:15

标签: c++ opengl polygon smooth curve

在我的OpenGL项目中,我想动态创建平滑的多边形,类似这样:

enter image description here

问题主要在于平滑过程。到目前为止,我的步骤是首先创建一个随机放置顶点的​​VBO。

然后,在我的片段着色器中,(我正在使用可编程功能管道)应该发生平滑过程,或者换句话说,从顶点之间先前定义的“线”创建曲线。

问题就在于:我对thoose复杂的数学算法不是很熟悉,如果一个点在“平滑多边形”内部,它会检查它。

1 个答案:

答案 0 :(得分:3)

首先,你不能在片段着色器中真正做到这一点。片段着色器仅限于在写入屏幕之前设置“像素”的最终(ish)颜色(基本上,但不完全是实际像素)。它无法在曲线上创建新点。

This page概述了创建平滑曲线的不同算法。

一般方法是使用几何着色器将几个点分成多个点,然后像普通多边形一样渲染它们。但我不知道细节。例如,尝试使用谷歌搜索bezier geometry shader

等等,我撒谎。我找到了一个程序here,它在片段着色器中完成。