Also this display is optimized. It does not use blending and pixel discard. Working with scanned data should be more pleasant with this. A better option would be to use gl_FragDepth to have a better sense of volume but this discards early depth test.
20 lines
455 B
GLSL
20 lines
455 B
GLSL
|
|
uniform vec4 color;
|
|
uniform vec4 innerColor;
|
|
|
|
out vec4 fragColor;
|
|
|
|
void main()
|
|
{
|
|
vec2 centered = abs(gl_PointCoord - vec2(0.5));
|
|
float dist = max(centered.x, centered.y);
|
|
|
|
float fac = dist * dist * 4.0;
|
|
fragColor = mix(innerColor, color, 0.45 + fac * 0.65);
|
|
|
|
/* Make the effect more like a fresnel by offsetting
|
|
* the depth and creating mini-spheres.
|
|
* Disabled as it has performance impact. */
|
|
// gl_FragDepth = gl_FragCoord.z + 1e-6 * fac;
|
|
}
|