zincjs 3.0.0 → 3.0.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/README.md +27 -22
- package/build/zinc.js +2 -2
- package/build/zinc.js.map +1 -1
- package/package.json +4 -1
- package/src/controls.js +1332 -1241
- package/src/geometryCSG.js +111 -115
- package/src/glyphsetCSG.js +51 -55
- package/src/loaders/GLTFToZincJSLoader.js +31 -33
- package/src/loaders/JSONLoader.js +339 -449
- package/src/loaders/OBJLoader.js +654 -851
- package/src/loaders/STLLoader.js +271 -329
- package/src/loaders/niftiReader.js +90 -59
- package/src/loaders/primitivesLoader.js +55 -52
- package/src/minimap.js +63 -43
- package/src/primitives/geometry.js +40 -44
- package/src/primitives/glyph.js +16 -19
- package/src/primitives/glyphset.js +229 -185
- package/src/primitives/label.js +29 -31
- package/src/primitives/lines.js +20 -20
- package/src/primitives/lines2.js +33 -39
- package/src/primitives/lod.js +43 -43
- package/src/primitives/marker.js +31 -32
- package/src/primitives/markerCluster.js +32 -35
- package/src/primitives/pointset.js +86 -83
- package/src/primitives/texturePrimitive.js +9 -10
- package/src/primitives/textureSlides.js +84 -97
- package/src/primitives/textureVolume.js +46 -49
- package/src/primitives/tubeLines.js +108 -108
- package/src/primitives/zincObject.js +176 -184
- package/src/region.js +145 -155
- package/src/renderRequests.js +3 -3
- package/src/renderer.js +635 -620
- package/src/scene.js +479 -419
- package/src/sceneExporter.js +22 -17
- package/src/sceneLoader.js +542 -296
- package/src/shaders/rgbVolumeRender.js +11 -18
- package/src/shaders/textureArray.js +5 -12
- package/src/shaders/textureSlide.js +10 -17
- package/src/shaders/volumeRender.js +11 -18
- package/src/shaders/volumeRender_old.js +11 -18
- package/src/shaders/volumeTexture.js +7 -14
- package/src/textSprite.js +23 -19
- package/src/texture/texture.js +14 -15
- package/src/texture/textureArray.js +14 -16
- package/src/three/InstancedPoints.js +2 -9
- package/src/three/Loader.js +334 -315
- package/src/three/line/Line.js +165 -215
- package/src/three/line/LineSegments.js +40 -55
- package/src/three/line/LineSegments2.js +322 -366
- package/src/three/line/LineSegmentsGeometry.js +239 -280
- package/src/three-js-csg.js +260 -252
- package/src/tsl/glyphRenderMaterial.js +12 -3
- package/src/tsl/glyphTransform.js +51 -29
- package/src/tsl/textureSlides.js +23 -24
- package/src/utilities.js +309 -371
- package/src/videoHandler.js +76 -83
- package/src/workers/geometryCSG.worker.js +33 -36
- package/src/workers/geometryCSGInternal.js +39 -44
- package/src/zinc.js +4 -7
- package/vite.config.js +7 -7
package/src/three/Loader.js
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
BackSide,
|
|
14
|
-
|
|
15
|
-
MirroredRepeatWrapping,
|
|
2
|
+
NoBlending,
|
|
3
|
+
NormalBlending,
|
|
4
|
+
AdditiveBlending,
|
|
5
|
+
SubtractiveBlending,
|
|
6
|
+
MultiplyBlending,
|
|
7
|
+
CustomBlending,
|
|
8
|
+
FaceColors,
|
|
9
|
+
VertexColors,
|
|
10
|
+
DoubleSide,
|
|
11
|
+
BackSide,
|
|
12
|
+
MirroredRepeatWrapping,
|
|
16
13
|
RepeatWrapping,
|
|
17
14
|
MathUtils,
|
|
18
15
|
MaterialLoader,
|
|
19
16
|
TextureLoader,
|
|
20
|
-
Color
|
|
17
|
+
Color,
|
|
21
18
|
} from 'three/webgpu';
|
|
22
19
|
|
|
23
20
|
/**
|
|
@@ -27,317 +24,339 @@ import {
|
|
|
27
24
|
function Loader() {}
|
|
28
25
|
|
|
29
26
|
Loader.Handlers = {
|
|
27
|
+
handlers: [],
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.handlers.push( regex, loader );
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
get: function ( file ) {
|
|
40
|
-
|
|
41
|
-
var handlers = this.handlers;
|
|
29
|
+
add: function (regex, loader) {
|
|
30
|
+
this.handlers.push(regex, loader);
|
|
31
|
+
},
|
|
42
32
|
|
|
43
|
-
|
|
33
|
+
get: function (file) {
|
|
34
|
+
var handlers = this.handlers;
|
|
44
35
|
|
|
45
|
-
|
|
46
|
-
|
|
36
|
+
for (var i = 0, l = handlers.length; i < l; i += 2) {
|
|
37
|
+
var regex = handlers[i];
|
|
38
|
+
var loader = handlers[i + 1];
|
|
47
39
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return null;
|
|
57
|
-
|
|
58
|
-
}
|
|
40
|
+
if (regex.test(file)) {
|
|
41
|
+
return loader;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
59
44
|
|
|
45
|
+
return null;
|
|
46
|
+
},
|
|
60
47
|
};
|
|
61
48
|
|
|
62
|
-
Object.assign(
|
|
63
|
-
|
|
64
|
-
crossOrigin: 'anonymous',
|
|
65
|
-
|
|
66
|
-
onLoadStart: function () {},
|
|
67
|
-
|
|
68
|
-
onLoadProgress: function () {},
|
|
69
|
-
|
|
70
|
-
onLoadComplete: function () {},
|
|
71
|
-
|
|
72
|
-
initMaterials: function ( materials, texturePath, crossOrigin ) {
|
|
73
|
-
|
|
74
|
-
var array = [];
|
|
75
|
-
|
|
76
|
-
for ( var i = 0; i < materials.length; ++ i ) {
|
|
77
|
-
|
|
78
|
-
array[ i ] = this.createMaterial( materials[ i ], texturePath, crossOrigin );
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return array;
|
|
83
|
-
|
|
84
|
-
},
|
|
85
|
-
|
|
86
|
-
createMaterial: ( function () {
|
|
87
|
-
|
|
88
|
-
var BlendingMode = {
|
|
89
|
-
NoBlending: NoBlending,
|
|
90
|
-
NormalBlending: NormalBlending,
|
|
91
|
-
AdditiveBlending: AdditiveBlending,
|
|
92
|
-
SubtractiveBlending: SubtractiveBlending,
|
|
93
|
-
MultiplyBlending: MultiplyBlending,
|
|
94
|
-
CustomBlending: CustomBlending
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
var color = new Color();
|
|
98
|
-
var textureLoader = new TextureLoader();
|
|
99
|
-
var materialLoader = new MaterialLoader();
|
|
100
|
-
|
|
101
|
-
return function createMaterial( m, texturePath, crossOrigin ) {
|
|
102
|
-
|
|
103
|
-
// convert from old material format
|
|
104
|
-
|
|
105
|
-
var textures = {};
|
|
106
|
-
|
|
107
|
-
function loadTexture( path, repeat, offset, wrap, anisotropy ) {
|
|
49
|
+
Object.assign(Loader.prototype, {
|
|
50
|
+
crossOrigin: 'anonymous',
|
|
108
51
|
|
|
109
|
-
|
|
110
|
-
var loader = Loader.Handlers.get( fullPath );
|
|
52
|
+
onLoadStart: function () {},
|
|
111
53
|
|
|
112
|
-
|
|
54
|
+
onLoadProgress: function () {},
|
|
113
55
|
|
|
114
|
-
|
|
56
|
+
onLoadComplete: function () {},
|
|
115
57
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
58
|
+
initMaterials: function (materials, texturePath, crossOrigin) {
|
|
59
|
+
var array = [];
|
|
60
|
+
|
|
61
|
+
for (var i = 0; i < materials.length; ++i) {
|
|
62
|
+
array[i] = this.createMaterial(materials[i], texturePath, crossOrigin);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return array;
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
createMaterial: (function () {
|
|
69
|
+
var BlendingMode = {
|
|
70
|
+
NoBlending: NoBlending,
|
|
71
|
+
NormalBlending: NormalBlending,
|
|
72
|
+
AdditiveBlending: AdditiveBlending,
|
|
73
|
+
SubtractiveBlending: SubtractiveBlending,
|
|
74
|
+
MultiplyBlending: MultiplyBlending,
|
|
75
|
+
CustomBlending: CustomBlending,
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var color = new Color();
|
|
79
|
+
var textureLoader = new TextureLoader();
|
|
80
|
+
var materialLoader = new MaterialLoader();
|
|
81
|
+
|
|
82
|
+
return function createMaterial(m, texturePath, crossOrigin) {
|
|
83
|
+
// convert from old material format
|
|
84
|
+
|
|
85
|
+
var textures = {};
|
|
86
|
+
|
|
87
|
+
function loadTexture(path, repeat, offset, wrap, anisotropy) {
|
|
88
|
+
var fullPath = texturePath + path;
|
|
89
|
+
var loader = Loader.Handlers.get(fullPath);
|
|
90
|
+
|
|
91
|
+
var texture;
|
|
92
|
+
|
|
93
|
+
if (loader !== null) {
|
|
94
|
+
texture = loader.load(fullPath);
|
|
95
|
+
} else {
|
|
96
|
+
textureLoader.setCrossOrigin(crossOrigin);
|
|
97
|
+
texture = textureLoader.load(fullPath);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (repeat !== undefined) {
|
|
101
|
+
texture.repeat.fromArray(repeat);
|
|
102
|
+
|
|
103
|
+
if (repeat[0] !== 1) texture.wrapS = RepeatWrapping;
|
|
104
|
+
if (repeat[1] !== 1) texture.wrapT = RepeatWrapping;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (offset !== undefined) {
|
|
108
|
+
texture.offset.fromArray(offset);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (wrap !== undefined) {
|
|
112
|
+
if (wrap[0] === 'repeat') texture.wrapS = RepeatWrapping;
|
|
113
|
+
if (wrap[0] === 'mirror') texture.wrapS = MirroredRepeatWrapping;
|
|
114
|
+
|
|
115
|
+
if (wrap[1] === 'repeat') texture.wrapT = RepeatWrapping;
|
|
116
|
+
if (wrap[1] === 'mirror') texture.wrapT = MirroredRepeatWrapping;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (anisotropy !== undefined) {
|
|
120
|
+
texture.anisotropy = anisotropy;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
var uuid = MathUtils.generateUUID();
|
|
124
|
+
|
|
125
|
+
textures[uuid] = texture;
|
|
126
|
+
|
|
127
|
+
return uuid;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
//
|
|
131
|
+
|
|
132
|
+
var json = {
|
|
133
|
+
uuid: MathUtils.generateUUID(),
|
|
134
|
+
type: 'MeshLambertMaterial',
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
for (var name in m) {
|
|
138
|
+
var value = m[name];
|
|
139
|
+
|
|
140
|
+
switch (name) {
|
|
141
|
+
case 'DbgColor':
|
|
142
|
+
case 'DbgIndex':
|
|
143
|
+
case 'opticalDensity':
|
|
144
|
+
case 'illumination':
|
|
145
|
+
break;
|
|
146
|
+
case 'DbgName':
|
|
147
|
+
json.name = value;
|
|
148
|
+
break;
|
|
149
|
+
case 'blending':
|
|
150
|
+
json.blending = BlendingMode[value];
|
|
151
|
+
break;
|
|
152
|
+
case 'colorAmbient':
|
|
153
|
+
case 'mapAmbient':
|
|
154
|
+
console.warn('THREE.Loader.createMaterial:', name, 'is no longer supported.');
|
|
155
|
+
break;
|
|
156
|
+
case 'colorDiffuse':
|
|
157
|
+
json.color = color.fromArray(value).getHex();
|
|
158
|
+
break;
|
|
159
|
+
case 'colorSpecular':
|
|
160
|
+
json.specular = color.fromArray(value).getHex();
|
|
161
|
+
break;
|
|
162
|
+
case 'colorEmissive':
|
|
163
|
+
json.emissive = color.fromArray(value).getHex();
|
|
164
|
+
break;
|
|
165
|
+
case 'specularCoef':
|
|
166
|
+
json.shininess = value;
|
|
167
|
+
break;
|
|
168
|
+
case 'shading':
|
|
169
|
+
if (value.toLowerCase() === 'basic') json.type = 'MeshBasicMaterial';
|
|
170
|
+
if (value.toLowerCase() === 'phong') json.type = 'MeshPhongMaterial';
|
|
171
|
+
if (value.toLowerCase() === 'standard') json.type = 'MeshStandardMaterial';
|
|
172
|
+
break;
|
|
173
|
+
case 'mapDiffuse':
|
|
174
|
+
json.map = loadTexture(
|
|
175
|
+
value,
|
|
176
|
+
m.mapDiffuseRepeat,
|
|
177
|
+
m.mapDiffuseOffset,
|
|
178
|
+
m.mapDiffuseWrap,
|
|
179
|
+
m.mapDiffuseAnisotropy,
|
|
180
|
+
);
|
|
181
|
+
break;
|
|
182
|
+
case 'mapDiffuseRepeat':
|
|
183
|
+
case 'mapDiffuseOffset':
|
|
184
|
+
case 'mapDiffuseWrap':
|
|
185
|
+
case 'mapDiffuseAnisotropy':
|
|
186
|
+
break;
|
|
187
|
+
case 'mapEmissive':
|
|
188
|
+
json.emissiveMap = loadTexture(
|
|
189
|
+
value,
|
|
190
|
+
m.mapEmissiveRepeat,
|
|
191
|
+
m.mapEmissiveOffset,
|
|
192
|
+
m.mapEmissiveWrap,
|
|
193
|
+
m.mapEmissiveAnisotropy,
|
|
194
|
+
);
|
|
195
|
+
break;
|
|
196
|
+
case 'mapEmissiveRepeat':
|
|
197
|
+
case 'mapEmissiveOffset':
|
|
198
|
+
case 'mapEmissiveWrap':
|
|
199
|
+
case 'mapEmissiveAnisotropy':
|
|
200
|
+
break;
|
|
201
|
+
case 'mapLight':
|
|
202
|
+
json.lightMap = loadTexture(
|
|
203
|
+
value,
|
|
204
|
+
m.mapLightRepeat,
|
|
205
|
+
m.mapLightOffset,
|
|
206
|
+
m.mapLightWrap,
|
|
207
|
+
m.mapLightAnisotropy,
|
|
208
|
+
);
|
|
209
|
+
break;
|
|
210
|
+
case 'mapLightRepeat':
|
|
211
|
+
case 'mapLightOffset':
|
|
212
|
+
case 'mapLightWrap':
|
|
213
|
+
case 'mapLightAnisotropy':
|
|
214
|
+
break;
|
|
215
|
+
case 'mapAO':
|
|
216
|
+
json.aoMap = loadTexture(
|
|
217
|
+
value,
|
|
218
|
+
m.mapAORepeat,
|
|
219
|
+
m.mapAOOffset,
|
|
220
|
+
m.mapAOWrap,
|
|
221
|
+
m.mapAOAnisotropy,
|
|
222
|
+
);
|
|
223
|
+
break;
|
|
224
|
+
case 'mapAORepeat':
|
|
225
|
+
case 'mapAOOffset':
|
|
226
|
+
case 'mapAOWrap':
|
|
227
|
+
case 'mapAOAnisotropy':
|
|
228
|
+
break;
|
|
229
|
+
case 'mapBump':
|
|
230
|
+
json.bumpMap = loadTexture(
|
|
231
|
+
value,
|
|
232
|
+
m.mapBumpRepeat,
|
|
233
|
+
m.mapBumpOffset,
|
|
234
|
+
m.mapBumpWrap,
|
|
235
|
+
m.mapBumpAnisotropy,
|
|
236
|
+
);
|
|
237
|
+
break;
|
|
238
|
+
case 'mapBumpScale':
|
|
239
|
+
json.bumpScale = value;
|
|
240
|
+
break;
|
|
241
|
+
case 'mapBumpRepeat':
|
|
242
|
+
case 'mapBumpOffset':
|
|
243
|
+
case 'mapBumpWrap':
|
|
244
|
+
case 'mapBumpAnisotropy':
|
|
245
|
+
break;
|
|
246
|
+
case 'mapNormal':
|
|
247
|
+
json.normalMap = loadTexture(
|
|
248
|
+
value,
|
|
249
|
+
m.mapNormalRepeat,
|
|
250
|
+
m.mapNormalOffset,
|
|
251
|
+
m.mapNormalWrap,
|
|
252
|
+
m.mapNormalAnisotropy,
|
|
253
|
+
);
|
|
254
|
+
break;
|
|
255
|
+
case 'mapNormalFactor':
|
|
256
|
+
json.normalScale = value;
|
|
257
|
+
break;
|
|
258
|
+
case 'mapNormalRepeat':
|
|
259
|
+
case 'mapNormalOffset':
|
|
260
|
+
case 'mapNormalWrap':
|
|
261
|
+
case 'mapNormalAnisotropy':
|
|
262
|
+
break;
|
|
263
|
+
case 'mapSpecular':
|
|
264
|
+
json.specularMap = loadTexture(
|
|
265
|
+
value,
|
|
266
|
+
m.mapSpecularRepeat,
|
|
267
|
+
m.mapSpecularOffset,
|
|
268
|
+
m.mapSpecularWrap,
|
|
269
|
+
m.mapSpecularAnisotropy,
|
|
270
|
+
);
|
|
271
|
+
break;
|
|
272
|
+
case 'mapSpecularRepeat':
|
|
273
|
+
case 'mapSpecularOffset':
|
|
274
|
+
case 'mapSpecularWrap':
|
|
275
|
+
case 'mapSpecularAnisotropy':
|
|
276
|
+
break;
|
|
277
|
+
case 'mapMetalness':
|
|
278
|
+
json.metalnessMap = loadTexture(
|
|
279
|
+
value,
|
|
280
|
+
m.mapMetalnessRepeat,
|
|
281
|
+
m.mapMetalnessOffset,
|
|
282
|
+
m.mapMetalnessWrap,
|
|
283
|
+
m.mapMetalnessAnisotropy,
|
|
284
|
+
);
|
|
285
|
+
break;
|
|
286
|
+
case 'mapMetalnessRepeat':
|
|
287
|
+
case 'mapMetalnessOffset':
|
|
288
|
+
case 'mapMetalnessWrap':
|
|
289
|
+
case 'mapMetalnessAnisotropy':
|
|
290
|
+
break;
|
|
291
|
+
case 'mapRoughness':
|
|
292
|
+
json.roughnessMap = loadTexture(
|
|
293
|
+
value,
|
|
294
|
+
m.mapRoughnessRepeat,
|
|
295
|
+
m.mapRoughnessOffset,
|
|
296
|
+
m.mapRoughnessWrap,
|
|
297
|
+
m.mapRoughnessAnisotropy,
|
|
298
|
+
);
|
|
299
|
+
break;
|
|
300
|
+
case 'mapRoughnessRepeat':
|
|
301
|
+
case 'mapRoughnessOffset':
|
|
302
|
+
case 'mapRoughnessWrap':
|
|
303
|
+
case 'mapRoughnessAnisotropy':
|
|
304
|
+
break;
|
|
305
|
+
case 'mapAlpha':
|
|
306
|
+
json.alphaMap = loadTexture(
|
|
307
|
+
value,
|
|
308
|
+
m.mapAlphaRepeat,
|
|
309
|
+
m.mapAlphaOffset,
|
|
310
|
+
m.mapAlphaWrap,
|
|
311
|
+
m.mapAlphaAnisotropy,
|
|
312
|
+
);
|
|
313
|
+
break;
|
|
314
|
+
case 'mapAlphaRepeat':
|
|
315
|
+
case 'mapAlphaOffset':
|
|
316
|
+
case 'mapAlphaWrap':
|
|
317
|
+
case 'mapAlphaAnisotropy':
|
|
318
|
+
break;
|
|
319
|
+
case 'flipSided':
|
|
320
|
+
json.side = BackSide;
|
|
321
|
+
break;
|
|
322
|
+
case 'doubleSided':
|
|
323
|
+
json.side = DoubleSide;
|
|
324
|
+
break;
|
|
325
|
+
case 'transparency':
|
|
326
|
+
console.warn('THREE.Loader.createMaterial: transparency has been renamed to opacity');
|
|
327
|
+
json.opacity = value;
|
|
328
|
+
break;
|
|
329
|
+
case 'depthTest':
|
|
330
|
+
case 'depthWrite':
|
|
331
|
+
case 'colorWrite':
|
|
332
|
+
case 'opacity':
|
|
333
|
+
case 'reflectivity':
|
|
334
|
+
case 'transparent':
|
|
311
335
|
case 'video':
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
};
|
|
338
|
-
|
|
339
|
-
} )()
|
|
340
|
-
|
|
341
|
-
} );
|
|
336
|
+
case 'visible':
|
|
337
|
+
case 'wireframe':
|
|
338
|
+
json[name] = value;
|
|
339
|
+
break;
|
|
340
|
+
case 'vertexColors':
|
|
341
|
+
if (value === true) json.vertexColors = VertexColors;
|
|
342
|
+
if (value === 'face') json.vertexColors = FaceColors;
|
|
343
|
+
break;
|
|
344
|
+
default:
|
|
345
|
+
console.error('THREE.Loader.createMaterial: Unsupported', name, value);
|
|
346
|
+
break;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
if (json.type === 'MeshBasicMaterial') delete json.emissive;
|
|
351
|
+
if (json.type !== 'MeshPhongMaterial') delete json.specular;
|
|
352
|
+
|
|
353
|
+
if (json.opacity < 1) json.transparent = true;
|
|
354
|
+
|
|
355
|
+
materialLoader.setTextures(textures);
|
|
356
|
+
|
|
357
|
+
return materialLoader.parse(json);
|
|
358
|
+
};
|
|
359
|
+
})(),
|
|
360
|
+
});
|
|
342
361
|
|
|
343
362
|
export { Loader };
|