@openglobus/og 0.16.0 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@openglobus/og.esm.js +2 -2
- package/dist/@openglobus/og.esm.js.map +1 -1
- package/dist/@openglobus/og.umd.js +2 -2
- package/dist/@openglobus/og.umd.js.map +1 -1
- package/package.json +1 -2
- package/src/og/control/LayerSwitcher.js +4 -3
- package/src/og/shaders/drawnode.js +138 -89
- package/src/og/shaders/geoObject.js +57 -46
- package/src/og/shaders/ray.js +15 -21
package/src/og/shaders/ray.js
CHANGED
|
@@ -27,13 +27,14 @@ export function rayScreen() {
|
|
|
27
27
|
},
|
|
28
28
|
vertexShader:
|
|
29
29
|
`precision highp float;
|
|
30
|
-
|
|
30
|
+
|
|
31
|
+
attribute vec4 a_rgba;
|
|
31
32
|
attribute vec3 a_startPosHigh;
|
|
32
33
|
attribute vec3 a_startPosLow;
|
|
33
34
|
attribute vec3 a_endPosHigh;
|
|
34
35
|
attribute vec3 a_endPosLow;
|
|
36
|
+
attribute vec2 a_vertices;
|
|
35
37
|
attribute float a_thickness;
|
|
36
|
-
attribute vec4 a_rgba;
|
|
37
38
|
|
|
38
39
|
varying vec4 v_rgba;
|
|
39
40
|
|
|
@@ -48,38 +49,31 @@ export function rayScreen() {
|
|
|
48
49
|
|
|
49
50
|
v_rgba = vec4(a_rgba.rgb, a_rgba.a * uOpacity);
|
|
50
51
|
|
|
51
|
-
vec3
|
|
52
|
-
|
|
53
|
-
vec3 startPos = a_startPosHigh + a_startPosLow;
|
|
54
|
-
float length = length((a_endPosHigh + a_endPosLow) - startPos);
|
|
55
|
-
vec3 direction = normalize((a_endPosHigh + a_endPosLow) - startPos);
|
|
56
|
-
vec3 vertPos = startPos + a_vertices.y * direction * length;
|
|
52
|
+
vec3 v = (a_endPosHigh - a_startPosHigh) + (a_endPosLow - a_startPosLow);
|
|
57
53
|
|
|
58
|
-
vec3 look =
|
|
59
|
-
vec3 up = normalize(
|
|
54
|
+
vec3 look = (a_startPosHigh - eyePositionHigh) + (a_startPosLow - eyePositionLow) + v * a_vertices.y;
|
|
55
|
+
vec3 up = normalize(normalize(v));
|
|
60
56
|
vec3 right = normalize(cross(look,up));
|
|
61
57
|
|
|
62
|
-
float dist = dot(
|
|
58
|
+
float dist = dot(look, vec3(viewMatrix[0][2], viewMatrix[1][2], viewMatrix[2][2]));
|
|
63
59
|
float focalSize = 2.0 * dist * resolution;
|
|
64
|
-
vec3
|
|
60
|
+
vec3 vert = right * a_thickness * focalSize * a_vertices.x;
|
|
65
61
|
|
|
66
|
-
vec3 highDiff
|
|
67
|
-
vec3 lowDiff
|
|
62
|
+
vec3 highDiff;
|
|
63
|
+
vec3 lowDiff;
|
|
68
64
|
|
|
69
65
|
if(a_vertices.y == 0.0){
|
|
70
|
-
highDiff
|
|
71
|
-
|
|
66
|
+
highDiff = a_startPosHigh - eyePositionHigh;
|
|
67
|
+
vert += a_startPosLow - eyePositionLow;
|
|
72
68
|
}else{
|
|
73
|
-
highDiff
|
|
74
|
-
|
|
69
|
+
highDiff = a_endPosHigh - eyePositionHigh;
|
|
70
|
+
vert += a_endPosLow - eyePositionLow;
|
|
75
71
|
}
|
|
76
72
|
|
|
77
73
|
mat4 viewMatrixRTE = viewMatrix;
|
|
78
74
|
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
79
|
-
|
|
80
|
-
vec4 pos = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);
|
|
81
75
|
|
|
82
|
-
gl_Position = projectionMatrix *
|
|
76
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + vert, 1.0);
|
|
83
77
|
}`,
|
|
84
78
|
fragmentShader:
|
|
85
79
|
`precision highp float;
|