4 * Copyright (C) 2010 - 2015 Leonid Kostrykin
6 * Chair of Medical Engineering (mediTEC)
7 * RWTH Aachen University
14uniform sampler3D huVolume;
15uniform mat4 modelTexture;
16uniform float minIntensity;
17uniform float maxIntensity;
20in vec4 modelSpaceCoordinates;
22layout( location = 0 ) out vec4 _gl_FragColor;
25// ----------------------------------------------------------------------------------
27// ----------------------------------------------------------------------------------
29float intensityAt( vec3 p )
31 return texture( huVolume, p ).r;
35// ----------------------------------------------------------------------------------
37// ----------------------------------------------------------------------------------
41 if( abs( modelSpaceCoordinates.x ) > 0.5 || abs( modelSpaceCoordinates.y ) > 0.5 || abs( modelSpaceCoordinates.z ) > 0.5 )
46 vec4 textureCoordinates = modelTexture * modelSpaceCoordinates;
47 float intensity = intensityAt( textureCoordinates.xyz );
48 float f = step( minIntensity, intensity ) * ( 1 - step( maxIntensity, intensity ) ) * ( intensity - minIntensity ) / ( maxIntensity - minIntensity );
49 f = f + step( maxIntensity, intensity );
50 f = ( 1 - invert ) * f + invert * ( 1 - f );
52 _gl_FragColor = vec4( f, f, f, 1 );