我正在使用C#,Monogame和XNA 4.0。在我的場景中,我有很多立方體。有些是連接的,有些不是。我想用另一個着色器渲染立方體的邊緣而不是填充。除此之外,我想用另一種顏色(或更厚)渲染連接立方體的外邊緣,而不是立方體對象內的邊緣。這是一幅小畫,用於表明我想要做什麼(抱歉我的繪畫技巧不好,但我認爲你會得到它)。如何渲染與填充XNA不同的立方體的特定邊緣? (Monogame)
我知道如何使一個立方體與特定的着色器,我也能夠呈現線框但我不能夠連接這兩種方法。貝斯德說,外線不能用這種方法呈現不同。
我喜歡漫畫着色器的edgefinding後的效果嘗試過,但在這種方式我不能只渲染特定的邊緣。除此之外,如果兩個立方體彼此相鄰,則着色器不能識別邊緣。
我不是搜索從您準備使用的解決方案,但我很高興能得到一些提示/方法/教程/類似項目的/ etc如何實現我的目標。那裏有一些着色專家嗎?我不知道該怎麼做。
(不過,若你想發佈一個準備使用的解決方案,我也不會米菲:d)
謝謝你的回答,現在聽起來很複雜,但我會閱讀這篇論文,並試試儘量遠離工作崗位。在這種情況下我不明白 - 那麼我將如何呈現紅色輪廓呢?在着色器中,我不知道像素是在上邊還是在邊上。 – nidhoeggr09
是的,這有點複雜。我傾向於使用圖像處理技術來解決這些問題,因爲我在延期着色方面工作如此沉重。至於爲不同的輪廓着色,這種方法的優點在於,在搜索過濾器中有兩個單獨的條件,您可以根據哪些條件通過,分配不同的顏色(或甚至是兩種顏色的組合)。 –
由於您更喜歡着色與立方體/立方體邊緣不同的外部邊緣,因此我實際上建議您在紋理中使用眼睛空間深度和立方體ID。你仍然會尋找不連續性,它只是這兩個屬性可能會給你從你的樣本圖像的結果。 –