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.
26 lines
707 B
26 lines
707 B
precision highp float;
|
|
|
|
attribute vec3 position;
|
|
|
|
uniform mat4 model, view, projection;
|
|
uniform vec3 offset, majorAxis, minorAxis, screenAxis;
|
|
uniform float lineWidth;
|
|
uniform vec2 screenShape;
|
|
|
|
vec3 project(vec3 p) {
|
|
vec4 pp = projection * view * model * vec4(p, 1.0);
|
|
return pp.xyz / max(pp.w, 0.0001);
|
|
}
|
|
|
|
void main() {
|
|
vec3 major = position.x * majorAxis;
|
|
vec3 minor = position.y * minorAxis;
|
|
|
|
vec3 vPosition = major + minor + offset;
|
|
vec3 pPosition = project(vPosition);
|
|
vec3 offset = project(vPosition + screenAxis * position.z);
|
|
|
|
vec2 screen = normalize((offset - pPosition).xy * screenShape) / screenShape;
|
|
|
|
gl_Position = vec4(pPosition + vec3(0.5 * screen * lineWidth, 0), 1.0);
|
|
}
|
|
|