我已經寫了一個GLSL着色器用於Unity3D與我的像素化iOS應用程序。它有兩個一個問題:像素化照明着色器
1)效果並不總是與月亮保持一致,並且 2)照明看起來不像素化。
我稍後再解釋一下。着色器意味着當月亮在它後面時對前景物體產生光照效果。我有它通常顯示爲全黑(如輪廓)一個精靈,而當月亮的對象是非常接近它,它揭示了紋理細節,像這樣:
實際精靈(沒有着色器)看起來是這樣的:
的原因,我這樣做的效果這種方式讓我可以有隻有一個紋理光照。但是,它有兩個問題:
1)當我靠近屏幕邊緣時,光線效果並不完全跟隨月亮。我不確定這是否與我錯誤地使用TEXCOORD1變量相關。我製作了一個覆蓋整個屏幕的精靈,讓你可以看到它不跟隨月球。下面是我的測試場景中效果問題的圖片。有一個帶有黑色條紋和alpha的全屏精靈,可以隨時顯示效果的確切位置。我想擺脫這種異步,因爲它使照明看起來不切實際。
2)引起的照明效果是非常尖銳的 - 它會更好看,我認爲,如果每個像素被單獨點燃,如SpriteLamp。我知道這與在着色器中舍入碎片座標有關,但由於我從不真正知道變量的值在我的着色器中,我似乎無法使其正確工作。
我可以圍繞和落地的距離,但然後我得到這個,這是服從月球的距離,但不服從原始精靈像素。有像素化,但我們最終什麼對面應該只是一個像素,如果你明白我的意思這個奇怪的曲線......
我在尋找什麼是更喜歡這一點。看看原始紋理的各個像素是如何點亮的?
這裏的着色器本身的鏈接:http://pastebin.com/0zbqrP57。它主要是默認的統一精靈着色器,但是在SampleSpriteTexture函數的最後添加了一些代碼。
下面是一個unitypackage的鏈接,您可以使用它來查看着色器的行爲。試着在場景播放時嘗試移動月亮。
https://drive.google.com/open?id=0BxCQjUHiAAQWZGpPZ3R2SExTcXc
我的問題:你有沒有關於如何解決這些問題,或解決方案給他們什麼建議嗎?
我理解你的問題,但你並沒有一個具體的問題了。你想了解爲什麼desync發生?期待解決方法的建議?這裏的目標究竟是什麼?請編輯。 – XenoRo
嗨,@AlmightyR,謝謝你的建議。我期待建議和解決方案。我已經更新了這個問題。目標是在問題#2中實現效果(因爲它會比當前設置更好),並解決異步問題。 – Catlard
哇,它像一個魅力。謝謝 – Learner