Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在我的 OpenGL 项目中,我想动态创建平滑的多边形,类似于这个:
该问题主要依赖于平滑过程。到目前为止,我的程序是首先创建一个随机放置顶点的 VBO。
然后,在我的片段着色器中,(我正在使用可编程函数管道)应该会发生平滑过程,或者换句话说,从顶点之间先前定义的“线”创建曲线。
问题正是在这里:我对那些复杂的数学算法不是很熟悉,这些算法会检查一个点是否在“平滑多边形”内。
首先,你不能在片段着色器中真正做到这一点。片段着色器仅限于在写入屏幕之前设置“像素”(基本上但不完全是实际像素)的最终(ish)颜色。它不能在曲线上创建新点。
这个页面很好地概述了创建平滑曲线的不同算法。
一般的方法是使用几何着色器将几个点分解为多个点,然后像普通多边形一样渲染它们。但我不知道细节。例如,尝试谷歌搜索贝塞尔几何着色器。
等等,我撒谎。我在这里找到了一个在片段着色器中执行此操作的程序。