Initial commit of ResInsight version 0.4.8
BIN
ApplicationCode/Resources/AppLogo48x48.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
ApplicationCode/Resources/CellFilter_Range.png
Normal file
|
After Width: | Height: | Size: 583 B |
BIN
ApplicationCode/Resources/CellFilter_Values.png
Normal file
|
After Width: | Height: | Size: 843 B |
BIN
ApplicationCode/Resources/CellResult.png
Normal file
|
After Width: | Height: | Size: 491 B |
BIN
ApplicationCode/Resources/Default.png
Normal file
|
After Width: | Height: | Size: 254 B |
BIN
ApplicationCode/Resources/DownViewArrow.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
ApplicationCode/Resources/EastViewArrow.png
Normal file
|
After Width: | Height: | Size: 971 B |
BIN
ApplicationCode/Resources/EdgeResult_1.png
Normal file
|
After Width: | Height: | Size: 295 B |
BIN
ApplicationCode/Resources/EdgeResult_2.png
Normal file
|
After Width: | Height: | Size: 180 B |
BIN
ApplicationCode/Resources/Folder.png
Normal file
|
After Width: | Height: | Size: 642 B |
BIN
ApplicationCode/Resources/Legend.png
Normal file
|
After Width: | Height: | Size: 228 B |
BIN
ApplicationCode/Resources/Loop.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
ApplicationCode/Resources/Minus.png
Normal file
|
After Width: | Height: | Size: 266 B |
BIN
ApplicationCode/Resources/NorthViewArrow.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
ApplicationCode/Resources/Plus.png
Normal file
|
After Width: | Height: | Size: 293 B |
30
ApplicationCode/Resources/ResInsight.qrc
Normal file
@@ -0,0 +1,30 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>AppLogo48x48.png</file>
|
||||
<file>Default.png</file>
|
||||
<file>NorthViewArrow.png</file>
|
||||
<file>SouthViewArrow.png</file>
|
||||
<file>EastViewArrow.png</file>
|
||||
<file>WestViewArrow.png</file>
|
||||
<file>UpViewArrow.png</file>
|
||||
<file>DownViewArrow.png</file>
|
||||
<file>ReservoirView.png</file>
|
||||
<file>CellFilter_Values.png</file>
|
||||
<file>CellFilter_Range.png</file>
|
||||
<file>CellResult.png</file>
|
||||
<file>EdgeResult_1.png</file>
|
||||
<file>EdgeResult_2.png</file>
|
||||
<file>Legend.png</file>
|
||||
<file>Plus.png</file>
|
||||
<file>Minus.png</file>
|
||||
<file>Save.png</file>
|
||||
<file>Well.png</file>
|
||||
<file>WellCollection.png</file>
|
||||
<file>octave.png</file>
|
||||
<file>Folder.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/Shader/">
|
||||
<file>fs_CellFace.glsl</file>
|
||||
<file>vs_CellFace.glsl</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
BIN
ApplicationCode/Resources/ReservoirView.png
Normal file
|
After Width: | Height: | Size: 461 B |
BIN
ApplicationCode/Resources/Save.png
Normal file
|
After Width: | Height: | Size: 573 B |
BIN
ApplicationCode/Resources/SouthViewArrow.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
ApplicationCode/Resources/UpViewArrow.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
ApplicationCode/Resources/Well.png
Normal file
|
After Width: | Height: | Size: 346 B |
BIN
ApplicationCode/Resources/WellCollection.png
Normal file
|
After Width: | Height: | Size: 554 B |
BIN
ApplicationCode/Resources/WestViewArrow.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
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;
|
||||
}
|
||||
BIN
ApplicationCode/Resources/octave.png
Normal file
|
After Width: | Height: | Size: 9.7 KiB |
179
ApplicationCode/Resources/vs_CellFace.glsl
Normal file
@@ -0,0 +1,179 @@
|
||||
uniform sampler2D u_edgeTexture2D;
|
||||
uniform sampler2D u_cellTexture2D;
|
||||
|
||||
attribute vec2 a_localCoord;
|
||||
attribute float a_face;
|
||||
|
||||
attribute float a_colorCell;
|
||||
attribute float a_colorPosI;
|
||||
attribute float a_colorNegI;
|
||||
attribute float a_colorPosJ;
|
||||
attribute float a_colorNegJ;
|
||||
attribute float a_colorPosK;
|
||||
attribute float a_colorNegK;
|
||||
|
||||
varying vec2 v_localCoord;
|
||||
varying vec4 v_cellColor;
|
||||
varying vec4 v_bottomColor;
|
||||
varying vec4 v_rightColor;
|
||||
varying vec4 v_topColor;
|
||||
varying vec4 v_leftColor;
|
||||
|
||||
// Native visualization lib stuff
|
||||
uniform mat4 cvfu_modelViewProjectionMatrix;
|
||||
uniform mat4 cvfu_modelViewMatrix;
|
||||
uniform mat3 cvfu_normalMatrix;
|
||||
|
||||
attribute vec4 cvfa_vertex;
|
||||
attribute vec3 cvfa_normal;
|
||||
|
||||
varying vec3 v_ecPosition;
|
||||
varying vec3 v_ecNormal;
|
||||
// End native vz stuff
|
||||
|
||||
#define POS_I 0
|
||||
#define NEG_I 1
|
||||
#define POS_J 2
|
||||
#define NEG_J 3
|
||||
#define POS_K 4
|
||||
#define NEG_K 5
|
||||
|
||||
//
|
||||
// 7---------6
|
||||
// /| /| |k
|
||||
// / | / | | /j
|
||||
// 4---------5 | |/
|
||||
// | 3------|--2 *---i
|
||||
// | / | /
|
||||
// |/ |/
|
||||
// 0---------1
|
||||
//
|
||||
// Face layout expected
|
||||
// POS_I 1, 2, 6, 5
|
||||
// NEG_I 0, 4, 7, 3
|
||||
// POS_J 3, 7, 6, 2
|
||||
// NEG_J 0, 1, 5, 4
|
||||
// POS_K 4, 5, 6, 7
|
||||
// NEG_K 0, 3, 2, 1
|
||||
//
|
||||
|
||||
vec4 getColorFromTextureCoord(float textureCoord, vec4 cellColor)
|
||||
{
|
||||
|
||||
if (textureCoord < 0)
|
||||
return cellColor;
|
||||
else
|
||||
return texture2D(u_edgeTexture2D, vec2(textureCoord, 0.5f ));
|
||||
|
||||
// Alternative to ifs
|
||||
// return (textureCoord < 0)*cellColor + (textureCoord >= 0)*texture2D(u_edgeTexture2D, vec2(textureCoord, 0.5f ));
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
v_localCoord = a_localCoord;
|
||||
|
||||
if ( a_colorCell < 0)
|
||||
v_cellColor = vec4(0.75, 0.75, 0.75, 1); // Light grayish
|
||||
else
|
||||
v_cellColor = texture2D(u_cellTexture2D, vec2( a_colorCell, 0.5f));
|
||||
|
||||
/*
|
||||
// Performance test code
|
||||
v_bottomColor = 0.5*getColorFromTextureCoord(a_colorNegK, v_cellColor)+ getColorFromTextureCoord(a_colorNegI, v_cellColor);
|
||||
v_rightColor = getColorFromTextureCoord(a_colorPosJ, v_cellColor);
|
||||
v_topColor = getColorFromTextureCoord(a_colorPosK, v_cellColor);
|
||||
v_leftColor = 0.5*getColorFromTextureCoord(a_colorNegJ, v_cellColor)+ getColorFromTextureCoord(a_colorPosI, v_cellColor);
|
||||
*/
|
||||
|
||||
/*
|
||||
// Alternative to ifs
|
||||
v_bottomColor =
|
||||
(a_face == POS_I) * getColorFromTextureCoord(a_colorNegK, v_cellColor)
|
||||
+ (a_face == NEG_I) * getColorFromTextureCoord(a_colorNegJ, v_cellColor)
|
||||
+ (a_face == POS_J) * getColorFromTextureCoord(a_colorNegI, v_cellColor)
|
||||
+ (a_face == NEG_J) * getColorFromTextureCoord(a_colorNegK, v_cellColor)
|
||||
+ (a_face == POS_K) * getColorFromTextureCoord(a_colorNegJ, v_cellColor)
|
||||
+ (a_face == NEG_K) * getColorFromTextureCoord(a_colorNegI, v_cellColor);
|
||||
v_rightColor =
|
||||
(a_face == POS_I) * getColorFromTextureCoord(a_colorPosJ, v_cellColor)
|
||||
+ (a_face == NEG_I) * getColorFromTextureCoord(a_colorPosK, v_cellColor)
|
||||
+ (a_face == POS_J) * getColorFromTextureCoord(a_colorPosK, v_cellColor)
|
||||
+ (a_face == NEG_J) * getColorFromTextureCoord(a_colorPosI, v_cellColor)
|
||||
+ (a_face == POS_K) * getColorFromTextureCoord(a_colorPosI, v_cellColor)
|
||||
+ (a_face == NEG_K) * getColorFromTextureCoord(a_colorPosJ, v_cellColor);
|
||||
v_topColor =
|
||||
(a_face == POS_I) * getColorFromTextureCoord(a_colorPosK, v_cellColor)
|
||||
+ (a_face == NEG_I) * getColorFromTextureCoord(a_colorPosJ, v_cellColor)
|
||||
+ (a_face == POS_J) * getColorFromTextureCoord(a_colorPosI, v_cellColor)
|
||||
+ (a_face == NEG_J) * getColorFromTextureCoord(a_colorPosK, v_cellColor)
|
||||
+ (a_face == POS_K) * getColorFromTextureCoord(a_colorPosJ, v_cellColor)
|
||||
+ (a_face == NEG_K) * getColorFromTextureCoord(a_colorPosI, v_cellColor);
|
||||
v_leftColor =
|
||||
(a_face == POS_I) * getColorFromTextureCoord(a_colorNegJ, v_cellColor)
|
||||
+ (a_face == NEG_I) * getColorFromTextureCoord(a_colorNegK, v_cellColor)
|
||||
+ (a_face == POS_J) * getColorFromTextureCoord(a_colorNegK, v_cellColor)
|
||||
+ (a_face == NEG_J) * getColorFromTextureCoord(a_colorNegI, v_cellColor)
|
||||
+ (a_face == POS_K) * getColorFromTextureCoord(a_colorNegI, v_cellColor)
|
||||
+ (a_face == NEG_K) * getColorFromTextureCoord(a_colorNegJ, v_cellColor);
|
||||
*/
|
||||
|
||||
///*
|
||||
if (a_face == POS_I)
|
||||
{
|
||||
v_bottomColor = getColorFromTextureCoord(a_colorNegK, v_cellColor);
|
||||
v_rightColor = getColorFromTextureCoord(a_colorPosJ, v_cellColor);
|
||||
v_topColor = getColorFromTextureCoord(a_colorPosK, v_cellColor);
|
||||
v_leftColor = getColorFromTextureCoord(a_colorNegJ, v_cellColor);
|
||||
}
|
||||
else if (a_face == NEG_I)
|
||||
{
|
||||
v_bottomColor = getColorFromTextureCoord(a_colorNegJ, v_cellColor);
|
||||
v_rightColor = getColorFromTextureCoord(a_colorPosK, v_cellColor);
|
||||
v_topColor = getColorFromTextureCoord(a_colorPosJ, v_cellColor);
|
||||
v_leftColor = getColorFromTextureCoord(a_colorNegK, v_cellColor);
|
||||
}
|
||||
else if (a_face == POS_J )
|
||||
{
|
||||
v_bottomColor = getColorFromTextureCoord(a_colorNegI, v_cellColor);
|
||||
v_rightColor = getColorFromTextureCoord(a_colorPosK, v_cellColor);
|
||||
v_topColor = getColorFromTextureCoord(a_colorPosI, v_cellColor);
|
||||
v_leftColor = getColorFromTextureCoord(a_colorNegK, v_cellColor);
|
||||
}
|
||||
else if (a_face == NEG_J)
|
||||
{
|
||||
v_bottomColor = getColorFromTextureCoord(a_colorNegK, v_cellColor);
|
||||
v_rightColor = getColorFromTextureCoord(a_colorPosI, v_cellColor);
|
||||
v_topColor = getColorFromTextureCoord(a_colorPosK, v_cellColor);
|
||||
v_leftColor = getColorFromTextureCoord(a_colorNegI, v_cellColor);
|
||||
}
|
||||
else if (a_face == POS_K )
|
||||
{
|
||||
v_bottomColor = getColorFromTextureCoord(a_colorNegJ, v_cellColor);
|
||||
v_rightColor = getColorFromTextureCoord(a_colorPosI, v_cellColor);
|
||||
v_topColor = getColorFromTextureCoord(a_colorPosJ, v_cellColor);
|
||||
v_leftColor = getColorFromTextureCoord(a_colorNegI, v_cellColor);
|
||||
}
|
||||
else if (a_face == NEG_K)
|
||||
{
|
||||
v_bottomColor = getColorFromTextureCoord(a_colorNegI, v_cellColor);
|
||||
v_rightColor = getColorFromTextureCoord(a_colorPosJ, v_cellColor);
|
||||
v_topColor = getColorFromTextureCoord(a_colorPosI, v_cellColor);
|
||||
v_leftColor = getColorFromTextureCoord(a_colorNegJ, v_cellColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
v_bottomColor = getColorFromTextureCoord(a_colorCell, v_cellColor);
|
||||
v_rightColor = getColorFromTextureCoord(a_colorCell, v_cellColor);
|
||||
v_topColor = getColorFromTextureCoord(a_colorCell, v_cellColor);
|
||||
v_leftColor = getColorFromTextureCoord(a_colorCell, v_cellColor);
|
||||
}
|
||||
//*/
|
||||
|
||||
// Transforms vertex position and normal vector to eye space
|
||||
v_ecPosition = (cvfu_modelViewMatrix * cvfa_vertex).xyz;
|
||||
v_ecNormal = cvfu_normalMatrix * cvfa_normal;
|
||||
|
||||
gl_Position = cvfu_modelViewProjectionMatrix*cvfa_vertex;
|
||||
}
|
||||
|
||||