這聽起來很奇怪。但我試圖複製一箇舊的DOS 16位遊戲。遊戲有一些非常粗糙的漸變,有一些漂亮的顏色條紋。我想複製這些樂隊。如何用着色器添加色帶
當我實現着色器時,它顯然呈現非常平滑的漸變。這看起來不錯,但不是真實的。我想知道如何在片段着色器中僞造這些樂隊。什麼樣的算法留下了樂隊。
這聽起來很奇怪。但我試圖複製一箇舊的DOS 16位遊戲。遊戲有一些非常粗糙的漸變,有一些漂亮的顏色條紋。我想複製這些樂隊。如何用着色器添加色帶
當我實現着色器時,它顯然呈現非常平滑的漸變。這看起來不錯,但不是真實的。我想知道如何在片段着色器中僞造這些樂隊。什麼樣的算法留下了樂隊。
您可以嘗試「裝箱」顏色值。通常情況下,RGB的值將介於0到255之間(或者如果使用浮動,則爲0-1,但步驟爲256)。儘量減少到16步。因此,0到16之間的所有內容都變爲0,16到32之間的所有內容都變爲16等。在代碼中,它將類似於:floor(color/16)*16
。
您可以嘗試使用4444渲染目標,應該有可見的條帶。
如果這不能提供足夠的控制,那麼您可以使用RGB值作爲帶點過濾的3D紋理查找。 3D紋理中的條目可用於定義任意有限的調色板。
此解決方案將爲您提供更多的藝術控制,而不是操縱顏色目標本身的位深度。一旦以這種方式量化了顏色,您還可以索引到一個預先選定的調色板,以模仿原始系統。 – warrenm