4 * Copyright (C) 2010 - 2015 Leonid Kostrykin
6 * Chair of Medical Engineering (mediTEC)
7 * RWTH Aachen University
14 uniform sampler3D huVolume;
15 uniform mat4 modelTexture;
16 uniform float minIntensity;
17 uniform float maxIntensity;
20 in vec4 modelSpaceCoordinates;
22 out vec4 gl_FragColor;
25 // ----------------------------------------------------------------------------------
27 // ----------------------------------------------------------------------------------
29 float 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 );
50 gl_FragColor = vec4( color.rgb, color.a * f );