| 
									
										
										
										
											2025-05-18 17:11:31 +00:00
										 |  |  | // #include "res://addons/rokojori_action_library/Runtime/Shading/Library/Dithering.gdshaderinc" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-03 12:09:23 +00:00
										 |  |  | const mat4 ditherMatrix = mat4( | 
					
						
							|  |  |  | 	vec4(0.0625, 0.5625, 0.1875,  0.6875), | 
					
						
							|  |  |  | 	vec4(0.8125, 0.3125, 0.9375,  0.4375), | 
					
						
							|  |  |  | 	vec4(0.25, 0.75, 0.125, 0.625), | 
					
						
							|  |  |  | 	vec4(1.0, 0.5, 0.875,  0.375)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | float dither( float alpha, vec2 pos ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   int x = int( pos.x ) % 4; | 
					
						
							|  |  |  |   int y = int( pos.y ) % 4; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   float res = 0.0; | 
					
						
							|  |  |  |   vec4 temp; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (x == 0) {temp = ditherMatrix[0];}  | 
					
						
							|  |  |  |   else if (x == 1) temp = ditherMatrix[1]; | 
					
						
							|  |  |  |   else if (x == 2) temp = ditherMatrix[2]; | 
					
						
							|  |  |  |   else if (x == 3) temp = ditherMatrix[3]; | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (y == 0) {res = temp[0];}  | 
					
						
							|  |  |  |   else if (y == 1) res = temp[1]; | 
					
						
							|  |  |  |   else if (y == 2) res = temp[2]; | 
					
						
							|  |  |  |   else if (y == 3) res = temp[3]; | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |   return res; | 
					
						
							|  |  |  | } |