2012-04-28 67 views
6

在我的OpenGL項目中,我要動態地創建平滑的多邊形,similiar像這樣的:OpenGL的:創建複雜的和平滑的多邊形

enter image description here

的問題主要依賴於平滑處理。到目前爲止,我的程序首先是創建一個隨機放置頂點的​​VBO。然後,在我的片段着色器(我正在使用可編程函數流水線)中,應該發生平滑過程,或者換句話說,創建的曲線超出了先前定義的頂點之間的「線條」。

正是在這裏是問題:我不是很熟悉thoose複雜的數學算法,這將檢查,如果一個點是在「平滑多邊形」內或不。

回答

3

首先,你不能在片段着色器中做到這一點。片段着色器僅限於在寫入屏幕之前設置「像素」(基本上,但不完全是實際像素)的最終(ish)顏色。它不能在曲線上創建新的點。

This page給出了用於創建平滑曲線的不同算法的不錯概述。

一般的方法是使用幾何着色器將幾個點分成多個點,然後像普通的多邊形一樣渲染它們。但我不知道細節。例如,嘗試谷歌搜索bezier geometry shader

等等,我說謊。我發現一個程序here它在片段着色器中。

+0

謝謝!我想我找到了我正在尋找的內容:http://code.google.com/p/victamin/downloads/detail?name=GPUBezier.zip – cafaxo 2012-04-28 13:21:19