@shapediver/viewer.data-engine.gltf-converter 2.3.5 → 2.4.0

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.
@@ -7,10 +7,6 @@ export declare enum GLTF_EXTENSIONS {
7
7
  export declare class GLTFConverter {
8
8
  private readonly _converter;
9
9
  private readonly _globalTransformationInverse;
10
- private readonly _mergeShader;
11
- private readonly _quadCamera;
12
- private readonly _quadScene;
13
- private readonly _renderer;
14
10
  private readonly _uuidGenerator;
15
11
  private _animations;
16
12
  private _buffers;
@@ -25,7 +21,6 @@ export declare class GLTFConverter {
25
21
  private _viewport?;
26
22
  constructor();
27
23
  convert(node: ITreeNode, convertForAR?: boolean, viewport?: string): Promise<ArrayBuffer>;
28
- private combineTextures;
29
24
  private convertAccessor;
30
25
  private convertAnimations;
31
26
  private convertBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"GLTFConverter.d.ts","sourceRoot":"","sources":["../src/GLTFConverter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAY,MAAM,qCAAqC,CAAA;AAyCzE,oBAAY,eAAe;IACvB,eAAe,oBAAoB;IACnC,mCAAmC,wCAAwC;IAC3E,mBAAmB,wBAAwB;CAC9C;AAED,qBACa,aAAa;IAGtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsD;IACjF,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAI7B;IAChB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkE;IAEjG,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAOf;IAED,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,MAAM,CAGL;IACT,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAC,CAAS;;IA4Fd,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,UAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YA6HtF,eAAe;IA8E7B,OAAO,CAAC,eAAe;IAuCvB,OAAO,CAAC,iBAAiB;IAwFzB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;YAkDX,sBAAsB;IAmBpC,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,eAAe;IAoEvB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,WAAW;IAsDnB,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,mBAAmB;CAkB9B"}
1
+ {"version":3,"file":"GLTFConverter.d.ts","sourceRoot":"","sources":["../src/GLTFConverter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAY,MAAM,qCAAqC,CAAA;AAyCzE,oBAAY,eAAe;IACvB,eAAe,oBAAoB;IACnC,mCAAmC,wCAAwC;IAC3E,mBAAmB,wBAAwB;CAC9C;AAED,qBACa,aAAa;IAGtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsD;IACjF,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAI7B;IAChB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkE;IAEjG,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAOf;IAED,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,MAAM,CAGL;IACT,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAC,CAAS;;IAYd,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,UAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA6HpG,OAAO,CAAC,eAAe;IAuCvB,OAAO,CAAC,iBAAiB;IAwFzB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;YAkDX,sBAAsB;IAmBpC,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,eAAe;IAyEvB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,WAAW;IAsDnB,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,mBAAmB;CAkB9B"}
@@ -1,29 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
2
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15
3
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
4
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
19
7
  };
20
- var __importStar = (this && this.__importStar) || function (mod) {
21
- if (mod && mod.__esModule) return mod;
22
- var result = {};
23
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
- __setModuleDefault(result, mod);
25
- return result;
26
- };
27
8
  var __metadata = (this && this.__metadata) || function (k, v) {
28
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
29
10
  };
@@ -45,7 +26,7 @@ const tsyringe_1 = require("tsyringe");
45
26
  const viewer_data_engine_shared_types_1 = require("@shapediver/viewer.data-engine.shared-types");
46
27
  const gl_matrix_1 = require("gl-matrix");
47
28
  const viewer_shared_types_1 = require("@shapediver/viewer.shared.types");
48
- const THREE = __importStar(require("three"));
29
+ const viewer_utils_texture_unifier_1 = require("@shapediver/viewer.utils.texture-unifier");
49
30
  var GLTF_EXTENSIONS;
50
31
  (function (GLTF_EXTENSIONS) {
51
32
  GLTF_EXTENSIONS["KHR_BINARY_GLTF"] = "KHR_binary_glTF";
@@ -77,83 +58,6 @@ let GLTFConverter = class GLTFConverter {
77
58
  this._imageCache = {};
78
59
  this._nodes = [];
79
60
  this._promises = [];
80
- this._mergeShader = new THREE.ShaderMaterial({
81
- uniforms: {
82
- tRed: { value: null },
83
- activeRed: { value: false },
84
- defaultRed: { value: 1.0 },
85
- tGreen: { value: null },
86
- activeGreen: { value: false },
87
- defaultGreen: { value: 1.0 },
88
- tBlue: { value: null },
89
- activeBlue: { value: false },
90
- defaultBlue: { value: 1.0 },
91
- },
92
- vertexShader: `// @author Michael Oppitz
93
-
94
- uniform sampler2D tRed;
95
- uniform bool activeRed;
96
- uniform float defaultRed;
97
-
98
- uniform sampler2D tGreen;
99
- uniform bool activeGreen;
100
- uniform float defaultGreen;
101
-
102
- uniform sampler2D tBlue;
103
- uniform bool activeBlue;
104
- uniform float defaultBlue;
105
-
106
- varying vec2 vUv;
107
-
108
- void main() {
109
- vUv = uv;
110
- gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
111
- }`,
112
- fragmentShader: `// @author Michael Oppitz
113
-
114
- uniform sampler2D tRed;
115
- uniform bool activeRed;
116
- uniform float defaultRed;
117
-
118
- uniform sampler2D tGreen;
119
- uniform bool activeGreen;
120
- uniform float defaultGreen;
121
-
122
- uniform sampler2D tBlue;
123
- uniform bool activeBlue;
124
- uniform float defaultBlue;
125
-
126
- varying vec2 vUv;
127
-
128
- void main() {
129
- vec4 outColor = vec4(0.0, 0.0, 0.0, 1.0);
130
-
131
- if(activeRed == true) {
132
- outColor.r = texture2D(tRed, vUv).r;
133
- } else {
134
- outColor.r = defaultRed;
135
- }
136
-
137
- if(activeGreen == true) {
138
- outColor.g = texture2D(tGreen, vUv).g;
139
- } else {
140
- outColor.g = defaultGreen;
141
- }
142
-
143
- if(activeBlue == true) {
144
- outColor.b = texture2D(tBlue, vUv).b;
145
- } else {
146
- outColor.b = defaultBlue;
147
- }
148
-
149
- gl_FragColor = outColor;
150
- }`
151
- });
152
- this._quadCamera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1);
153
- this._quadScene = new THREE.Scene();
154
- const quad = new THREE.Mesh(new THREE.PlaneGeometry(2, 2), this._mergeShader);
155
- this._quadScene.add(quad);
156
- this._renderer = new THREE.WebGLRenderer();
157
61
  }
158
62
  // #endregion Constructors (1)
159
63
  // #region Public Methods (1)
@@ -264,78 +168,6 @@ let GLTFConverter = class GLTFConverter {
264
168
  }
265
169
  // #endregion Public Methods (1)
266
170
  // #region Private Methods (18)
267
- combineTextures(red, green, blue) {
268
- return __awaiter(this, void 0, void 0, function* () {
269
- if (!red && !green && !blue)
270
- throw new Error('No maps supplied.');
271
- let width = 0, height = 0;
272
- const textures = [red, green, blue];
273
- for (let t of textures) {
274
- if (t) {
275
- if (width === 0 && height === 0) {
276
- width = t.image.width;
277
- height = t.image.height;
278
- }
279
- else if (t.image.width !== width && t.image.height !== height) {
280
- throw new Error('Maps have different sizes. Combining not supported.');
281
- }
282
- }
283
- }
284
- if (red) {
285
- const redTexture = new THREE.Texture(red.image);
286
- redTexture.needsUpdate = true;
287
- this._mergeShader.uniforms.tRed.value = redTexture;
288
- this._mergeShader.uniforms.activeRed.value = true;
289
- }
290
- else {
291
- this._mergeShader.uniforms.activeRed.value = false;
292
- }
293
- if (green) {
294
- const greenTexture = new THREE.Texture(green.image);
295
- greenTexture.needsUpdate = true;
296
- this._mergeShader.uniforms.tGreen.value = greenTexture;
297
- this._mergeShader.uniforms.activeGreen.value = true;
298
- }
299
- else {
300
- this._mergeShader.uniforms.activeGreen.value = false;
301
- }
302
- if (blue) {
303
- const blueTexture = new THREE.Texture(blue.image);
304
- blueTexture.needsUpdate = true;
305
- this._mergeShader.uniforms.tBlue.value = blueTexture;
306
- this._mergeShader.uniforms.activeBlue.value = true;
307
- }
308
- else {
309
- this._mergeShader.uniforms.activeBlue.value = false;
310
- }
311
- // The different render targets that are used by the passes
312
- const renderTarget = new THREE.WebGLRenderTarget(width, height, {
313
- minFilter: THREE.LinearFilter,
314
- magFilter: THREE.LinearFilter,
315
- format: THREE.RGBAFormat
316
- });
317
- renderTarget.texture.name = 'target.rt';
318
- this._renderer.setRenderTarget(renderTarget);
319
- this._renderer.render(this._quadScene, this._quadCamera);
320
- const buffer = new Uint8ClampedArray(4 * width * height);
321
- this._renderer.readRenderTargetPixels(renderTarget, 0, 0, width, height, buffer);
322
- let imageData = new ImageData(buffer, width, height);
323
- var canvas = document.createElement('canvas');
324
- var ctx = canvas.getContext('2d');
325
- canvas.width = imageData.width;
326
- canvas.height = imageData.height;
327
- ctx.putImageData(imageData, 0, 0);
328
- const image = new Image();
329
- const promise = new Promise(resolve => {
330
- image.onload = () => resolve();
331
- });
332
- image.crossOrigin = "anonymous";
333
- image.src = canvas.toDataURL("image/jpeg", 1.0);
334
- yield promise;
335
- const m = (red || green || blue);
336
- return new viewer_shared_types_1.MapData(image, m.wrapS, m.wrapT, m.minFilter, m.magFilter, m.center, m.color, m.offset, m.repeat, m.rotation, m.flipY);
337
- });
338
- }
339
171
  convertAccessor(data) {
340
172
  if (!this._content.accessors)
341
173
  this._content.accessors = [];
@@ -608,8 +440,9 @@ let GLTFConverter = class GLTFConverter {
608
440
  }
609
441
  else if ((standardMaterialData.metalnessMap || standardMaterialData.roughnessMap) && includeMaps) {
610
442
  this._promises.push(new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
611
- const mapData = yield this.combineTextures(undefined, standardMaterialData.roughnessMap, standardMaterialData.metalnessMap);
612
- materialDef.pbrMetallicRoughness.metallicRoughnessTexture = { index: this.convertTexture(mapData) };
443
+ const imageData = yield (0, viewer_utils_texture_unifier_1.combineTextures)(undefined, standardMaterialData.roughnessMap ? standardMaterialData.roughnessMap.image : undefined, standardMaterialData.metalnessMap ? standardMaterialData.metalnessMap.image : undefined);
444
+ const m = (standardMaterialData.roughnessMap || standardMaterialData.metalnessMap);
445
+ materialDef.pbrMetallicRoughness.metallicRoughnessTexture = { index: this.convertTexture(new viewer_shared_types_1.MapData(imageData, m.wrapS, m.wrapT, m.minFilter, m.magFilter, m.center, m.color, m.offset, m.repeat, m.rotation, m.flipY)) };
613
446
  resolve();
614
447
  })));
615
448
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GLTFConverter.js","sourceRoot":"","sources":["../src/GLTFConverter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GLTFConverter.js","sourceRoot":"","sources":["../src/GLTFConverter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapediver/viewer.data-engine.gltf-converter",
3
- "version": "2.3.5",
3
+ "version": "2.4.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "Michael Oppitz <michael@shapediver.com>",
@@ -39,15 +39,15 @@
39
39
  "testEnvironment": "node"
40
40
  },
41
41
  "dependencies": {
42
- "@shapediver/viewer.data-engine.shared-types": "2.3.5",
43
- "@shapediver/viewer.shared.build-data": "2.3.5",
44
- "@shapediver/viewer.shared.node-tree": "2.3.5",
45
- "@shapediver/viewer.shared.services": "2.3.5",
46
- "@shapediver/viewer.shared.types": "2.3.5",
42
+ "@shapediver/viewer.data-engine.shared-types": "2.4.0",
43
+ "@shapediver/viewer.shared.build-data": "2.4.0",
44
+ "@shapediver/viewer.shared.node-tree": "2.4.0",
45
+ "@shapediver/viewer.shared.services": "2.4.0",
46
+ "@shapediver/viewer.shared.types": "2.4.0",
47
+ "@shapediver/viewer.utils.texture-unifier": "1.0.0",
47
48
  "axios": "^0.21.1",
48
49
  "gl-matrix": "3.3.0",
49
- "three": "^0.141.0",
50
50
  "tsyringe": "^4.5.0"
51
51
  },
52
- "gitHead": "e0ddd8dcd9ed69964378bf5f938babf2a72f921e"
52
+ "gitHead": "b0bc626496adf01f9308b3b4557aa69cbb4fe52f"
53
53
  }
@@ -38,7 +38,7 @@ import {
38
38
  IAnimationData,
39
39
  IGeometryData,
40
40
  } from '@shapediver/viewer.shared.types'
41
- import * as THREE from 'three'
41
+ import { combineTextures } from "@shapediver/viewer.utils.texture-unifier"
42
42
 
43
43
  export enum GLTF_EXTENSIONS {
44
44
  KHR_BINARY_GLTF = 'KHR_binary_glTF',
@@ -56,10 +56,6 @@ export class GLTFConverter {
56
56
  0, 0, -1, 0,
57
57
  0, 1, 0, 0,
58
58
  0, 0, 0, 1);
59
- private readonly _mergeShader: THREE.ShaderMaterial;
60
- private readonly _quadCamera: THREE.OrthographicCamera;
61
- private readonly _quadScene: THREE.Scene;
62
- private readonly _renderer: THREE.WebGLRenderer;
63
59
  private readonly _uuidGenerator: UuidGenerator = <UuidGenerator>container.resolve(UuidGenerator);
64
60
 
65
61
  private _animations: IAnimationData[] = [];
@@ -89,87 +85,7 @@ export class GLTFConverter {
89
85
 
90
86
  // #region Constructors (1)
91
87
 
92
- constructor() {
93
- this._mergeShader = new THREE.ShaderMaterial({
94
- uniforms: {
95
- tRed: { value: null },
96
- activeRed: { value: false },
97
- defaultRed: { value: 1.0 },
98
- tGreen: { value: null },
99
- activeGreen: { value: false },
100
- defaultGreen: { value: 1.0 },
101
- tBlue: { value: null },
102
- activeBlue: { value: false },
103
- defaultBlue: { value: 1.0 },
104
- },
105
- vertexShader: `// @author Michael Oppitz
106
-
107
- uniform sampler2D tRed;
108
- uniform bool activeRed;
109
- uniform float defaultRed;
110
-
111
- uniform sampler2D tGreen;
112
- uniform bool activeGreen;
113
- uniform float defaultGreen;
114
-
115
- uniform sampler2D tBlue;
116
- uniform bool activeBlue;
117
- uniform float defaultBlue;
118
-
119
- varying vec2 vUv;
120
-
121
- void main() {
122
- vUv = uv;
123
- gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
124
- }`,
125
- fragmentShader: `// @author Michael Oppitz
126
-
127
- uniform sampler2D tRed;
128
- uniform bool activeRed;
129
- uniform float defaultRed;
130
-
131
- uniform sampler2D tGreen;
132
- uniform bool activeGreen;
133
- uniform float defaultGreen;
134
-
135
- uniform sampler2D tBlue;
136
- uniform bool activeBlue;
137
- uniform float defaultBlue;
138
-
139
- varying vec2 vUv;
140
-
141
- void main() {
142
- vec4 outColor = vec4(0.0, 0.0, 0.0, 1.0);
143
-
144
- if(activeRed == true) {
145
- outColor.r = texture2D(tRed, vUv).r;
146
- } else {
147
- outColor.r = defaultRed;
148
- }
149
-
150
- if(activeGreen == true) {
151
- outColor.g = texture2D(tGreen, vUv).g;
152
- } else {
153
- outColor.g = defaultGreen;
154
- }
155
-
156
- if(activeBlue == true) {
157
- outColor.b = texture2D(tBlue, vUv).b;
158
- } else {
159
- outColor.b = defaultBlue;
160
- }
161
-
162
- gl_FragColor = outColor;
163
- }`
164
- });
165
-
166
- this._quadCamera = new THREE.OrthographicCamera(- 1, 1, 1, - 1, 0, 1);
167
- this._quadScene = new THREE.Scene();
168
- const quad = new THREE.Mesh(new THREE.PlaneGeometry(2, 2), this._mergeShader);
169
- this._quadScene.add(quad);
170
-
171
- this._renderer = new THREE.WebGLRenderer();
172
- }
88
+ constructor() { }
173
89
 
174
90
  // #endregion Constructors (1)
175
91
 
@@ -300,84 +216,6 @@ export class GLTFConverter {
300
216
 
301
217
  // #region Private Methods (18)
302
218
 
303
- private async combineTextures(red?: IMapData, green?: IMapData, blue?: IMapData): Promise<MapData> {
304
- if (!red && !green && !blue)
305
- throw new Error('No maps supplied.')
306
-
307
- let width = 0, height = 0;
308
- const textures = [red, green, blue];
309
- for (let t of textures) {
310
- if (t) {
311
- if (width === 0 && height === 0) {
312
- width = t.image.width;
313
- height = t.image.height;
314
- } else if (t.image.width !== width && t.image.height !== height) {
315
- throw new Error('Maps have different sizes. Combining not supported.')
316
- }
317
- }
318
- }
319
-
320
- if (red) {
321
- const redTexture = new THREE.Texture(red.image);
322
- redTexture.needsUpdate = true;
323
- this._mergeShader.uniforms.tRed.value = redTexture;
324
- this._mergeShader.uniforms.activeRed.value = true;
325
- } else {
326
- this._mergeShader.uniforms.activeRed.value = false;
327
- }
328
-
329
- if (green) {
330
- const greenTexture = new THREE.Texture(green.image);
331
- greenTexture.needsUpdate = true;
332
- this._mergeShader.uniforms.tGreen.value = greenTexture;
333
- this._mergeShader.uniforms.activeGreen.value = true;
334
- } else {
335
- this._mergeShader.uniforms.activeGreen.value = false;
336
- }
337
-
338
- if (blue) {
339
- const blueTexture = new THREE.Texture(blue.image);
340
- blueTexture.needsUpdate = true;
341
- this._mergeShader.uniforms.tBlue.value = blueTexture;
342
- this._mergeShader.uniforms.activeBlue.value = true;
343
- } else {
344
- this._mergeShader.uniforms.activeBlue.value = false;
345
- }
346
-
347
- // The different render targets that are used by the passes
348
- const renderTarget = new THREE.WebGLRenderTarget(width, height, {
349
- minFilter: THREE.LinearFilter,
350
- magFilter: THREE.LinearFilter,
351
- format: THREE.RGBAFormat
352
- });
353
- renderTarget.texture.name = 'target.rt';
354
- this._renderer.setRenderTarget(renderTarget)
355
-
356
- this._renderer.render(this._quadScene, this._quadCamera);
357
-
358
- const buffer = new Uint8ClampedArray(4 * width * height);
359
- this._renderer.readRenderTargetPixels(renderTarget, 0, 0, width, height, buffer)
360
-
361
- let imageData = new ImageData(buffer, width, height);
362
- var canvas = document.createElement('canvas');
363
- var ctx = <CanvasRenderingContext2D>canvas.getContext('2d');
364
- canvas.width = imageData.width;
365
- canvas.height = imageData.height;
366
- ctx.putImageData(imageData, 0, 0);
367
-
368
- const image = new Image();
369
- const promise = new Promise<void>(resolve => {
370
- image.onload = () => resolve();
371
- })
372
- image.crossOrigin = "anonymous";
373
- image.src = canvas.toDataURL("image/jpeg", 1.0);
374
-
375
- await promise;
376
-
377
- const m = (red || green || blue)!;
378
- return new MapData(image, m.wrapS, m.wrapT, m.minFilter, m.magFilter, m.center, m.color, m.offset, m.repeat, m.rotation, m.flipY);
379
- }
380
-
381
219
  private convertAccessor(data: IAttributeData): number {
382
220
  if (!this._content.accessors) this._content.accessors = [];
383
221
 
@@ -681,8 +519,13 @@ export class GLTFConverter {
681
519
  materialDef.pbrMetallicRoughness!.metallicRoughnessTexture = { index: this.convertTexture(standardMaterialData.metalnessRoughnessMap) };
682
520
  } else if ((standardMaterialData.metalnessMap || standardMaterialData.roughnessMap) && includeMaps) {
683
521
  this._promises.push(new Promise<void>(async resolve => {
684
- const mapData = await this.combineTextures(undefined, standardMaterialData.roughnessMap, standardMaterialData.metalnessMap);
685
- materialDef.pbrMetallicRoughness!.metallicRoughnessTexture = { index: this.convertTexture(mapData) }
522
+ const imageData = await combineTextures(
523
+ undefined,
524
+ standardMaterialData.roughnessMap ? standardMaterialData.roughnessMap.image : undefined,
525
+ standardMaterialData.metalnessMap ? standardMaterialData.metalnessMap.image : undefined
526
+ );
527
+ const m = (standardMaterialData.roughnessMap! || standardMaterialData.metalnessMap!)!;
528
+ materialDef.pbrMetallicRoughness!.metallicRoughnessTexture = { index: this.convertTexture(new MapData(imageData, m.wrapS, m.wrapT, m.minFilter, m.magFilter, m.center, m.color, m.offset, m.repeat, m.rotation, m.flipY)) }
686
529
  resolve();
687
530
  }))
688
531
  }