@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.16.8 → 3.16.10
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/RenderingEngine.d.ts +294 -294
- package/dist/RenderingEngine.js +987 -977
- package/dist/RenderingEngine.js.map +1 -1
- package/dist/index.d.ts +16 -16
- package/dist/index.js +57 -57
- package/dist/injectors/TextureUnifierInjector.d.ts +13 -13
- package/dist/injectors/TextureUnifierInjector.js +181 -171
- package/dist/injectors/TextureUnifierInjector.js.map +1 -1
- package/dist/interfaces/ILoader.d.ts +3 -3
- package/dist/interfaces/ILoader.js +2 -2
- package/dist/interfaces/IRenderingEngine.d.ts +45 -45
- package/dist/interfaces/IRenderingEngine.js +2 -2
- package/dist/loaders/EnvironmentMapLoader.d.ts +119 -119
- package/dist/loaders/EnvironmentMapLoader.js +512 -502
- package/dist/loaders/EnvironmentMapLoader.js.map +1 -1
- package/dist/loaders/GeometryLoader.d.ts +39 -39
- package/dist/loaders/GeometryLoader.d.ts.map +1 -1
- package/dist/loaders/GeometryLoader.js +603 -593
- package/dist/loaders/GeometryLoader.js.map +1 -1
- package/dist/loaders/HTMLElementAnchorLoader.d.ts +15 -15
- package/dist/loaders/HTMLElementAnchorLoader.js +98 -98
- package/dist/loaders/HTMLElementAnchorLoader.js.map +1 -1
- package/dist/loaders/LightLoader.d.ts +19 -19
- package/dist/loaders/LightLoader.js +197 -187
- package/dist/loaders/LightLoader.js.map +1 -1
- package/dist/loaders/MaterialLoader.d.ts +115 -115
- package/dist/loaders/MaterialLoader.d.ts.map +1 -1
- package/dist/loaders/MaterialLoader.js +1612 -1602
- package/dist/loaders/MaterialLoader.js.map +1 -1
- package/dist/managers/ARManager.d.ts +17 -17
- package/dist/managers/ARManager.js +128 -128
- package/dist/managers/ARManager.js.map +1 -1
- package/dist/managers/CameraManager.d.ts +19 -19
- package/dist/managers/CameraManager.js +244 -234
- package/dist/managers/CameraManager.js.map +1 -1
- package/dist/managers/EnvironmentGeometryManager.d.ts +32 -32
- package/dist/managers/EnvironmentGeometryManager.js +114 -114
- package/dist/managers/EnvironmentGeometryManager.js.map +1 -1
- package/dist/managers/FlagManager.d.ts +19 -19
- package/dist/managers/FlagManager.js +143 -143
- package/dist/managers/FlagManager.js.map +1 -1
- package/dist/managers/PostProcessingManager.d.ts +1019 -1019
- package/dist/managers/PostProcessingManager.js +1306 -1296
- package/dist/managers/PostProcessingManager.js.map +1 -1
- package/dist/managers/RenderingManager.d.ts +84 -84
- package/dist/managers/RenderingManager.d.ts.map +1 -1
- package/dist/managers/RenderingManager.js +679 -669
- package/dist/managers/RenderingManager.js.map +1 -1
- package/dist/managers/SceneTracingManager.d.ts +28 -28
- package/dist/managers/SceneTracingManager.js +160 -150
- package/dist/managers/SceneTracingManager.js.map +1 -1
- package/dist/managers/SceneTreeManager.d.ts +81 -81
- package/dist/managers/SceneTreeManager.d.ts.map +1 -1
- package/dist/managers/SceneTreeManager.js +500 -490
- package/dist/managers/SceneTreeManager.js.map +1 -1
- package/dist/managers/SettingsManager.d.ts +28 -28
- package/dist/managers/SettingsManager.js +284 -284
- package/dist/managers/SettingsManager.js.map +1 -1
- package/dist/managers/environmentGeometry/ContactShadow.d.ts +42 -42
- package/dist/managers/environmentGeometry/ContactShadow.js +295 -285
- package/dist/managers/environmentGeometry/ContactShadow.js.map +1 -1
- package/dist/managers/environmentGeometry/Grid.d.ts +20 -20
- package/dist/managers/environmentGeometry/Grid.js +110 -100
- package/dist/managers/environmentGeometry/Grid.js.map +1 -1
- package/dist/managers/environmentGeometry/GroundPlane.d.ts +21 -21
- package/dist/managers/environmentGeometry/GroundPlane.js +105 -95
- package/dist/managers/environmentGeometry/GroundPlane.js.map +1 -1
- package/dist/managers/environmentGeometry/GroundPlaneShadow.d.ts +21 -21
- package/dist/managers/environmentGeometry/GroundPlaneShadow.js +96 -86
- package/dist/managers/environmentGeometry/GroundPlaneShadow.js.map +1 -1
- package/dist/managers/environmentGeometry/IEnvironmentGeometry.d.ts +8 -8
- package/dist/managers/environmentGeometry/IEnvironmentGeometry.js +2 -2
- package/dist/managers/postprocessing/GodRaysManager.d.ts +12 -12
- package/dist/managers/postprocessing/GodRaysManager.js +73 -63
- package/dist/managers/postprocessing/GodRaysManager.js.map +1 -1
- package/dist/managers/postprocessing/OutlineManager.d.ts +15 -15
- package/dist/managers/postprocessing/OutlineManager.js +86 -76
- package/dist/managers/postprocessing/OutlineManager.js.map +1 -1
- package/dist/managers/postprocessing/SSAARenderPass.d.ts +53 -53
- package/dist/managers/postprocessing/SSAARenderPass.js +281 -281
- package/dist/managers/postprocessing/SSAARenderPass.js.map +1 -1
- package/dist/managers/postprocessing/SelectiveBloomManager.d.ts +14 -14
- package/dist/managers/postprocessing/SelectiveBloomManager.js +76 -66
- package/dist/managers/postprocessing/SelectiveBloomManager.js.map +1 -1
- package/dist/managers/postprocessing/ao/ao/AOEffect.d.ts +46 -46
- package/dist/managers/postprocessing/ao/ao/AOEffect.js +142 -142
- package/dist/managers/postprocessing/ao/ao/AOEffect.js.map +1 -1
- package/dist/managers/postprocessing/ao/ao/AOPass.d.ts +12 -12
- package/dist/managers/postprocessing/ao/ao/AOPass.js +108 -108
- package/dist/managers/postprocessing/ao/ao/AOPass.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.js +4 -4
- package/dist/managers/postprocessing/ao/ao/shader/ao_utils.d.ts +1 -1
- package/dist/managers/postprocessing/ao/ao/shader/ao_utils.js +4 -4
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.d.ts +14 -14
- package/dist/managers/postprocessing/ao/hbao/HBAOEffect.js +24 -24
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.d.ts +1 -1
- package/dist/managers/postprocessing/ao/hbao/shader/hbao.js +4 -4
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +33 -33
- package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +211 -211
- 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.js +4 -4
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.d.ts +14 -14
- package/dist/managers/postprocessing/ao/ssao/SSAOEffect.js +82 -82
- 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.js +4 -4
- package/dist/managers/postprocessing/ao/utils/shader/basic.d.ts +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/basic.js +4 -4
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.d.ts +1 -1
- package/dist/managers/postprocessing/ao/utils/shader/sampleBlueNoise.js +4 -4
- package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.d.ts +165 -165
- package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.js +299 -299
- package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.js.map +1 -1
- package/dist/managers/postprocessing/effects/tone-mapping/tone-mapping.d.ts +1 -1
- package/dist/managers/postprocessing/effects/tone-mapping/tone-mapping.js +4 -4
- package/dist/managers/postprocessing/utils/CopyMaterial.d.ts +37 -37
- package/dist/managers/postprocessing/utils/CopyMaterial.js +69 -69
- package/dist/managers/postprocessing/utils/CopyShader.d.ts +13 -13
- package/dist/managers/postprocessing/utils/CopyShader.js +12 -12
- package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts +9 -9
- package/dist/managers/postprocessing/utils/FullScreenQuad.js +28 -28
- package/dist/managers/postprocessing/utils/NormalPass.d.ts +87 -87
- package/dist/managers/postprocessing/utils/NormalPass.js +156 -156
- package/dist/managers/postprocessing/utils/NormalPass.js.map +1 -1
- package/dist/managers/postprocessing/utils/RenderPass.d.ts +114 -114
- package/dist/managers/postprocessing/utils/RenderPass.js +259 -259
- package/dist/managers/postprocessing/utils/RenderPass.js.map +1 -1
- package/dist/managers/sceneTree/SDTFUtils.d.ts +6 -6
- package/dist/managers/sceneTree/SDTFUtils.d.ts.map +1 -1
- package/dist/managers/sceneTree/SDTFUtils.js +50 -50
- package/dist/managers/sceneTree/SDTFUtils.js.map +1 -1
- package/dist/managers/sceneTree/SceenTreeManagerUtils.d.ts +7 -7
- package/dist/managers/sceneTree/SceenTreeManagerUtils.d.ts.map +1 -1
- package/dist/managers/sceneTree/SceenTreeManagerUtils.js +175 -165
- package/dist/managers/sceneTree/SceenTreeManagerUtils.js.map +1 -1
- package/dist/managers/sceneTree/ThreeJsDataUtils.d.ts +6 -6
- package/dist/managers/sceneTree/ThreeJsDataUtils.d.ts.map +1 -1
- package/dist/managers/sceneTree/ThreeJsDataUtils.js +80 -70
- package/dist/managers/sceneTree/ThreeJsDataUtils.js.map +1 -1
- package/dist/materials/GemMaterial.d.ts +37 -37
- package/dist/materials/GemMaterial.js +262 -252
- package/dist/materials/GemMaterial.js.map +1 -1
- package/dist/materials/MeshUnlitMaterialParameters.d.ts +3 -3
- package/dist/materials/MeshUnlitMaterialParameters.js +2 -2
- package/dist/materials/MultiPointsMaterial.d.ts +93 -93
- package/dist/materials/MultiPointsMaterial.js +577 -567
- package/dist/materials/MultiPointsMaterial.js.map +1 -1
- package/dist/materials/SpecularGlossinessMaterial.d.ts +13 -13
- package/dist/materials/SpecularGlossinessMaterial.js +171 -161
- package/dist/materials/SpecularGlossinessMaterial.js.map +1 -1
- package/dist/objects/SDColor.d.ts +16 -16
- package/dist/objects/SDColor.js +52 -52
- package/dist/objects/SDColor.js.map +1 -1
- package/dist/objects/SDObject.d.ts +27 -27
- package/dist/objects/SDObject.js +112 -102
- package/dist/objects/SDObject.js.map +1 -1
- package/dist/shaders/PCSS.d.ts +2 -2
- package/dist/shaders/PCSS.js +5 -5
- package/dist/shaders/gem.d.ts +2 -2
- package/dist/shaders/gem.js +5 -5
- package/dist/shaders/multi_points.d.ts +2 -2
- package/dist/shaders/multi_points.js +5 -5
- package/dist/styling/viewport-css.d.ts +1 -1
- package/dist/styling/viewport-css.js +4 -4
- package/dist/three/CSS2DRenderer.d.ts +31 -31
- package/dist/three/CSS2DRenderer.d.ts.map +1 -1
- package/dist/three/CSS2DRenderer.js +152 -152
- package/dist/three/CSS2DRenderer.js.map +1 -1
- package/dist/three/geometries/TextGeometry.d.ts +21 -21
- package/dist/three/geometries/TextGeometry.js +45 -45
- package/dist/three/geometries/TextGeometry.js.map +1 -1
- package/dist/three/loaders/RGBELoader.d.ts +23 -23
- package/dist/three/loaders/RGBELoader.js +311 -311
- package/dist/three/loaders/RGBELoader.js.map +1 -1
- package/dist/types/IThreejsData.d.ts +6 -6
- package/dist/types/IThreejsData.js +2 -2
- package/dist/types/ThreejsData.d.ts +10 -10
- package/dist/types/ThreejsData.js +41 -41
- package/package.json +18 -18
- package/dist/managers/InstanceGroupManager.d.ts +0 -58
- package/dist/managers/InstanceGroupManager.d.ts.map +0 -1
- package/dist/managers/InstanceGroupManager.js +0 -372
- package/dist/managers/InstanceGroupManager.js.map +0 -1
|
@@ -1,289 +1,299 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
47
|
-
|
|
48
|
-
this.
|
|
49
|
-
this.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
this.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
this.
|
|
81
|
-
this.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
this.
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
this.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
this.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
this.
|
|
106
|
-
this.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
this.
|
|
110
|
-
this.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
this.
|
|
115
|
-
|
|
116
|
-
this.
|
|
117
|
-
const
|
|
118
|
-
this.
|
|
119
|
-
this.
|
|
120
|
-
this.
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
this._renderingEngine.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
this._renderingEngine.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
this.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
this.
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ContactShadow = void 0;
|
|
37
|
+
const THREE = __importStar(require("three"));
|
|
38
|
+
const HorizontalBlurShader_js_1 = require("three/examples/jsm/shaders/HorizontalBlurShader.js");
|
|
39
|
+
const VerticalBlurShader_js_1 = require("three/examples/jsm/shaders/VerticalBlurShader.js");
|
|
40
|
+
const SDObject_1 = require("../../objects/SDObject");
|
|
41
|
+
class ContactShadow {
|
|
42
|
+
// #endregion Properties (16)
|
|
43
|
+
// #region Constructors (1)
|
|
44
|
+
constructor(_renderingEngine, _parent) {
|
|
45
|
+
this._renderingEngine = _renderingEngine;
|
|
46
|
+
this._parent = _parent;
|
|
47
|
+
// #region Properties (16)
|
|
48
|
+
this._blur = 1.5;
|
|
49
|
+
this._color = "#ffffff";
|
|
50
|
+
this._darkness = 2.5;
|
|
51
|
+
this._height = 0.25;
|
|
52
|
+
this._opacity = 1;
|
|
53
|
+
this._currentGridExtents = 1;
|
|
54
|
+
this._originalMaterials = new Map();
|
|
55
|
+
this._contactShadowObject = new SDObject_1.SDObject("contactShadow", "");
|
|
56
|
+
this._contactShadowObject.visible = false;
|
|
57
|
+
this._contactShadowObject.userData.ambientOcclusion = false;
|
|
58
|
+
this._parent.add(this._contactShadowObject);
|
|
59
|
+
this.createContactShadow();
|
|
60
|
+
}
|
|
61
|
+
// #endregion Constructors (1)
|
|
62
|
+
// #region Public Getters And Setters (10)
|
|
63
|
+
get blur() {
|
|
64
|
+
return this._blur;
|
|
65
|
+
}
|
|
66
|
+
set blur(value) {
|
|
67
|
+
this._blur = value;
|
|
68
|
+
}
|
|
69
|
+
get darkness() {
|
|
70
|
+
return this._darkness;
|
|
71
|
+
}
|
|
72
|
+
set darkness(value) {
|
|
73
|
+
this._darkness = value;
|
|
74
|
+
}
|
|
75
|
+
get height() {
|
|
76
|
+
return this._height;
|
|
77
|
+
}
|
|
78
|
+
set height(value) {
|
|
79
|
+
this._height = value;
|
|
80
|
+
this._shadowCamera.far = this._currentGridExtents * value;
|
|
81
|
+
this._shadowCamera.updateProjectionMatrix();
|
|
82
|
+
// const cameraHelper = new THREE.CameraHelper(this._shadowCamera);
|
|
83
|
+
// this._parent.add(cameraHelper);
|
|
84
|
+
this._renderingEngine.renderingManager.updateShadowMap();
|
|
85
|
+
}
|
|
86
|
+
get opacity() {
|
|
87
|
+
return this._opacity;
|
|
88
|
+
}
|
|
89
|
+
set opacity(value) {
|
|
90
|
+
this._opacity = value;
|
|
91
|
+
this._plane.material.opacity = value;
|
|
92
|
+
}
|
|
93
|
+
get visible() {
|
|
94
|
+
return this._contactShadowObject.visible;
|
|
95
|
+
}
|
|
96
|
+
set visible(value) {
|
|
97
|
+
this._contactShadowObject.visible = value;
|
|
98
|
+
}
|
|
99
|
+
// #endregion Public Getters And Setters (10)
|
|
100
|
+
// #region Public Methods (3)
|
|
101
|
+
changeSceneExtents(position, divisions, gridExtents) {
|
|
102
|
+
this._currentGridExtents = gridExtents;
|
|
103
|
+
const widthAndHeight = 2 * gridExtents;
|
|
104
|
+
const planeGeometry = new THREE.PlaneGeometry(widthAndHeight, widthAndHeight);
|
|
105
|
+
this._plane.geometry.dispose();
|
|
106
|
+
this._plane.geometry = planeGeometry;
|
|
107
|
+
this._fillPlane.geometry.dispose();
|
|
108
|
+
this._fillPlane.geometry = planeGeometry;
|
|
109
|
+
this._blurPlane.geometry.dispose();
|
|
110
|
+
this._blurPlane.geometry = planeGeometry;
|
|
111
|
+
this._shadowCamera = new THREE.OrthographicCamera(-widthAndHeight / 2, widthAndHeight / 2, widthAndHeight / 2, -widthAndHeight / 2, 0, gridExtents * this._height);
|
|
112
|
+
this._shadowCamera.up.set(0, 1, 0);
|
|
113
|
+
this._shadowCamera.position.set(0, 0, -gridExtents / 50);
|
|
114
|
+
this._shadowCamera.lookAt(0, 0, 1);
|
|
115
|
+
this._shadowCamera.updateProjectionMatrix();
|
|
116
|
+
this._shadowGroup.add(this._shadowCamera);
|
|
117
|
+
// const cameraHelper = new THREE.CameraHelper(this._shadowCamera);
|
|
118
|
+
// this._parent.add(cameraHelper);
|
|
119
|
+
this._contactShadowObject.position.set(position[0], position[1], position[2]);
|
|
120
|
+
this._renderingEngine.renderingManager.updateShadowMap();
|
|
121
|
+
}
|
|
122
|
+
render() {
|
|
123
|
+
const initialGridVisibility = this._renderingEngine.gridVisibility;
|
|
124
|
+
this._renderingEngine.gridVisibility = false;
|
|
125
|
+
const initialGroundPlaneVisibility = this._renderingEngine.groundPlaneVisibility;
|
|
126
|
+
this._renderingEngine.groundPlaneVisibility = false;
|
|
127
|
+
const initialGroundPlaneShadowVisibility = this._renderingEngine.groundPlaneShadowVisibility;
|
|
128
|
+
this._renderingEngine.groundPlaneShadowVisibility = false;
|
|
129
|
+
this._blurPlane.visible = false;
|
|
130
|
+
this._fillPlane.visible = false;
|
|
131
|
+
this._plane.visible = false;
|
|
132
|
+
const excludedObjects = [];
|
|
133
|
+
this._renderingEngine.scene.traverse(function (object) {
|
|
134
|
+
if (object.visible === true) {
|
|
135
|
+
if (object instanceof THREE.Line ||
|
|
136
|
+
object instanceof THREE.LineLoop ||
|
|
137
|
+
object instanceof THREE.LineSegments ||
|
|
138
|
+
object instanceof THREE.Points) {
|
|
139
|
+
excludedObjects.push(object);
|
|
140
|
+
object.visible = false;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
// remove the background
|
|
145
|
+
const initialBackground = this._renderingEngine.scene.background;
|
|
146
|
+
this._renderingEngine.scene.background = null;
|
|
147
|
+
// Apply transparency-aware depth materials to all mesh objects
|
|
148
|
+
this._originalMaterials.clear();
|
|
149
|
+
this._renderingEngine.scene.traverse((object) => {
|
|
150
|
+
if (object instanceof THREE.Mesh && object.material) {
|
|
151
|
+
this._originalMaterials.set(object, object.material);
|
|
152
|
+
object.material = this.createTransparencyAwareDepthMaterial(object.material);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
// set renderer clear alpha
|
|
156
|
+
const initialClearAlpha = this._renderingEngine.renderer.getClearAlpha();
|
|
157
|
+
this._renderingEngine.renderer.setClearAlpha(0);
|
|
158
|
+
// render to the render target to get the depths
|
|
159
|
+
this._renderingEngine.renderer.setRenderTarget(this._renderTarget);
|
|
160
|
+
this._renderingEngine.renderer.render(this._renderingEngine.scene, this._shadowCamera);
|
|
161
|
+
// Restore original materials
|
|
162
|
+
this._originalMaterials.forEach((originalMaterial, object) => {
|
|
163
|
+
if (object instanceof THREE.Mesh) {
|
|
164
|
+
object.material = originalMaterial;
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
this._originalMaterials.clear();
|
|
168
|
+
this.blurShadow(this._blur);
|
|
169
|
+
// // a second pass to reduce the artifacts
|
|
170
|
+
// // (0.4 is the minimum blur amount so that the artifacts are gone)
|
|
171
|
+
this.blurShadow(this._blur * 0.4);
|
|
172
|
+
// reset and render the normal scene
|
|
173
|
+
this._renderingEngine.renderer.setRenderTarget(null);
|
|
174
|
+
this._renderingEngine.renderer.setClearAlpha(initialClearAlpha);
|
|
175
|
+
this._renderingEngine.scene.background = initialBackground;
|
|
176
|
+
for (const object of excludedObjects)
|
|
177
|
+
object.visible = true;
|
|
178
|
+
this._plane.visible = true;
|
|
179
|
+
this._renderingEngine.gridVisibility = initialGridVisibility;
|
|
180
|
+
this._renderingEngine.groundPlaneVisibility =
|
|
181
|
+
initialGroundPlaneVisibility;
|
|
182
|
+
this._renderingEngine.groundPlaneShadowVisibility =
|
|
183
|
+
initialGroundPlaneShadowVisibility;
|
|
184
|
+
}
|
|
185
|
+
updatePosition(position) {
|
|
186
|
+
this._contactShadowObject.position.set(position[0], position[1], position[2]);
|
|
187
|
+
}
|
|
188
|
+
// #endregion Public Methods (3)
|
|
189
|
+
// #region Private Methods (3)
|
|
190
|
+
createTransparencyAwareDepthMaterial(originalMaterial) {
|
|
191
|
+
let materialOpacity = 1.0;
|
|
192
|
+
let isTransparent = false;
|
|
193
|
+
// Extract opacity and transparency from the original material
|
|
194
|
+
if (Array.isArray(originalMaterial)) {
|
|
195
|
+
// For multi-materials, use the opacity of the first material that has opacity
|
|
196
|
+
const materialWithOpacity = originalMaterial.find((mat) => "opacity" in mat &&
|
|
197
|
+
typeof mat.opacity === "number");
|
|
198
|
+
if (materialWithOpacity) {
|
|
199
|
+
materialOpacity = materialWithOpacity.opacity;
|
|
200
|
+
isTransparent =
|
|
201
|
+
materialWithOpacity.transparent ||
|
|
202
|
+
materialOpacity < 1.0;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else if ("opacity" in originalMaterial &&
|
|
206
|
+
typeof originalMaterial.opacity === "number") {
|
|
207
|
+
materialOpacity = originalMaterial.opacity;
|
|
208
|
+
isTransparent =
|
|
209
|
+
originalMaterial.transparent || materialOpacity < 1.0;
|
|
210
|
+
}
|
|
211
|
+
// If the material is not transparent or has full opacity, treat it as opaque for shadows
|
|
212
|
+
if (!isTransparent || materialOpacity >= 1.0) {
|
|
213
|
+
materialOpacity = 1.0;
|
|
214
|
+
}
|
|
215
|
+
// Calculate adjusted darkness based on material opacity
|
|
216
|
+
const adjustedDarkness = this._darkness * materialOpacity;
|
|
217
|
+
// Create a new depth material for this specific object
|
|
218
|
+
const depthMaterial = new THREE.MeshDepthMaterial();
|
|
219
|
+
depthMaterial.side = THREE.DoubleSide;
|
|
220
|
+
depthMaterial.userData.darkness = { value: adjustedDarkness };
|
|
221
|
+
depthMaterial.onBeforeCompile = (shader) => {
|
|
222
|
+
shader.uniforms.darkness = depthMaterial.userData.darkness;
|
|
213
223
|
shader.fragmentShader = /* glsl */ `
|
|
214
224
|
uniform float darkness;
|
|
215
225
|
${shader.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );", "gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );")}
|
|
216
|
-
`;
|
|
217
|
-
};
|
|
218
|
-
depthMaterial.depthTest = false;
|
|
219
|
-
depthMaterial.depthWrite = false;
|
|
220
|
-
return depthMaterial;
|
|
221
|
-
}
|
|
222
|
-
blurShadow(amount) {
|
|
223
|
-
this._blurPlane.visible = true;
|
|
224
|
-
// blur horizontally and draw in the renderTargetBlur
|
|
225
|
-
this._blurPlane.material = this._horizontalBlurMaterial;
|
|
226
|
-
this._blurPlane.material.uniforms.tDiffuse.value = this._renderTarget.texture;
|
|
227
|
-
this._horizontalBlurMaterial.uniforms.h.value = (amount * 1) / 256;
|
|
228
|
-
this._renderingEngine.renderer.setRenderTarget(this._renderTargetBlur);
|
|
229
|
-
this._renderingEngine.renderer.render(this._blurPlane, this._shadowCamera);
|
|
230
|
-
// blur vertically and draw in the main renderTarget
|
|
231
|
-
this._blurPlane.material = this._verticalBlurMaterial;
|
|
232
|
-
this._blurPlane.material.uniforms.tDiffuse.value = this._renderTargetBlur.texture;
|
|
233
|
-
this._verticalBlurMaterial.uniforms.v.value = (amount * 1) / 256;
|
|
234
|
-
this._renderingEngine.renderer.setRenderTarget(this._renderTarget);
|
|
235
|
-
this._renderingEngine.renderer.render(this._blurPlane, this._shadowCamera);
|
|
236
|
-
this._blurPlane.visible = false;
|
|
237
|
-
}
|
|
238
|
-
createContactShadow() {
|
|
239
|
-
const widthAndHeight = 1;
|
|
240
|
-
// the container, if you need to move the plane just move this
|
|
241
|
-
this._shadowGroup = new THREE.Group();
|
|
242
|
-
this._contactShadowObject.add(this._shadowGroup);
|
|
243
|
-
// the render target that will show the shadows in the plane texture
|
|
244
|
-
this._renderTarget = new THREE.WebGLRenderTarget(512, 512);
|
|
245
|
-
this._renderTarget.texture.generateMipmaps = false;
|
|
246
|
-
// the render target that we will use to blur the first render target
|
|
247
|
-
this._renderTargetBlur = new THREE.WebGLRenderTarget(512, 512);
|
|
248
|
-
this._renderTargetBlur.texture.generateMipmaps = false;
|
|
249
|
-
// make a plane and make it face up
|
|
250
|
-
const planeGeometry = new THREE.PlaneGeometry(widthAndHeight, widthAndHeight);
|
|
251
|
-
const planeMaterial = new THREE.MeshBasicMaterial({
|
|
252
|
-
map: this._renderTarget.texture,
|
|
253
|
-
opacity: this._opacity,
|
|
254
|
-
transparent: true,
|
|
255
|
-
depthWrite: false,
|
|
256
|
-
});
|
|
257
|
-
this._plane = new THREE.Mesh(planeGeometry, planeMaterial);
|
|
258
|
-
// make sure it's rendered after the fillPlane
|
|
259
|
-
this._plane.renderOrder = 1;
|
|
260
|
-
this._shadowGroup.add(this._plane);
|
|
261
|
-
// // the y from the texture is flipped!
|
|
262
|
-
// this._plane.rotateZ(-Math.PI/2);
|
|
263
|
-
this._plane.scale.x = -1;
|
|
264
|
-
// this._plane.scale.y = -1;
|
|
265
|
-
// the plane onto which to blur the texture
|
|
266
|
-
this._blurPlane = new THREE.Mesh(planeGeometry);
|
|
267
|
-
this._blurPlane.rotateX(Math.PI);
|
|
268
|
-
this._blurPlane.visible = false;
|
|
269
|
-
this._shadowGroup.add(this._blurPlane);
|
|
270
|
-
// the plane with the color of the ground
|
|
271
|
-
const fillPlaneMaterial = new THREE.MeshBasicMaterial({
|
|
272
|
-
color: this._color,
|
|
273
|
-
opacity: 0,
|
|
274
|
-
transparent: true,
|
|
275
|
-
depthWrite: false,
|
|
276
|
-
});
|
|
277
|
-
this._fillPlane = new THREE.Mesh(planeGeometry, fillPlaneMaterial);
|
|
278
|
-
this._shadowGroup.add(this._fillPlane);
|
|
279
|
-
// the camera to render the depth material from
|
|
280
|
-
this._shadowCamera = new THREE.OrthographicCamera(-widthAndHeight / 2, widthAndHeight / 2, widthAndHeight / 2, -widthAndHeight / 2, 0, 1);
|
|
281
|
-
this._shadowGroup.add(this._shadowCamera);
|
|
282
|
-
this._horizontalBlurMaterial = new THREE.ShaderMaterial(HorizontalBlurShader_js_1.HorizontalBlurShader);
|
|
283
|
-
this._horizontalBlurMaterial.depthTest = false;
|
|
284
|
-
this._verticalBlurMaterial = new THREE.ShaderMaterial(VerticalBlurShader_js_1.VerticalBlurShader);
|
|
285
|
-
this._verticalBlurMaterial.depthTest = false;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
exports.ContactShadow = ContactShadow;
|
|
226
|
+
`;
|
|
227
|
+
};
|
|
228
|
+
depthMaterial.depthTest = false;
|
|
229
|
+
depthMaterial.depthWrite = false;
|
|
230
|
+
return depthMaterial;
|
|
231
|
+
}
|
|
232
|
+
blurShadow(amount) {
|
|
233
|
+
this._blurPlane.visible = true;
|
|
234
|
+
// blur horizontally and draw in the renderTargetBlur
|
|
235
|
+
this._blurPlane.material = this._horizontalBlurMaterial;
|
|
236
|
+
this._blurPlane.material.uniforms.tDiffuse.value = this._renderTarget.texture;
|
|
237
|
+
this._horizontalBlurMaterial.uniforms.h.value = (amount * 1) / 256;
|
|
238
|
+
this._renderingEngine.renderer.setRenderTarget(this._renderTargetBlur);
|
|
239
|
+
this._renderingEngine.renderer.render(this._blurPlane, this._shadowCamera);
|
|
240
|
+
// blur vertically and draw in the main renderTarget
|
|
241
|
+
this._blurPlane.material = this._verticalBlurMaterial;
|
|
242
|
+
this._blurPlane.material.uniforms.tDiffuse.value = this._renderTargetBlur.texture;
|
|
243
|
+
this._verticalBlurMaterial.uniforms.v.value = (amount * 1) / 256;
|
|
244
|
+
this._renderingEngine.renderer.setRenderTarget(this._renderTarget);
|
|
245
|
+
this._renderingEngine.renderer.render(this._blurPlane, this._shadowCamera);
|
|
246
|
+
this._blurPlane.visible = false;
|
|
247
|
+
}
|
|
248
|
+
createContactShadow() {
|
|
249
|
+
const widthAndHeight = 1;
|
|
250
|
+
// the container, if you need to move the plane just move this
|
|
251
|
+
this._shadowGroup = new THREE.Group();
|
|
252
|
+
this._contactShadowObject.add(this._shadowGroup);
|
|
253
|
+
// the render target that will show the shadows in the plane texture
|
|
254
|
+
this._renderTarget = new THREE.WebGLRenderTarget(512, 512);
|
|
255
|
+
this._renderTarget.texture.generateMipmaps = false;
|
|
256
|
+
// the render target that we will use to blur the first render target
|
|
257
|
+
this._renderTargetBlur = new THREE.WebGLRenderTarget(512, 512);
|
|
258
|
+
this._renderTargetBlur.texture.generateMipmaps = false;
|
|
259
|
+
// make a plane and make it face up
|
|
260
|
+
const planeGeometry = new THREE.PlaneGeometry(widthAndHeight, widthAndHeight);
|
|
261
|
+
const planeMaterial = new THREE.MeshBasicMaterial({
|
|
262
|
+
map: this._renderTarget.texture,
|
|
263
|
+
opacity: this._opacity,
|
|
264
|
+
transparent: true,
|
|
265
|
+
depthWrite: false,
|
|
266
|
+
});
|
|
267
|
+
this._plane = new THREE.Mesh(planeGeometry, planeMaterial);
|
|
268
|
+
// make sure it's rendered after the fillPlane
|
|
269
|
+
this._plane.renderOrder = 1;
|
|
270
|
+
this._shadowGroup.add(this._plane);
|
|
271
|
+
// // the y from the texture is flipped!
|
|
272
|
+
// this._plane.rotateZ(-Math.PI/2);
|
|
273
|
+
this._plane.scale.x = -1;
|
|
274
|
+
// this._plane.scale.y = -1;
|
|
275
|
+
// the plane onto which to blur the texture
|
|
276
|
+
this._blurPlane = new THREE.Mesh(planeGeometry);
|
|
277
|
+
this._blurPlane.rotateX(Math.PI);
|
|
278
|
+
this._blurPlane.visible = false;
|
|
279
|
+
this._shadowGroup.add(this._blurPlane);
|
|
280
|
+
// the plane with the color of the ground
|
|
281
|
+
const fillPlaneMaterial = new THREE.MeshBasicMaterial({
|
|
282
|
+
color: this._color,
|
|
283
|
+
opacity: 0,
|
|
284
|
+
transparent: true,
|
|
285
|
+
depthWrite: false,
|
|
286
|
+
});
|
|
287
|
+
this._fillPlane = new THREE.Mesh(planeGeometry, fillPlaneMaterial);
|
|
288
|
+
this._shadowGroup.add(this._fillPlane);
|
|
289
|
+
// the camera to render the depth material from
|
|
290
|
+
this._shadowCamera = new THREE.OrthographicCamera(-widthAndHeight / 2, widthAndHeight / 2, widthAndHeight / 2, -widthAndHeight / 2, 0, 1);
|
|
291
|
+
this._shadowGroup.add(this._shadowCamera);
|
|
292
|
+
this._horizontalBlurMaterial = new THREE.ShaderMaterial(HorizontalBlurShader_js_1.HorizontalBlurShader);
|
|
293
|
+
this._horizontalBlurMaterial.depthTest = false;
|
|
294
|
+
this._verticalBlurMaterial = new THREE.ShaderMaterial(VerticalBlurShader_js_1.VerticalBlurShader);
|
|
295
|
+
this._verticalBlurMaterial.depthTest = false;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
exports.ContactShadow = ContactShadow;
|
|
289
299
|
//# sourceMappingURL=ContactShadow.js.map
|