2014-10-27 98 views
0

我使用opengl和C++做圖像處理。這個想法很簡單,我將加載一個圖像,通過點擊繪製一個多邊形,然後將一個效果(例如去飽和)僅應用到剛剛創建的多邊形內部的像素。C++ opengGL:繪製多邊形+圖像處理內部像素

任何人都可以給我任何方向如何限制多邊形的內部像素的影響?加載圖像,並繪製多邊形是沒有問題的

+0

模板緩衝區不工作? – genpfault 2014-10-27 03:28:47

回答

0

假設以下情況:

  • 要在其上應用效果圖以全屏幕
  • 圖片使用的OpenGL渲染,可能是通過一個簡單的着色器,以作爲紋理

你可以做下面的辦法通過圖片:

  • 考慮屏幕作爲一個大的質感
  • 你畫一個多邊形,這將在渲染紋理
  • 多邊形的頂點內的頂部呈現插入紫外線的coresponding到二維座標在屏幕上(所以從屏幕空間UV空間(0,1))
  • 畫出來normaly
  • 上的圖像的頂部使用相同的圖片紋理繪製您的多邊形,但有不同的着色器

所以不是試圖破壞一個特定的從你的照片中創建一個多邊形區域,用相同的圖片在該區域的頂部創建一個多邊形,然後使這個新的多邊形去飽和。

這將幫助您避免模板緩衝區。

另一種方法是創建多邊形,但只在繪製圖片之前將其繪製在模板緩衝區中。

+0

這是我想要做的事情的照片。我正在使用OPENGL和C++。我已經完成了模糊效果,但是我想將其限制爲我的選擇。示例:http://postimg.org/image/8e83s4v05/ – jeyCaldone 2014-11-11 21:57:13

+0

上面的方法解決了您的問題。只需使用不同的UV在圖片頂部渲染一個新的多邊形以匹配選擇位置。新的多邊形,使用模糊着色器進行渲染。 – MichaelCMS 2014-11-12 18:11:45

+0

我明白了。如果多邊形是多於4個頂點的形狀,此方法是否可行?像這樣http://postimg.org/image/voadbmbjp/和感謝! – jeyCaldone 2014-11-14 21:31:52