我正在嘗試用現代Opengl繪製矩形,使用着色器進行填充和描邊。我將填充顏色,筆觸顏色和筆觸寬度發送到片段着色器中的統一塊(以及矩形位置和大小)。將筆畫片段設置爲筆觸顏色並將填充片段填充到填充顏色的建議方法是什麼?GLSL中的2D矩形筆畫
目前,我有兩個想法在我腦海中浮動。首先,if語句檢查碎片座標是否位於矩形或矩形區域的邊界內,並根據該區域設置碎片顏色。這種方法會產生相當大的一個複雜的if語句,當它旋轉矩形時,它可能會變得更糟。 (另外,我讀過應該避免在着色器中分支)
我的第二個想法是使用帶符號的距離函數來確定顏色,但我不熟悉使用這些,我有這個想法他們不太擅長做尖角。
我在這裏脫穎而出嗎?有沒有更好的方法來做到這一點?
通過填充和未填充,你是指一個繪圖調用筆畫幾何和一個繪製調用剩餘的填充幾何?另外,是的,我現在正在使用nanovg,但我正試圖建立自己的圖書館以擺脫它。 – user1435899
是的,一個用於中風,一個用於填充。 建立你自己的圖書館是毫無意義的,你會得到很多的錯誤和非便攜式解決方案。麻省理工學院的許可證非常靈活,您可以輕鬆改進nanovg用於特殊用途。此外,nanovg可以輕鬆移植到DirectX,Vulkan和其他圖形API – quazeeee