2010-10-26 37 views
0

我有我的程序以編程方式定義的行。我想要做的是沿着它們呈現畫筆描邊。在OpenGL中渲染Photoshop風格畫筆

我想我要作品刷的類型是這樣的,它只是一個質地,大多是透明的,你做的是,使這個紋理集中在路徑中的每個像素,和他們融合在一起創造行程。

現在假設這甚至工作,我會打個賭,這將是太貴了(針對iPad和其他移動芯片,恨填充率和alpha混合)

那麼,還有什麼其他的選擇在那兒?

如果它可以實時完成(即,路徑樣條更新每一幀),那將是理想的。但如果沒有,在ipad的一個幾分之一秒內將是良好的太(花鍵連接的節點,則用戶可以拖動周圍從而將花鍵節點,但它是可以接受的,以恢復到一個簡單的填充用於在它的花鍵正在移動,然後重新計算刷子一旦釋放它)

對於那些想知道的,我試圖得到它,所以粗線看起來像他們已經用鉛筆。它應該看起來像真實的生活。

我認爲只是渲染刷花的質感,但作爲花鍵可以是任何長度,在任何方向,致力於整體質感矩形涵蓋整個花是這樣昂貴的...

花鍵不可避免地分解成四邊形用於呈現,所以我想的最初呈現刷到紋理,然後生成與每個分離的四邊形的優化的質地和包裝成整齊地到紋理。

但是兩個渲染紋理...算法來創建優化的紋理,使得它仍然無縫地相互融合......聽起來像一場噩夢,而且這甚至不使它實時。

所以是的,關於如何繪製厚的任何想法,鉛筆一樣,遵循在OpenGL在iPad實時花鍵線條?

回答

1

從我的角度來看,你想要的是渲染線:

  • 是有紋理的
  • 具有邊緣漸弱關閉(即沒有鋒利的邊緣給它)
  • 如下樣條

爲了實現這些目標,我想首先是打破了花鍵成一系列線段是非常接近曲線的(你可以把它或多或少細粒度取決於您希望如何準確它與你想要渲染的速度有多快)。

一旦你有了這些,你將需要使每個片段變成3個四邊形,一個覆蓋線段的中間部分,作爲線條的完全不透明部分和線條的每個邊緣上的一個淡出是完全透明的。

您需要使用一點數學運算來確保沿着等分2段的向量擠壓四邊形(即,使每個段與擠出向量之間的角度相等)。這將確保您在連接的鈍角部分沒有間隙,並且在尖銳部分重疊。

這一切之後,你只需要使用頂點位置的UV座標(大概雖然縮放),並允許紋理環繞。

使用這種方法,你應該結束了,有一個堅實的粗線通過你的花鍵的中間與逐漸減弱成完全透明的「鰭」運行的網格。這應該非常非常接近你想要的效果,而只有使相關像素(即完全透明的像素沒有巨大的區域),並用非常垃圾內存開銷。


我一直在這裏有點含糊其一種難以單獨文字和沒有深入的教程編寫一個解釋。如果您需要更多的信息,只需在您的卡上有什麼評論,我會進一步闡述。