21 lines
		
	
	
		
			469 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
		
		
			
		
	
	
			21 lines
		
	
	
		
			469 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SMOOTH 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const float transitionWidth = 1.0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uniform vec4 fillColor = vec4(0);
							 | 
						||
| 
								 | 
							
								uniform vec4 outlineColor = vec4(0,0,0,1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								noperspective in vec3 distanceToOutline;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								out vec4 FragColor;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void main() {
							 | 
						||
| 
								 | 
							
									float edgeness = min(min(distanceToOutline.x, distanceToOutline.y), distanceToOutline.z);
							 | 
						||
| 
								 | 
							
								#if SMOOTH
							 | 
						||
| 
								 | 
							
									FragColor = mix(outlineColor, fillColor, smoothstep(0, transitionWidth, edgeness));
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
									FragColor = (edgeness <= 0) ? outlineColor : fillColor;
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								}
							 |