我正在使用cocos2d-x 2.0.4。我通過這兩個圖像來說明我正在嘗試做什麼。OpenGL - 在紋理多邊形上創建邊框
convex_poly http://img542.imageshack.us/img542/2554/convexpoly.png convex_poly_with_border http://img40.imageshack.us/img40/8007/convexpolywithborder.png
我想要做的就是它產生模糊的邊界或邊框有梯度編程。我有兩個想法來做到這一點,但我不確定這是否是正確的做法。第一種解決方案是對僅包含模糊顏色的多邊形進行三角測量(在這種情況下爲帶有孔的凹多邊形)並在其上使用漸變渲染顏色,多邊形外側的頂點將爲全頂點並且在內零點上-α。插值可以完成漸變的工作。 第二種解決方案是在着色器內部完成它。我需要的只是計算一個像素與多邊形最近邊緣之間的距離。然後,在一定的閾值下,我會根據距離(最短的距離,最大的alpha值)來影響具有某個alpha值的像素白色。
無論如何,我對openGL的東西很陌生,恐怕第二種解決方案最終會有很大的處理時間,因爲我必須計算多邊形每個像素的距離。你對這個傢伙有什麼看法?任何想法都傾向於證實我的猜測,或者我完全錯了嗎?
編輯: 我最終選擇的解決方案是使用多邊形中每個角度(易於計算3個連續頂點)的平分線,並在該平分線上取一個點,該點將成爲內部多邊形的頂點。然後我使用外部多邊形頂點或內部多邊形頂點來構建一個可以適合GL_TRIANGLE_STRIP參數的頂點數組。我把下面的圖片理解得更好。
expl http://img571.imageshack.us/img571/892/convexpolyexplanation.png
只是一般的評論,但你需要考慮在三角形的方面,而不是任意多邊形。 – JasonD 2013-02-26 15:15:15