2017-12-17 9 views
0

In meinem aktuellen Godot Spiel benutze ich einen Unschärfe Shader, um den Hintergrund zu verwischen und die Benutzeroberfläche scharf zu halten. Die Shader, die ich verwendet habe, um diesen Effekt zu erzeugen, funktionieren, aber verschwimmen zu wenig oder sehen Glitch aus. Zum Beispiel:Godot Gaußscher Unschärfer Shader

float radius = 0.009; 
vec3 col = vec3(0); 

col+= texscreen(SCREEN_UV+vec2(-radius,-radius)); 
col+= texscreen(SCREEN_UV+vec2(0,-radius)); 
col+= texscreen(SCREEN_UV+vec2(radius,-radius)); 

col+= texscreen(SCREEN_UV+vec2(-radius,0)); 
col+= texscreen(SCREEN_UV+vec2(0,0)); 
col+= texscreen(SCREEN_UV+vec2(radius,0)); 


col+= texscreen(SCREEN_UV+vec2(-radius,radius)); 
col+= texscreen(SCREEN_UV+vec2(0,radius)); 
col+= texscreen(SCREEN_UV+vec2(radius,radius)); 

col/=9.0; 
COLOR.rgb=col; 

würde ich einen solchen Code auf meinem eigenen schreiben, aber ich weiß nicht, die Shader-Sprache von Godot 2.0 (My Project 2.0 ist mit 3,0 zu instabil ist und ich müsste mein ganzes übertragen Projekt: /). Kann mir jemand ein Code-Snippet für eine gut aussehende, im optimalen Fall einstellbare Gaußsche Unschärfe liefern?

Sth wie dies wäre toll:

enter image description here

Ich weiß, dass ich für viele fragen, aber ich würde jede Hilfe zu schätzen wissen. :)

Antwort