我正在研究一個涉及繪製大量非常簡單的重疊陰影的程序。對陰影沒有什麼特別之處:它們有很強的邊緣,並且在無窮遠處有一個光源(即所有陰影都是平行的)。其獨特之處在於,陰影代表部分部分區域的吸收光線,許多陰影可以重疊以形成逐漸變暗的區域。繪製大量重疊的2D陰影
下面是具體說明這個思想的圖像:
我的問題是這樣的:什麼是採取的影子在我的程序一個很好的方式(存儲爲凸四邊形),有效地借鑑他們到了屏幕?
我可以簡單地用適當的alpha值繪製它們,結果看起來不錯,但這樣做會變得非常慢。我認爲這是因爲許多陰影中的像素被多次繪製。我懷疑一次只能繪製到每個像素的方法可能會快得多。
我的程序是用C++編寫的,我使用Qt來完成UI和繪圖。我很樂意利用一個庫來做多邊形裁剪或者其他東西(例如Clipper或boost),但是我不願意進入OpenGL/GPU的世界(除非有一種特別無痛的方式來做到這一點) )。
任何想法?謝謝!
啊,謝謝!現在看來,以像素爲單位而不是以陰影多邊形來看,這一切似乎都變得更加簡單。我會嘗試實現這一點,我懷疑它的性能會大幅提升。如果速度足夠快,我甚至可以嘗試對像素進行超採樣以獲得一點抗鋸齒。 – rrwick
@rrwick:不客氣。代碼祝你好運。如果可能,分享結果。 – neuro