Wed 28 Aug 21:38:52 CEST 2024
This commit is contained in:
		
							parent
							
								
									b1b9b794a9
								
							
						
					
					
						commit
						636da0168c
					
				
							
								
								
									
										104
									
								
								src/SimNDT/gui/resources/data/filter.frag
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								src/SimNDT/gui/resources/data/filter.frag
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,104 @@ | |||
| /* | ||||
|  * glumpy is an OpenGL framework for the fast visualization of numpy arrays. | ||||
|  * Copyright (C) 2009-2011  Nicolas P. Rougier. All rights reserved. | ||||
|  *  | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *  | ||||
|  * 1. Redistributions of source code must retain the above copyright notice, | ||||
|  *    this list of conditions and the following disclaimer. | ||||
|  *  | ||||
|  * 2. Redistributions in binary form must reproduce the above copyright | ||||
|  *    notice, this list of conditions and the following disclaimer in the | ||||
|  *    documentation and/or other materials provided with the distribution. | ||||
|  *  | ||||
|  * THIS SOFTWARE IS PROVIDED BY NICOLAS P. ROUGIER ''AS IS'' AND ANY EXPRESS OR | ||||
|  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||||
|  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | ||||
|  * EVENT SHALL NICOLAS P. ROUGIER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, | ||||
|  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||||
|  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  *  | ||||
|  * The views and conclusions contained in the software and documentation are | ||||
|  * those of the authors and should not be interpreted as representing official | ||||
|  * policies, either expressed or implied, of Nicolas P. Rougier. | ||||
|  */ | ||||
| /* #define GRID */ | ||||
| /* #define ELEVATION */ | ||||
| /* #define COLORIZATION */ | ||||
| /* #define INTERPOLATION */ | ||||
| /* #define GAMMA_CORRECTION */ | ||||
| 
 | ||||
| 
 | ||||
| uniform vec2 pixel; | ||||
| uniform sampler2D texture; /* default location 0 */ | ||||
| 
 | ||||
| #ifdef ELEVATION | ||||
| uniform float elevation; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef GRID | ||||
| uniform vec4 grid_color; | ||||
| uniform vec3 grid_size; | ||||
| uniform vec3 grid_offset; | ||||
| uniform vec3 grid_thickness; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef INTERPOLATION | ||||
| uniform sampler1D kernel_lut; /* default location 1 */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef COLORIZATION | ||||
| uniform sampler1D color_lut; /* default location 2 */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef GAMMA_CORRECTION | ||||
| uniform float gamma; | ||||
| #endif | ||||
| 
 | ||||
| varying vec4 vertex; | ||||
| varying float altitude; | ||||
| void main() | ||||
| { | ||||
|     vec2 uv = gl_TexCoord[0].xy; | ||||
|     vec4 color = texture2D(texture, uv); | ||||
|     float a = altitude; | ||||
| 
 | ||||
| #ifdef INTERPOLATION | ||||
|     color = interpolate(texture, kernel_lut, uv, pixel); | ||||
| #ifndef NEAREST_INTERPOLATION | ||||
|     a = color.a; | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| #ifdef COLORIZATION | ||||
|     color = texture1D(color_lut,color.a); | ||||
| #else | ||||
| //#ifdef INTERPOLATION | ||||
| //    color = vec4(color.a,color.a,color.a,1.0); | ||||
| //#endif | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| #ifdef GRID | ||||
|     vec3  v  = vec3(vertex.xy,a) * grid_size - 0.0*grid_offset; | ||||
|     vec3  f  = abs(fract(v)-0.5); | ||||
|     vec3  df = fwidth(v); | ||||
|     vec3  g  = smoothstep(-grid_thickness * df, +grid_thickness * df, f); | ||||
|     float c  = (1.0-g.x * g.y * g.z) * grid_color.a; | ||||
|     color = mix(color, vec4(grid_color.rgb,color.a), c); | ||||
| #endif | ||||
| 
 | ||||
|     color *= gl_Color; | ||||
| 
 | ||||
| #ifdef GAMMA_CORRECTION | ||||
|     color = pow(color, vec4(1.0/gamma,1.0/gamma,1.0/gamma,1)); | ||||
| #endif | ||||
| 
 | ||||
|     gl_FragColor = color; | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user