@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.6.0 → 3.7.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/LICENSE +2 -2
- package/dist/RenderingEngine.d.ts +1 -0
- package/dist/RenderingEngine.d.ts.map +1 -1
- package/dist/RenderingEngine.js +8 -4
- package/dist/RenderingEngine.js.map +1 -1
- package/dist/injectors/Tag3dGeometryCreationInjector.d.ts.map +1 -1
- package/dist/injectors/Tag3dGeometryCreationInjector.js +32 -18
- package/dist/injectors/Tag3dGeometryCreationInjector.js.map +1 -1
- package/dist/loaders/EnvironmentMapLoader.js +1 -1
- package/dist/loaders/EnvironmentMapLoader.js.map +1 -1
- package/dist/loaders/LightLoader.js +7 -7
- package/dist/loaders/LightLoader.js.map +1 -1
- package/dist/loaders/MaterialLoader.d.ts +1 -1
- package/dist/managers/EnvironmentGeometryManager.js +2 -2
- package/dist/managers/EnvironmentGeometryManager.js.map +1 -1
- package/dist/managers/PostProcessingManager.d.ts +4 -1
- package/dist/managers/PostProcessingManager.d.ts.map +1 -1
- package/dist/managers/PostProcessingManager.js +22 -6
- package/dist/managers/PostProcessingManager.js.map +1 -1
- package/dist/managers/RenderingManager.d.ts.map +1 -1
- package/dist/managers/RenderingManager.js +0 -1
- package/dist/managers/RenderingManager.js.map +1 -1
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts +1 -1
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js +2 -2
- package/dist/managers/postprocessing/ao/ao/shader/ao_compose.js.map +1 -1
- package/dist/managers/postprocessing/ao/ao/shader/ao_utils.d.ts +2 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_utils.d.ts.map +1 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_utils.js +86 -0
- package/dist/managers/postprocessing/ao/ao/shader/ao_utils.js.map +1 -0
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js +2 -2
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js.map +1 -1
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts +1 -1
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.js +100 -43
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.js.map +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +6 -4
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js +67 -41
- package/dist/managers/postprocessing/ao/poissionDenoise/shader/poissionDenoise.js.map +1 -1
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js +3 -1
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js.map +1 -1
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts +1 -1
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.js +38 -52
- package/dist/managers/postprocessing/ao/ssao/shader/ssao.js.map +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts.map +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/basic.js +3 -0
- package/dist/managers/postprocessing/ao/utils/shader/basic.js.map +1 -1
- package/package.json +17 -17
|
@@ -5,10 +5,12 @@ const three_1 = require("three");
|
|
|
5
5
|
const AOEffect_1 = require("../ao/AOEffect");
|
|
6
6
|
const AOPass_1 = require("../ao/AOPass");
|
|
7
7
|
const ssao_1 = require("./shader/ssao");
|
|
8
|
+
const ao_utils_1 = require("../ao/shader/ao_utils");
|
|
9
|
+
const finalFragmentShader = ssao_1.ssao.replace('#include <ao_utils>', ao_utils_1.ao_utils);
|
|
8
10
|
class SSAOPass extends AOPass_1.AOPass {
|
|
9
11
|
// #region Constructors (1)
|
|
10
12
|
constructor(camera, scene) {
|
|
11
|
-
super(camera, scene,
|
|
13
|
+
super(camera, scene, finalFragmentShader);
|
|
12
14
|
}
|
|
13
15
|
}
|
|
14
16
|
class SSAOEffect extends AOEffect_1.AOEffect {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSAOEffect.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/ssao/SSAOEffect.ts"],"names":[],"mappings":";;;AACA,iCAA+C;AAC/C,6CAA0C;AAC1C,yCAAsC;AACtC,wCAAuD;
|
|
1
|
+
{"version":3,"file":"SSAOEffect.js","sourceRoot":"","sources":["../../../../../src/managers/postprocessing/ao/ssao/SSAOEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const ssao = "\nvarying vec2 vUv;\n\nuniform highp sampler2D depthTexture;\nuniform
|
|
1
|
+
export declare const ssao = "\nvarying vec2 vUv;\n\nuniform highp sampler2D depthTexture;\nuniform mat4 projectionViewMatrix;\nuniform mat4 cameraMatrixWorld;\n\nuniform sampler2D blueNoiseTexture;\nuniform vec2 blueNoiseRepeat;\nuniform vec2 texSize;\nuniform float aoDistance;\nuniform float distancePower;\nuniform float cameraNear;\nuniform float cameraFar;\nuniform int frame;\n\nuniform vec3[spp] samples;\nuniform float[spp] samplesR;\n\n#include <common>\n#include <packing>\n#include <sampleBlueNoise>\n#include <ao_utils>\n\nhighp float linearize_depth(highp float d, highp float zNear, highp float zFar) {\n highp float z_n = 2.0 * d - 1.0;\n return 2.0 * zNear * zFar / (zFar + zNear - z_n * (zFar - zNear));\n}\n\nvoid main() {\n float depth = textureLod(depthTexture, vUv, 0.).x;\n vec3 normal = computeNormal(vUv);\n\n // filter out background\n if (depth == 1.0) {\n gl_FragColor = vec4(normal, 1.0);\n return;\n }\n\n vec3 worldPos = computeWorldPosition(depth, vUv);\n vec3 screenSpaceNormal = getUnpackedNormal(vUv);\n\n #ifdef animatedNoise\n int seed = frame;\n #else\n int seed = 0;\n #endif\n\n vec4 noise = sampleBlueNoise(blueNoiseTexture, seed, blueNoiseRepeat, texSize);\n\n vec3 randomVec = normalize(noise.rgb * 2.0 - 1.0);\n vec3 tangent = normalize(randomVec - normal * dot(randomVec, normal));\n vec3 bitangent = cross(normal, tangent);\n mat3 tbn = mat3(tangent, bitangent, normal);\n\n float occluded = 0.0;\n float totalWeight = 0.0;\n\n vec3 samplePos;\n\n float sppF = float(spp);\n\n for (float i = 0.0; i < sppF; i++) {\n vec3 sampleDirection = tbn * samples[int(i)];\n\n // make sure sample direction is in the same hemisphere as the normal\n if (dot(sampleDirection, normal) < 0.0) sampleDirection *= -1.0;\n\n float moveAmt = samplesR[int(mod(i + noise.a * sppF, sppF))];\n samplePos = worldPos + aoDistance * moveAmt * sampleDirection;\n\n vec4 offset = projectionViewMatrix * vec4(samplePos, 1.0);\n offset.xyz /= offset.w;\n offset.xyz = offset.xyz * 0.5 + 0.5;\n\n float sampleDepth = textureLod(depthTexture, offset.xy, 0.0).x;\n\n if(sampleDepth == 1.0) {\n occluded += 0.0;\n totalWeight += 1.0;\n continue;\n }\n\n vec3 sampleNormal = getUnpackedNormal(offset.xy);\n\n float distSample = linearize_depth(sampleDepth, cameraNear, cameraFar);\n float distWorld = linearize_depth(offset.z, cameraNear, cameraFar);\n\n float depthBias = 0.001;\n float rangeCheck = smoothstep(0.0, 1.0, aoDistance / (abs(distSample - distWorld) + depthBias));\n rangeCheck = pow(rangeCheck, distancePower);\n rangeCheck = clamp(rangeCheck, 0.0, 1.0);\n float weight = dot(sampleDirection, normal);\n weight = clamp(weight, 0.0, 1.0);\n\n \n // check if the normals are in the same direction\n float dotProduct = dot(screenSpaceNormal, normalize(sampleNormal));\n if (dotProduct < 0.9999) {\n occluded += rangeCheck * weight * (distSample < distWorld ? 1.0 : 0.0);\n totalWeight += weight;\n } else {\n if(areDepthsOnSamePlane(depth, sampleDepth, vUv, offset.xy, normal, 0.1)) {\n occluded += 0.0;\n totalWeight += 1.0;\n } else {\n occluded += rangeCheck * weight * (distSample < distWorld ? 1.0 : 0.0);\n totalWeight += weight;\n }\n }\n }\n\n float occ = clamp(1.0 - occluded / totalWeight, 0.0, 1.0);\n gl_FragColor = vec4(normal, occ);\n}\n";
|
|
2
2
|
//# sourceMappingURL=ssao.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssao.d.ts","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/ssao/shader/ssao.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"ssao.d.ts","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/ssao/shader/ssao.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,kmHAmHhB,CAAC"}
|
|
@@ -5,15 +5,12 @@ exports.ssao = `
|
|
|
5
5
|
varying vec2 vUv;
|
|
6
6
|
|
|
7
7
|
uniform highp sampler2D depthTexture;
|
|
8
|
-
uniform sampler2D normalTexture;
|
|
9
8
|
uniform mat4 projectionViewMatrix;
|
|
10
9
|
uniform mat4 cameraMatrixWorld;
|
|
11
10
|
|
|
12
11
|
uniform sampler2D blueNoiseTexture;
|
|
13
12
|
uniform vec2 blueNoiseRepeat;
|
|
14
13
|
uniform vec2 texSize;
|
|
15
|
-
uniform mat4 projectionMatrixInverse;
|
|
16
|
-
|
|
17
14
|
uniform float aoDistance;
|
|
18
15
|
uniform float distancePower;
|
|
19
16
|
uniform float cameraNear;
|
|
@@ -26,43 +23,7 @@ uniform float[spp] samplesR;
|
|
|
26
23
|
#include <common>
|
|
27
24
|
#include <packing>
|
|
28
25
|
#include <sampleBlueNoise>
|
|
29
|
-
|
|
30
|
-
// source: https://github.com/N8python/ssao/blob/master/EffectShader.js#L52
|
|
31
|
-
vec3 getWorldPos(const float depth, const vec2 coord) {
|
|
32
|
-
float z = depth * 2.0 - 1.0;
|
|
33
|
-
vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);
|
|
34
|
-
vec4 viewSpacePosition = projectionMatrixInverse * clipSpacePosition;
|
|
35
|
-
|
|
36
|
-
// Perspective division
|
|
37
|
-
vec4 worldSpacePosition = cameraMatrixWorld * viewSpacePosition;
|
|
38
|
-
worldSpacePosition.xyz /= worldSpacePosition.w;
|
|
39
|
-
|
|
40
|
-
return worldSpacePosition.xyz;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
vec3 computeNormal(vec3 worldPos, vec2 vUv) {
|
|
44
|
-
vec2 size = vec2(textureSize(depthTexture, 0));
|
|
45
|
-
ivec2 p = ivec2(vUv * size);
|
|
46
|
-
float c0 = texelFetch(depthTexture, p, 0).x;
|
|
47
|
-
float l2 = texelFetch(depthTexture, p - ivec2(2, 0), 0).x;
|
|
48
|
-
float l1 = texelFetch(depthTexture, p - ivec2(1, 0), 0).x;
|
|
49
|
-
float r1 = texelFetch(depthTexture, p + ivec2(1, 0), 0).x;
|
|
50
|
-
float r2 = texelFetch(depthTexture, p + ivec2(2, 0), 0).x;
|
|
51
|
-
float b2 = texelFetch(depthTexture, p - ivec2(0, 2), 0).x;
|
|
52
|
-
float b1 = texelFetch(depthTexture, p - ivec2(0, 1), 0).x;
|
|
53
|
-
float t1 = texelFetch(depthTexture, p + ivec2(0, 1), 0).x;
|
|
54
|
-
float t2 = texelFetch(depthTexture, p + ivec2(0, 2), 0).x;
|
|
55
|
-
float dl = abs((2.0 * l1 - l2) - c0);
|
|
56
|
-
float dr = abs((2.0 * r1 - r2) - c0);
|
|
57
|
-
float db = abs((2.0 * b1 - b2) - c0);
|
|
58
|
-
float dt = abs((2.0 * t1 - t2) - c0);
|
|
59
|
-
vec3 ce = getWorldPos(c0, vUv).xyz;
|
|
60
|
-
vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / size.x, 0.0))).xyz
|
|
61
|
-
: -ce + getWorldPos(r1, (vUv + vec2(1.0 / size.x, 0.0))).xyz;
|
|
62
|
-
vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / size.y))).xyz
|
|
63
|
-
: -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / size.y))).xyz;
|
|
64
|
-
return normalize(cross(dpdx, dpdy));
|
|
65
|
-
}
|
|
26
|
+
#include <ao_utils>
|
|
66
27
|
|
|
67
28
|
highp float linearize_depth(highp float d, highp float zNear, highp float zFar) {
|
|
68
29
|
highp float z_n = 2.0 * d - 1.0;
|
|
@@ -71,21 +32,22 @@ highp float linearize_depth(highp float d, highp float zNear, highp float zFar)
|
|
|
71
32
|
|
|
72
33
|
void main() {
|
|
73
34
|
float depth = textureLod(depthTexture, vUv, 0.).x;
|
|
35
|
+
vec3 normal = computeNormal(vUv);
|
|
74
36
|
|
|
75
37
|
// filter out background
|
|
76
38
|
if (depth == 1.0) {
|
|
77
|
-
|
|
39
|
+
gl_FragColor = vec4(normal, 1.0);
|
|
78
40
|
return;
|
|
79
41
|
}
|
|
80
42
|
|
|
81
|
-
vec3 worldPos =
|
|
82
|
-
vec3
|
|
43
|
+
vec3 worldPos = computeWorldPosition(depth, vUv);
|
|
44
|
+
vec3 screenSpaceNormal = getUnpackedNormal(vUv);
|
|
83
45
|
|
|
84
|
-
#ifdef animatedNoise
|
|
85
|
-
|
|
86
|
-
#else
|
|
87
|
-
|
|
88
|
-
#endif
|
|
46
|
+
#ifdef animatedNoise
|
|
47
|
+
int seed = frame;
|
|
48
|
+
#else
|
|
49
|
+
int seed = 0;
|
|
50
|
+
#endif
|
|
89
51
|
|
|
90
52
|
vec4 noise = sampleBlueNoise(blueNoiseTexture, seed, blueNoiseRepeat, texSize);
|
|
91
53
|
|
|
@@ -116,15 +78,39 @@ void main() {
|
|
|
116
78
|
|
|
117
79
|
float sampleDepth = textureLod(depthTexture, offset.xy, 0.0).x;
|
|
118
80
|
|
|
81
|
+
if(sampleDepth == 1.0) {
|
|
82
|
+
occluded += 0.0;
|
|
83
|
+
totalWeight += 1.0;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
vec3 sampleNormal = getUnpackedNormal(offset.xy);
|
|
88
|
+
|
|
119
89
|
float distSample = linearize_depth(sampleDepth, cameraNear, cameraFar);
|
|
120
90
|
float distWorld = linearize_depth(offset.z, cameraNear, cameraFar);
|
|
121
91
|
|
|
122
|
-
float
|
|
92
|
+
float depthBias = 0.001;
|
|
93
|
+
float rangeCheck = smoothstep(0.0, 1.0, aoDistance / (abs(distSample - distWorld) + depthBias));
|
|
123
94
|
rangeCheck = pow(rangeCheck, distancePower);
|
|
95
|
+
rangeCheck = clamp(rangeCheck, 0.0, 1.0);
|
|
124
96
|
float weight = dot(sampleDirection, normal);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
97
|
+
weight = clamp(weight, 0.0, 1.0);
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
// check if the normals are in the same direction
|
|
101
|
+
float dotProduct = dot(screenSpaceNormal, normalize(sampleNormal));
|
|
102
|
+
if (dotProduct < 0.9999) {
|
|
103
|
+
occluded += rangeCheck * weight * (distSample < distWorld ? 1.0 : 0.0);
|
|
104
|
+
totalWeight += weight;
|
|
105
|
+
} else {
|
|
106
|
+
if(areDepthsOnSamePlane(depth, sampleDepth, vUv, offset.xy, normal, 0.1)) {
|
|
107
|
+
occluded += 0.0;
|
|
108
|
+
totalWeight += 1.0;
|
|
109
|
+
} else {
|
|
110
|
+
occluded += rangeCheck * weight * (distSample < distWorld ? 1.0 : 0.0);
|
|
111
|
+
totalWeight += weight;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
128
114
|
}
|
|
129
115
|
|
|
130
116
|
float occ = clamp(1.0 - occluded / totalWeight, 0.0, 1.0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssao.js","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/ssao/shader/ssao.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"ssao.js","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/ssao/shader/ssao.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmHnB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const basic = "\nvarying vec2 vUv;\n\nvoid main() {\n vUv = position.xy * 0.5 + 0.5;\n gl_Position = vec4(position.xy, 1.0, 1.0);\n}\n";
|
|
1
|
+
export declare const basic = "\nvarying vec2 vUv;\n\nout mat4 viewMatrixInverse;\n\nvoid main() {\n viewMatrixInverse = inverse(viewMatrix);\n vUv = position.xy * 0.5 + 0.5;\n gl_Position = vec4(position.xy, 1.0, 1.0);\n}\n";
|
|
2
2
|
//# sourceMappingURL=basic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/basic.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/basic.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,+MAUjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/basic.ts"],"names":[],"mappings":";;;AAAa,QAAA,KAAK,GAAG
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../../src/managers/postprocessing/ao/utils/shader/basic.ts"],"names":[],"mappings":";;;AAAa,QAAA,KAAK,GAAG;;;;;;;;;;CAUpB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapediver/viewer.rendering-engine.rendering-engine-threejs",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.7.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "Michael Oppitz <michael@shapediver.com>",
|
|
@@ -38,21 +38,21 @@
|
|
|
38
38
|
"testEnvironment": "node"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@shapediver/viewer.data-engine.gltf-converter": "3.
|
|
42
|
-
"@shapediver/viewer.data-engine.shared-types": "3.
|
|
43
|
-
"@shapediver/viewer.data-engine.tag3d-engine": "3.
|
|
44
|
-
"@shapediver/viewer.rendering-engine.animation-engine": "3.
|
|
45
|
-
"@shapediver/viewer.rendering-engine.animation-frame-engine": "3.
|
|
46
|
-
"@shapediver/viewer.rendering-engine.camera-engine": "3.
|
|
47
|
-
"@shapediver/viewer.rendering-engine.canvas-engine": "3.
|
|
48
|
-
"@shapediver/viewer.rendering-engine.intersection-engine": "3.
|
|
49
|
-
"@shapediver/viewer.rendering-engine.light-engine": "3.
|
|
50
|
-
"@shapediver/viewer.rendering-engine.rendering-engine": "3.
|
|
51
|
-
"@shapediver/viewer.shared.global-access-objects": "3.
|
|
52
|
-
"@shapediver/viewer.shared.math": "3.
|
|
53
|
-
"@shapediver/viewer.shared.node-tree": "3.
|
|
54
|
-
"@shapediver/viewer.shared.services": "3.
|
|
55
|
-
"@shapediver/viewer.shared.types": "3.
|
|
41
|
+
"@shapediver/viewer.data-engine.gltf-converter": "3.7.1",
|
|
42
|
+
"@shapediver/viewer.data-engine.shared-types": "3.7.1",
|
|
43
|
+
"@shapediver/viewer.data-engine.tag3d-engine": "3.7.1",
|
|
44
|
+
"@shapediver/viewer.rendering-engine.animation-engine": "3.7.1",
|
|
45
|
+
"@shapediver/viewer.rendering-engine.animation-frame-engine": "3.7.1",
|
|
46
|
+
"@shapediver/viewer.rendering-engine.camera-engine": "3.7.1",
|
|
47
|
+
"@shapediver/viewer.rendering-engine.canvas-engine": "3.7.1",
|
|
48
|
+
"@shapediver/viewer.rendering-engine.intersection-engine": "3.7.1",
|
|
49
|
+
"@shapediver/viewer.rendering-engine.light-engine": "3.7.1",
|
|
50
|
+
"@shapediver/viewer.rendering-engine.rendering-engine": "3.7.1",
|
|
51
|
+
"@shapediver/viewer.shared.global-access-objects": "3.7.1",
|
|
52
|
+
"@shapediver/viewer.shared.math": "3.7.1",
|
|
53
|
+
"@shapediver/viewer.shared.node-tree": "3.7.1",
|
|
54
|
+
"@shapediver/viewer.shared.services": "3.7.1",
|
|
55
|
+
"@shapediver/viewer.shared.types": "3.7.1",
|
|
56
56
|
"@tweenjs/tween.js": "^18.6.4",
|
|
57
57
|
"@types/stats.js": "^0.17.0",
|
|
58
58
|
"@types/three": "0.162.0",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"stats.js": "^0.17.0",
|
|
62
62
|
"three": "0.162.0"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "8bbe1cf6dbde5b0cc23f18a9528df5917dfb5435"
|
|
65
65
|
}
|