mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Initial commit of ResInsight version 0.4.8
This commit is contained in:
83
ApplicationCode/Resources/fs_CellFace.glsl
Normal file
83
ApplicationCode/Resources/fs_CellFace.glsl
Normal file
@@ -0,0 +1,83 @@
|
||||
|
||||
varying vec2 v_localCoord; // Normalized coordinates along quad
|
||||
|
||||
varying vec4 v_cellColor; // cell face color
|
||||
|
||||
varying vec4 v_bottomColor; // color along edge v0-v1
|
||||
varying vec4 v_rightColor; // color along edge v1-v2
|
||||
varying vec4 v_topColor; // color along edge v2-v3
|
||||
varying vec4 v_leftColor; // color along edge v3-v0
|
||||
|
||||
|
||||
void colormapCorners(in vec2 coord, inout vec4 color)
|
||||
{
|
||||
if (coord.x < 0.2 && coord.y < 0.2) // lower, left corner
|
||||
{
|
||||
if (v_bottomColor == color) color = v_leftColor;
|
||||
else if (v_leftColor == color) color = v_bottomColor;
|
||||
else if (coord.x > coord.y) color = v_bottomColor;
|
||||
else color = v_leftColor;
|
||||
}
|
||||
else if (coord.x > 0.8 && coord.y < 0.2) // lower, right corner
|
||||
{
|
||||
float x = 1.0 - coord.x;
|
||||
if (v_rightColor == color) color = v_bottomColor;
|
||||
else if (v_bottomColor == color) color = v_rightColor;
|
||||
else if (x < coord.y) color = v_rightColor;
|
||||
else color = v_bottomColor;
|
||||
}
|
||||
else if (coord.x > 0.8 && coord.y > 0.8) // upper, right corner
|
||||
{
|
||||
if (v_rightColor == color) color = v_topColor;
|
||||
else if (v_topColor == color) color = v_rightColor;
|
||||
else if (coord.x > coord.y) color = v_rightColor;
|
||||
else color = v_topColor;
|
||||
}
|
||||
else if (coord.x < 0.2 && coord.y > 0.8) // upper, left corner
|
||||
{
|
||||
float y = 1.0 - coord.y;
|
||||
|
||||
if (v_topColor == color) color = v_leftColor;
|
||||
else if (v_leftColor == color) color = v_topColor;
|
||||
else if (coord.x > y) color = v_topColor;
|
||||
else color = v_leftColor;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void colormapEdgeRegions(in vec2 coord, inout vec4 color)
|
||||
{
|
||||
if (coord.y < 0.2 && coord.x > 0.2 && coord.x < 0.8)
|
||||
{
|
||||
color = v_bottomColor;
|
||||
}
|
||||
else if (coord.x > 0.8 && coord.y > 0.2 && coord.y < 0.8)
|
||||
{
|
||||
color = v_rightColor;
|
||||
}
|
||||
else if (coord.y > 0.8 && coord.x > 0.2 && coord.x < 0.8)
|
||||
{
|
||||
color = v_topColor;
|
||||
}
|
||||
else if (coord.x < 0.2 && coord.y > 0.2 && coord.y < 0.8)
|
||||
{
|
||||
color = v_leftColor;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Texture 2D source fragment
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
vec4 srcFragment()
|
||||
{
|
||||
vec4 color = v_cellColor; // cell color to be used for areas that are not along edges
|
||||
|
||||
// Performance test code
|
||||
// color = 0.2 * (v_cellColor + v_bottomColor + v_rightColor + v_topColor + v_leftColor);
|
||||
|
||||
colormapEdgeRegions(v_localCoord, color);
|
||||
colormapCorners(v_localCoord, color);
|
||||
|
||||
return color;
|
||||
}
|
||||
Reference in New Issue
Block a user