StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
944 B
37 lines
944 B
precision highp float;
|
|
|
|
attribute vec4 uv;
|
|
attribute float f;
|
|
|
|
uniform vec3 objectOffset;
|
|
uniform mat3 permutation;
|
|
uniform mat4 model, view, projection;
|
|
uniform float height, zOffset;
|
|
uniform sampler2D colormap;
|
|
|
|
varying float value, kill;
|
|
varying vec3 worldCoordinate;
|
|
varying vec2 planeCoordinate;
|
|
varying vec3 lightDirection, eyeDirection, surfaceNormal;
|
|
varying vec4 vColor;
|
|
|
|
void main() {
|
|
vec3 dataCoordinate = permutation * vec3(uv.xy, height);
|
|
worldCoordinate = objectOffset + dataCoordinate;
|
|
vec4 worldPosition = model * vec4(worldCoordinate, 1.0);
|
|
|
|
vec4 clipPosition = projection * view * worldPosition;
|
|
clipPosition.z += zOffset;
|
|
|
|
gl_Position = clipPosition;
|
|
value = f + objectOffset.z;
|
|
kill = -1.0;
|
|
planeCoordinate = uv.zw;
|
|
|
|
vColor = texture2D(colormap, vec2(value, value));
|
|
|
|
//Don't do lighting for contours
|
|
surfaceNormal = vec3(1,0,0);
|
|
eyeDirection = vec3(0,1,0);
|
|
lightDirection = vec3(0,0,1);
|
|
}
|
|
|