three-stdlib 2.13.0 → 2.14.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),s=require("../Nodes-627a8bdf.js");require("../nodes/core/ArrayUniformNode.cjs.js"),require("../nodes/core/UniformNode.cjs.js"),require("../nodes/core/InputNode.cjs.js"),require("../nodes/core/Node.cjs.js"),require("../nodes/core/constants.cjs.js"),require("../nodes/core/NodeUtils.cjs.js"),require("../nodes/core/AttributeNode.cjs.js"),require("../nodes/core/VaryNode.cjs.js"),require("../nodes/core/BypassNode.cjs.js"),require("../nodes/core/CodeNode.cjs.js"),require("../nodes/core/ConstNode.cjs.js"),require("../nodes/core/ContextNode.cjs.js"),require("../nodes/core/ExpressionNode.cjs.js"),require("../nodes/core/TempNode.cjs.js"),require("../nodes/core/FunctionCallNode.cjs.js"),require("../nodes/core/FunctionNode.cjs.js"),require("../nodes/core/NodeAttribute.cjs.js"),require("../nodes/core/NodeBuilder.cjs.js"),require("../nodes/core/NodeUniform.cjs.js"),require("../nodes/core/NodeVary.cjs.js"),require("../nodes/core/NodeVar.cjs.js"),require("../nodes/core/NodeCode.cjs.js"),require("../nodes/core/NodeKeywords.cjs.js"),require("../nodes/core/NodeFrame.cjs.js"),require("../nodes/core/NodeFunctionInput.cjs.js"),require("../nodes/core/PropertyNode.cjs.js"),require("../nodes/core/VarNode.cjs.js"),require("../nodes/accessors/BufferNode.cjs.js"),require("../nodes/accessors/CameraNode.cjs.js"),require("@babel/runtime/helpers/defineProperty"),require("../nodes/accessors/Object3DNode.cjs.js"),require("../nodes/accessors/CubeTextureNode.cjs.js"),require("../nodes/accessors/TextureNode.cjs.js"),require("../nodes/accessors/UVNode.cjs.js"),require("../nodes/accessors/ReflectNode.cjs.js"),require("../nodes/ShaderNode.cjs.js"),require("../nodes/accessors/PositionNode.cjs.js"),require("../nodes/accessors/ModelNode.cjs.js"),require("../nodes/math/MathNode.cjs.js"),require("../nodes/utils/JoinNode.cjs.js"),require("../nodes/utils/SplitNode.cjs.js"),require("../nodes/math/OperatorNode.cjs.js"),require("../nodes/accessors/NormalNode.cjs.js"),require("../nodes/math/CondNode.cjs.js"),require("../nodes/utils/ArrayElementNode.cjs.js"),require("../nodes/utils/ConvertNode.cjs.js"),require("../nodes/accessors/MaterialNode.cjs.js"),require("../nodes/accessors/MaterialReferenceNode.cjs.js"),require("../nodes/accessors/ReferenceNode.cjs.js"),require("../nodes/accessors/ModelViewProjectionNode.cjs.js"),require("../nodes/accessors/PointUVNode.cjs.js"),require("../nodes/accessors/SkinningNode.cjs.js"),require("../nodes/display/ColorSpaceNode.cjs.js"),require("../nodes/display/NormalMapNode.cjs.js"),require("../nodes/lights/LightContextNode.cjs.js"),require("../nodes/functions/BSDFs.cjs.js"),require("../nodes/lights/LightNode.cjs.js"),require("../nodes/lights/LightsNode.cjs.js"),require("../nodes/utils/SpriteSheetUVNode.cjs.js"),require("../nodes/utils/MatcapUVNode.cjs.js"),require("../nodes/utils/OscNode.cjs.js"),require("../nodes/utils/TimerNode.cjs.js"),require("../nodes/loaders/NodeMaterialLoader.cjs.js"),require("../nodes/procedural/CheckerNode.cjs.js"),require("../nodes/fog/FogNode.cjs.js"),require("../nodes/fog/FogRangeNode.cjs.js"),require("../nodes/materials/LineBasicNodeMaterial.cjs.js"),require("../nodes/materials/NodeMaterial.cjs.js"),require("../nodes/materials/MeshBasicNodeMaterial.cjs.js"),require("../nodes/materials/MeshStandardNodeMaterial.cjs.js"),require("../nodes/materials/PointsNodeMaterial.cjs.js");class r extends e.Loader{constructor(e,s={}){super(e),this.nodes={},this.materials={},this.passes={},this.names={},this.library=s}load(s,r,o,i){const t=this,d=new e.FileLoader(t.manager);return d.setPath(t.path),d.load(s,(function(e){r(t.parse(JSON.parse(e)))}),o,i),this}getObjectByName(e){return this.names[e]}getObjectById(e){return this.library[e]||this.nodes[e]||this.materials[e]||this.passes[e]||this.names[e]}getNode(e){const s=this.getObjectById(e);return s||console.warn('Node "'+e+'" not found.'),s}resolve(e){switch(typeof e){case"boolean":case"number":return e;case"string":return/^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i.test(e)||this.library[e]?this.getNode(e):e;default:if(Array.isArray(e))for(let s=0;s<e.length;s++)e[s]=this.resolve(e[s]);else for(const s in e)"uuid"!==s&&(e[s]=this.resolve(e[s]))}return e}declare(e){let r,o,i;for(r in e.nodes)o=e.nodes[r],i=new s.Nodes[o.nodeType+"Node"],o.name&&(i.name=o.name,this.names[i.name]=i),this.nodes[r]=i;for(r in e.materials)o=e.materials[r],i=new s.Nodes[o.type],o.name&&(i.name=o.name,this.names[i.name]=i),this.materials[r]=i;for(r in e.passes)o=e.passes[r],i=new s.Nodes[o.type],o.name&&(i.name=o.name,this.names[i.name]=i),this.passes[r]=i;return e.material&&(this.material=this.materials[e.material]),e.pass&&(this.pass=this.passes[e.pass]),e}parse(e){let s;for(s in(e=this.resolve(this.declare(e))).nodes)this.nodes[s].copy(e.nodes[s]);for(s in e.materials)this.materials[s].copy(e.materials[s]);for(s in e.passes)this.passes[s].copy(e.passes[s]);return this.material||this.pass||this}}exports.NodeMaterialLoader=r,exports.NodeMaterialLoaderUtils=class{static replaceUUIDObject(e,s,r,o){if(o=void 0===o||o,"object"==typeof s&&(s=s.uuid),"object"==typeof e){const i=Object.keys(e);for(let t=0;t<i.length;t++){const d=i[t];o&&(e[d]=this.replaceUUIDObject(e[d],s,r)),d===s&&(e[s]=e[d],delete e[d])}}return e===s?r:e}static replaceUUID(e,s,r){return this.replaceUUIDObject(e,s,r,!1),this.replaceUUIDObject(e.nodes,s,r),this.replaceUUIDObject(e.materials,s,r),this.replaceUUIDObject(e.passes,s,r),this.replaceUUIDObject(e.library,s,r,!1),e}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),s=require("../Nodes-9aa16d74.js");require("../nodes/core/ArrayUniformNode.cjs.js"),require("../nodes/core/UniformNode.cjs.js"),require("../nodes/core/InputNode.cjs.js"),require("../nodes/core/Node.cjs.js"),require("../nodes/core/constants.cjs.js"),require("../nodes/core/NodeUtils.cjs.js"),require("../nodes/core/AttributeNode.cjs.js"),require("../nodes/core/VaryNode.cjs.js"),require("../nodes/core/BypassNode.cjs.js"),require("../nodes/core/CodeNode.cjs.js"),require("../nodes/core/ConstNode.cjs.js"),require("../nodes/core/ContextNode.cjs.js"),require("../nodes/core/ExpressionNode.cjs.js"),require("../nodes/core/TempNode.cjs.js"),require("../nodes/core/FunctionCallNode.cjs.js"),require("../nodes/core/FunctionNode.cjs.js"),require("../nodes/core/NodeAttribute.cjs.js"),require("../nodes/core/NodeBuilder.cjs.js"),require("../nodes/core/NodeUniform.cjs.js"),require("../nodes/core/NodeVary.cjs.js"),require("../nodes/core/NodeVar.cjs.js"),require("../nodes/core/NodeCode.cjs.js"),require("../nodes/core/NodeKeywords.cjs.js"),require("../nodes/core/NodeFrame.cjs.js"),require("../nodes/core/NodeFunctionInput.cjs.js"),require("../nodes/core/PropertyNode.cjs.js"),require("../nodes/core/VarNode.cjs.js"),require("../nodes/accessors/BufferNode.cjs.js"),require("../nodes/accessors/CameraNode.cjs.js"),require("@babel/runtime/helpers/defineProperty"),require("../nodes/accessors/Object3DNode.cjs.js"),require("../nodes/accessors/CubeTextureNode.cjs.js"),require("../nodes/accessors/TextureNode.cjs.js"),require("../nodes/accessors/UVNode.cjs.js"),require("../nodes/accessors/ReflectNode.cjs.js"),require("../nodes/ShaderNode.cjs.js"),require("../nodes/accessors/PositionNode.cjs.js"),require("../nodes/accessors/ModelNode.cjs.js"),require("../nodes/math/MathNode.cjs.js"),require("../nodes/utils/JoinNode.cjs.js"),require("../nodes/utils/SplitNode.cjs.js"),require("../nodes/math/OperatorNode.cjs.js"),require("../nodes/accessors/NormalNode.cjs.js"),require("../nodes/math/CondNode.cjs.js"),require("../nodes/utils/ArrayElementNode.cjs.js"),require("../nodes/utils/ConvertNode.cjs.js"),require("../nodes/accessors/MaterialNode.cjs.js"),require("../nodes/accessors/MaterialReferenceNode.cjs.js"),require("../nodes/accessors/ReferenceNode.cjs.js"),require("../nodes/accessors/ModelViewProjectionNode.cjs.js"),require("../nodes/accessors/PointUVNode.cjs.js"),require("../nodes/accessors/SkinningNode.cjs.js"),require("../nodes/display/ColorSpaceNode.cjs.js"),require("../nodes/display/NormalMapNode.cjs.js"),require("../nodes/lights/LightContextNode.cjs.js"),require("../nodes/functions/BSDFs.cjs.js"),require("../nodes/lights/LightNode.cjs.js"),require("../nodes/lights/LightsNode.cjs.js"),require("../nodes/utils/SpriteSheetUVNode.cjs.js"),require("../nodes/utils/MatcapUVNode.cjs.js"),require("../nodes/utils/OscNode.cjs.js"),require("../nodes/utils/TimerNode.cjs.js"),require("../nodes/loaders/NodeMaterialLoader.cjs.js"),require("../nodes/procedural/CheckerNode.cjs.js"),require("../nodes/fog/FogNode.cjs.js"),require("../nodes/fog/FogRangeNode.cjs.js"),require("../nodes/materials/LineBasicNodeMaterial.cjs.js"),require("../nodes/materials/NodeMaterial.cjs.js"),require("../nodes/materials/MeshBasicNodeMaterial.cjs.js"),require("../nodes/materials/MeshStandardNodeMaterial.cjs.js"),require("../nodes/materials/PointsNodeMaterial.cjs.js");class r extends e.Loader{constructor(e,s={}){super(e),this.nodes={},this.materials={},this.passes={},this.names={},this.library=s}load(s,r,o,i){const t=this,d=new e.FileLoader(t.manager);return d.setPath(t.path),d.load(s,(function(e){r(t.parse(JSON.parse(e)))}),o,i),this}getObjectByName(e){return this.names[e]}getObjectById(e){return this.library[e]||this.nodes[e]||this.materials[e]||this.passes[e]||this.names[e]}getNode(e){const s=this.getObjectById(e);return s||console.warn('Node "'+e+'" not found.'),s}resolve(e){switch(typeof e){case"boolean":case"number":return e;case"string":return/^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i.test(e)||this.library[e]?this.getNode(e):e;default:if(Array.isArray(e))for(let s=0;s<e.length;s++)e[s]=this.resolve(e[s]);else for(const s in e)"uuid"!==s&&(e[s]=this.resolve(e[s]))}return e}declare(e){let r,o,i;for(r in e.nodes)o=e.nodes[r],i=new s.Nodes[o.nodeType+"Node"],o.name&&(i.name=o.name,this.names[i.name]=i),this.nodes[r]=i;for(r in e.materials)o=e.materials[r],i=new s.Nodes[o.type],o.name&&(i.name=o.name,this.names[i.name]=i),this.materials[r]=i;for(r in e.passes)o=e.passes[r],i=new s.Nodes[o.type],o.name&&(i.name=o.name,this.names[i.name]=i),this.passes[r]=i;return e.material&&(this.material=this.materials[e.material]),e.pass&&(this.pass=this.passes[e.pass]),e}parse(e){let s;for(s in(e=this.resolve(this.declare(e))).nodes)this.nodes[s].copy(e.nodes[s]);for(s in e.materials)this.materials[s].copy(e.materials[s]);for(s in e.passes)this.passes[s].copy(e.passes[s]);return this.material||this.pass||this}}exports.NodeMaterialLoader=r,exports.NodeMaterialLoaderUtils=class{static replaceUUIDObject(e,s,r,o){if(o=void 0===o||o,"object"==typeof s&&(s=s.uuid),"object"==typeof e){const i=Object.keys(e);for(let t=0;t<i.length;t++){const d=i[t];o&&(e[d]=this.replaceUUIDObject(e[d],s,r)),d===s&&(e[s]=e[d],delete e[d])}}return e===s?r:e}static replaceUUID(e,s,r){return this.replaceUUIDObject(e,s,r,!1),this.replaceUUIDObject(e.nodes,s,r),this.replaceUUIDObject(e.materials,s,r),this.replaceUUIDObject(e.passes,s,r),this.replaceUUIDObject(e.library,s,r,!1),e}};
@@ -128,43 +128,60 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) {
128
128
  if (ctype == 6) {
129
129
  // RGB + alpha
130
130
  var qarea = area << 2;
131
- if (depth == 8) for (var i = 0; i < qarea; i += 4) {
132
- bf[i] = data[i];
133
- bf[i + 1] = data[i + 1];
134
- bf[i + 2] = data[i + 2];
135
- bf[i + 3] = data[i + 3];
131
+
132
+ if (depth == 8) {
133
+ for (var i = 0; i < qarea; i += 4) {
134
+ bf[i] = data[i];
135
+ bf[i + 1] = data[i + 1];
136
+ bf[i + 2] = data[i + 2];
137
+ bf[i + 3] = data[i + 3];
138
+ }
136
139
  }
137
- if (depth == 16) for (var i = 0; i < qarea; i++) {
138
- bf[i] = data[i << 1];
140
+
141
+ if (depth == 16) {
142
+ for (var i = 0; i < qarea; i++) {
143
+ bf[i] = data[i << 1];
144
+ }
139
145
  }
140
146
  } else if (ctype == 2) {
141
147
  // RGB
142
148
  var ts = out.tabs['tRNS'];
143
149
 
144
150
  if (ts == null) {
145
- if (depth == 8) for (var i = 0; i < area; i++) {
146
- var ti = i * 3;
147
- bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
151
+ if (depth == 8) {
152
+ for (var i = 0; i < area; i++) {
153
+ var ti = i * 3;
154
+ bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
155
+ }
148
156
  }
149
- if (depth == 16) for (var i = 0; i < area; i++) {
150
- var ti = i * 6;
151
- bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
157
+
158
+ if (depth == 16) {
159
+ for (var i = 0; i < area; i++) {
160
+ var ti = i * 6;
161
+ bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
162
+ }
152
163
  }
153
164
  } else {
154
165
  var tr = ts[0],
155
166
  tg = ts[1],
156
167
  tb = ts[2];
157
- if (depth == 8) for (var i = 0; i < area; i++) {
158
- var qi = i << 2,
159
- ti = i * 3;
160
- bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
161
- if (data[ti] == tr && data[ti + 1] == tg && data[ti + 2] == tb) bf[qi + 3] = 0;
168
+
169
+ if (depth == 8) {
170
+ for (var i = 0; i < area; i++) {
171
+ var qi = i << 2,
172
+ ti = i * 3;
173
+ bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
174
+ if (data[ti] == tr && data[ti + 1] == tg && data[ti + 2] == tb) bf[qi + 3] = 0;
175
+ }
162
176
  }
163
- if (depth == 16) for (var i = 0; i < area; i++) {
164
- var qi = i << 2,
165
- ti = i * 6;
166
- bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
167
- if (rs(data, ti) == tr && rs(data, ti + 2) == tg && rs(data, ti + 4) == tb) bf[qi + 3] = 0;
177
+
178
+ if (depth == 16) {
179
+ for (var i = 0; i < area; i++) {
180
+ var qi = i << 2,
181
+ ti = i * 6;
182
+ bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
183
+ if (rs(data, ti) == tr && rs(data, ti + 2) == tg && rs(data, ti + 4) == tb) bf[qi + 3] = 0;
184
+ }
168
185
  }
169
186
  }
170
187
  } else if (ctype == 3) {
@@ -173,41 +190,61 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) {
173
190
  ap = out.tabs['tRNS'],
174
191
  tl = ap ? ap.length : 0; //console.log(p, ap);
175
192
 
176
- if (depth == 1) for (var y = 0; y < h; y++) {
177
- var s0 = y * bpl,
178
- t0 = y * w;
193
+ if (depth == 1) {
194
+ for (var y = 0; y < h; y++) {
195
+ var s0 = y * bpl,
196
+ t0 = y * w;
197
+
198
+ for (var i = 0; i < w; i++) {
199
+ var qi = t0 + i << 2,
200
+ j = data[s0 + (i >> 3)] >> 7 - ((i & 7) << 0) & 1,
201
+ cj = 3 * j;
202
+ bf[qi] = p[cj];
203
+ bf[qi + 1] = p[cj + 1];
204
+ bf[qi + 2] = p[cj + 2];
205
+ bf[qi + 3] = j < tl ? ap[j] : 255;
206
+ }
207
+ }
208
+ }
179
209
 
180
- for (var i = 0; i < w; i++) {
181
- var qi = t0 + i << 2,
182
- j = data[s0 + (i >> 3)] >> 7 - ((i & 7) << 0) & 1,
183
- cj = 3 * j;
184
- bf[qi] = p[cj];
185
- bf[qi + 1] = p[cj + 1];
186
- bf[qi + 2] = p[cj + 2];
187
- bf[qi + 3] = j < tl ? ap[j] : 255;
210
+ if (depth == 2) {
211
+ for (var y = 0; y < h; y++) {
212
+ var s0 = y * bpl,
213
+ t0 = y * w;
214
+
215
+ for (var i = 0; i < w; i++) {
216
+ var qi = t0 + i << 2,
217
+ j = data[s0 + (i >> 2)] >> 6 - ((i & 3) << 1) & 3,
218
+ cj = 3 * j;
219
+ bf[qi] = p[cj];
220
+ bf[qi + 1] = p[cj + 1];
221
+ bf[qi + 2] = p[cj + 2];
222
+ bf[qi + 3] = j < tl ? ap[j] : 255;
223
+ }
188
224
  }
189
225
  }
190
- if (depth == 2) for (var y = 0; y < h; y++) {
191
- var s0 = y * bpl,
192
- t0 = y * w;
193
226
 
194
- for (var i = 0; i < w; i++) {
195
- var qi = t0 + i << 2,
196
- j = data[s0 + (i >> 2)] >> 6 - ((i & 3) << 1) & 3,
197
- cj = 3 * j;
198
- bf[qi] = p[cj];
199
- bf[qi + 1] = p[cj + 1];
200
- bf[qi + 2] = p[cj + 2];
201
- bf[qi + 3] = j < tl ? ap[j] : 255;
227
+ if (depth == 4) {
228
+ for (var y = 0; y < h; y++) {
229
+ var s0 = y * bpl,
230
+ t0 = y * w;
231
+
232
+ for (var i = 0; i < w; i++) {
233
+ var qi = t0 + i << 2,
234
+ j = data[s0 + (i >> 1)] >> 4 - ((i & 1) << 2) & 15,
235
+ cj = 3 * j;
236
+ bf[qi] = p[cj];
237
+ bf[qi + 1] = p[cj + 1];
238
+ bf[qi + 2] = p[cj + 2];
239
+ bf[qi + 3] = j < tl ? ap[j] : 255;
240
+ }
202
241
  }
203
242
  }
204
- if (depth == 4) for (var y = 0; y < h; y++) {
205
- var s0 = y * bpl,
206
- t0 = y * w;
207
243
 
208
- for (var i = 0; i < w; i++) {
209
- var qi = t0 + i << 2,
210
- j = data[s0 + (i >> 1)] >> 4 - ((i & 1) << 2) & 15,
244
+ if (depth == 8) {
245
+ for (var i = 0; i < area; i++) {
246
+ var qi = i << 2,
247
+ j = data[i],
211
248
  cj = 3 * j;
212
249
  bf[qi] = p[cj];
213
250
  bf[qi + 1] = p[cj + 1];
@@ -215,34 +252,30 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) {
215
252
  bf[qi + 3] = j < tl ? ap[j] : 255;
216
253
  }
217
254
  }
218
- if (depth == 8) for (var i = 0; i < area; i++) {
219
- var qi = i << 2,
220
- j = data[i],
221
- cj = 3 * j;
222
- bf[qi] = p[cj];
223
- bf[qi + 1] = p[cj + 1];
224
- bf[qi + 2] = p[cj + 2];
225
- bf[qi + 3] = j < tl ? ap[j] : 255;
226
- }
227
255
  } else if (ctype == 4) {
228
256
  // gray + alpha
229
- if (depth == 8) for (var i = 0; i < area; i++) {
230
- var qi = i << 2,
231
- di = i << 1,
232
- gr = data[di];
233
- bf[qi] = gr;
234
- bf[qi + 1] = gr;
235
- bf[qi + 2] = gr;
236
- bf[qi + 3] = data[di + 1];
257
+ if (depth == 8) {
258
+ for (var i = 0; i < area; i++) {
259
+ var qi = i << 2,
260
+ di = i << 1,
261
+ gr = data[di];
262
+ bf[qi] = gr;
263
+ bf[qi + 1] = gr;
264
+ bf[qi + 2] = gr;
265
+ bf[qi + 3] = data[di + 1];
266
+ }
237
267
  }
238
- if (depth == 16) for (var i = 0; i < area; i++) {
239
- var qi = i << 2,
240
- di = i << 2,
241
- gr = data[di];
242
- bf[qi] = gr;
243
- bf[qi + 1] = gr;
244
- bf[qi + 2] = gr;
245
- bf[qi + 3] = data[di + 2];
268
+
269
+ if (depth == 16) {
270
+ for (var i = 0; i < area; i++) {
271
+ var qi = i << 2,
272
+ di = i << 2,
273
+ gr = data[di];
274
+ bf[qi] = gr;
275
+ bf[qi + 1] = gr;
276
+ bf[qi + 2] = gr;
277
+ bf[qi + 3] = data[di + 2];
278
+ }
246
279
  }
247
280
  } else if (ctype == 0) {
248
281
  // gray
@@ -251,26 +284,37 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) {
251
284
  for (var y = 0; y < h; y++) {
252
285
  var off = y * bpl,
253
286
  to = y * w;
254
- if (depth == 1) for (var x = 0; x < w; x++) {
255
- var gr = 255 * (data[off + (x >>> 3)] >>> 7 - (x & 7) & 1),
256
- al = gr == tr * 255 ? 0 : 255;
257
- bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
258
- } else if (depth == 2) for (var x = 0; x < w; x++) {
259
- var gr = 85 * (data[off + (x >>> 2)] >>> 6 - ((x & 3) << 1) & 3),
260
- al = gr == tr * 85 ? 0 : 255;
261
- bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
262
- } else if (depth == 4) for (var x = 0; x < w; x++) {
263
- var gr = 17 * (data[off + (x >>> 1)] >>> 4 - ((x & 1) << 2) & 15),
264
- al = gr == tr * 17 ? 0 : 255;
265
- bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
266
- } else if (depth == 8) for (var x = 0; x < w; x++) {
267
- var gr = data[off + x],
268
- al = gr == tr ? 0 : 255;
269
- bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
270
- } else if (depth == 16) for (var x = 0; x < w; x++) {
271
- var gr = data[off + (x << 1)],
272
- al = rs(data, off + (x << 1)) == tr ? 0 : 255;
273
- bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
287
+
288
+ if (depth == 1) {
289
+ for (var x = 0; x < w; x++) {
290
+ var gr = 255 * (data[off + (x >>> 3)] >>> 7 - (x & 7) & 1),
291
+ al = gr == tr * 255 ? 0 : 255;
292
+ bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
293
+ }
294
+ } else if (depth == 2) {
295
+ for (var x = 0; x < w; x++) {
296
+ var gr = 85 * (data[off + (x >>> 2)] >>> 6 - ((x & 3) << 1) & 3),
297
+ al = gr == tr * 85 ? 0 : 255;
298
+ bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
299
+ }
300
+ } else if (depth == 4) {
301
+ for (var x = 0; x < w; x++) {
302
+ var gr = 17 * (data[off + (x >>> 1)] >>> 4 - ((x & 1) << 2) & 15),
303
+ al = gr == tr * 17 ? 0 : 255;
304
+ bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
305
+ }
306
+ } else if (depth == 8) {
307
+ for (var x = 0; x < w; x++) {
308
+ var gr = data[off + x],
309
+ al = gr == tr ? 0 : 255;
310
+ bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
311
+ }
312
+ } else if (depth == 16) {
313
+ for (var x = 0; x < w; x++) {
314
+ var gr = data[off + (x << 1)],
315
+ al = rs(data, off + (x << 1)) == tr ? 0 : 255;
316
+ bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
317
+ }
274
318
  }
275
319
  }
276
320
  } //console.log(Date.now()-time);
@@ -358,10 +402,14 @@ UPNG.decode = function (buff) {
358
402
  var nz = bin.nextZero(data, offset);
359
403
  keyw = bin.readASCII(data, offset, nz - offset);
360
404
  var tl = offset + len - nz - 1;
361
- if (type == 'tEXt') text = bin.readASCII(data, nz + 1, tl);else {
405
+
406
+ if (type == 'tEXt') {
407
+ text = bin.readASCII(data, nz + 1, tl);
408
+ } else {
362
409
  bfr = UPNG.decode._inflate(data.slice(nz + 2, nz + 2 + tl));
363
410
  text = bin.readUTF8(bfr, 0, bfr.length);
364
411
  }
412
+
365
413
  out.tabs[type][keyw] = text;
366
414
  } else if (type == 'iTXt') {
367
415
  if (out.tabs[type] == null) out.tabs[type] = {};
@@ -379,10 +427,14 @@ UPNG.decode = function (buff) {
379
427
  bin.readUTF8(data, off, nz - off);
380
428
  off = nz + 1;
381
429
  var tl = len - (off - offset);
382
- if (cflag == 0) text = bin.readUTF8(data, off, tl);else {
430
+
431
+ if (cflag == 0) {
432
+ text = bin.readUTF8(data, off, tl);
433
+ } else {
383
434
  bfr = UPNG.decode._inflate(data.slice(off, off + tl));
384
435
  text = bin.readUTF8(bfr, 0, bfr.length);
385
436
  }
437
+
386
438
  out.tabs[type][keyw] = text;
387
439
  } else if (type == 'PLTE') {
388
440
  out.tabs[type] = bin.readBytes(data, offset, len);
@@ -393,8 +445,18 @@ UPNG.decode = function (buff) {
393
445
  for (var i = 0; i < pl; i++) out.tabs[type].push(rUs(data, offset + i * 2));
394
446
  } else if (type == 'tRNS') {
395
447
  if (out.ctype == 3) out.tabs[type] = bin.readBytes(data, offset, len);else if (out.ctype == 0) out.tabs[type] = rUs(data, offset);else if (out.ctype == 2) out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)]; //else console.log("tRNS for unsupported color type",out.ctype, len);
396
- } else if (type == 'gAMA') out.tabs[type] = bin.readUint(data, offset) / 100000;else if (type == 'sRGB') out.tabs[type] = data[offset];else if (type == 'bKGD') {
397
- if (out.ctype == 0 || out.ctype == 4) out.tabs[type] = [rUs(data, offset)];else if (out.ctype == 2 || out.ctype == 6) out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)];else if (out.ctype == 3) out.tabs[type] = data[offset];
448
+ } else if (type == 'gAMA') {
449
+ out.tabs[type] = bin.readUint(data, offset) / 100000;
450
+ } else if (type == 'sRGB') {
451
+ out.tabs[type] = data[offset];
452
+ } else if (type == 'bKGD') {
453
+ if (out.ctype == 0 || out.ctype == 4) {
454
+ out.tabs[type] = [rUs(data, offset)];
455
+ } else if (out.ctype == 2 || out.ctype == 6) {
456
+ out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)];
457
+ } else if (out.ctype == 3) {
458
+ out.tabs[type] = data[offset];
459
+ }
398
460
  } else if (type == 'IEND') {
399
461
  break;
400
462
  } //else { console.log("unknown chunk type", type, len); out.tabs[type]=data.slice(offset,offset+len); }
@@ -669,18 +731,20 @@ UPNG.inflateRaw = function () {
669
731
  n = H.H.m,
670
732
  A = n.r;
671
733
 
672
- for (var l = 0; l < V; l += 2) if (N[l + 1] != 0) {
673
- var M = l >> 1,
674
- I = N[l + 1],
675
- e = M << 4 | I,
676
- b = W - I,
677
- Z = N[l] << b,
678
- m = Z + (1 << b);
679
-
680
- while (Z != m) {
681
- var J = A[Z] >>> 15 - W;
682
- R[J] = e;
683
- Z++;
734
+ for (var l = 0; l < V; l += 2) {
735
+ if (N[l + 1] != 0) {
736
+ var M = l >> 1,
737
+ I = N[l + 1],
738
+ e = M << 4 | I,
739
+ b = W - I,
740
+ Z = N[l] << b,
741
+ m = Z + (1 << b);
742
+
743
+ while (Z != m) {
744
+ var J = A[Z] >>> 15 - W;
745
+ R[J] = e;
746
+ Z++;
747
+ }
684
748
  }
685
749
  }
686
750
  };
@@ -912,7 +976,10 @@ UPNG.decode._filterZero = function (data, out, off, w, h) {
912
976
  di = i + y + 1;
913
977
  type = data[di - 1];
914
978
  x = 0;
915
- if (type == 0) for (; x < bpl; x++) data[i + x] = data[di + x];else if (type == 1) {
979
+
980
+ if (type == 0) {
981
+ for (; x < bpl; x++) data[i + x] = data[di + x];
982
+ } else if (type == 1) {
916
983
  for (; x < bpp; x++) data[i + x] = data[di + x];
917
984
 
918
985
  for (; x < bpl; x++) data[i + x] = data[di + x] + data[i + x - bpp];
@@ -925,7 +992,9 @@ UPNG.decode._filterZero = function (data, out, off, w, h) {
925
992
  } else {
926
993
  for (; x < bpp; x++) data[i + x] = data[di + x] + paeth(0, data[i + x - bpl], 0);
927
994
 
928
- for (; x < bpl; x++) data[i + x] = data[di + x] + paeth(data[i + x - bpp], data[i + x - bpl], data[i + x - bpp - bpl]);
995
+ for (; x < bpl; x++) {
996
+ data[i + x] = data[di + x] + paeth(data[i + x - bpp], data[i + x - bpl], data[i + x - bpp - bpl]);
997
+ }
929
998
  }
930
999
  }
931
1000
 
@@ -1023,71 +1092,73 @@ UPNG._copyTile = function (sb, sw, sh, tb, tw, th, xoff, yoff, mode) {
1023
1092
  var si = 0,
1024
1093
  ti = 0;
1025
1094
 
1026
- for (var y = 0; y < h; y++) for (var x = 0; x < w; x++) {
1027
- if (xoff >= 0 && yoff >= 0) {
1028
- si = y * sw + x << 2;
1029
- ti = (yoff + y) * tw + xoff + x << 2;
1030
- } else {
1031
- si = (-yoff + y) * sw - xoff + x << 2;
1032
- ti = y * tw + x << 2;
1033
- }
1034
-
1035
- if (mode == 0) {
1036
- tb[ti] = sb[si];
1037
- tb[ti + 1] = sb[si + 1];
1038
- tb[ti + 2] = sb[si + 2];
1039
- tb[ti + 3] = sb[si + 3];
1040
- } else if (mode == 1) {
1041
- var fa = sb[si + 3] * (1 / 255),
1042
- fr = sb[si] * fa,
1043
- fg = sb[si + 1] * fa,
1044
- fb = sb[si + 2] * fa;
1045
- var ba = tb[ti + 3] * (1 / 255),
1046
- br = tb[ti] * ba,
1047
- bg = tb[ti + 1] * ba,
1048
- bb = tb[ti + 2] * ba;
1049
- var ifa = 1 - fa,
1050
- oa = fa + ba * ifa,
1051
- ioa = oa == 0 ? 0 : 1 / oa;
1052
- tb[ti + 3] = 255 * oa;
1053
- tb[ti + 0] = (fr + br * ifa) * ioa;
1054
- tb[ti + 1] = (fg + bg * ifa) * ioa;
1055
- tb[ti + 2] = (fb + bb * ifa) * ioa;
1056
- } else if (mode == 2) {
1057
- // copy only differences, otherwise zero
1058
- var fa = sb[si + 3],
1059
- fr = sb[si],
1060
- fg = sb[si + 1],
1061
- fb = sb[si + 2];
1062
- var ba = tb[ti + 3],
1063
- br = tb[ti],
1064
- bg = tb[ti + 1],
1065
- bb = tb[ti + 2];
1066
-
1067
- if (fa == ba && fr == br && fg == bg && fb == bb) {
1068
- tb[ti] = 0;
1069
- tb[ti + 1] = 0;
1070
- tb[ti + 2] = 0;
1071
- tb[ti + 3] = 0;
1095
+ for (var y = 0; y < h; y++) {
1096
+ for (var x = 0; x < w; x++) {
1097
+ if (xoff >= 0 && yoff >= 0) {
1098
+ si = y * sw + x << 2;
1099
+ ti = (yoff + y) * tw + xoff + x << 2;
1072
1100
  } else {
1073
- tb[ti] = fr;
1074
- tb[ti + 1] = fg;
1075
- tb[ti + 2] = fb;
1076
- tb[ti + 3] = fa;
1101
+ si = (-yoff + y) * sw - xoff + x << 2;
1102
+ ti = y * tw + x << 2;
1103
+ }
1104
+
1105
+ if (mode == 0) {
1106
+ tb[ti] = sb[si];
1107
+ tb[ti + 1] = sb[si + 1];
1108
+ tb[ti + 2] = sb[si + 2];
1109
+ tb[ti + 3] = sb[si + 3];
1110
+ } else if (mode == 1) {
1111
+ var fa = sb[si + 3] * (1 / 255),
1112
+ fr = sb[si] * fa,
1113
+ fg = sb[si + 1] * fa,
1114
+ fb = sb[si + 2] * fa;
1115
+ var ba = tb[ti + 3] * (1 / 255),
1116
+ br = tb[ti] * ba,
1117
+ bg = tb[ti + 1] * ba,
1118
+ bb = tb[ti + 2] * ba;
1119
+ var ifa = 1 - fa,
1120
+ oa = fa + ba * ifa,
1121
+ ioa = oa == 0 ? 0 : 1 / oa;
1122
+ tb[ti + 3] = 255 * oa;
1123
+ tb[ti + 0] = (fr + br * ifa) * ioa;
1124
+ tb[ti + 1] = (fg + bg * ifa) * ioa;
1125
+ tb[ti + 2] = (fb + bb * ifa) * ioa;
1126
+ } else if (mode == 2) {
1127
+ // copy only differences, otherwise zero
1128
+ var fa = sb[si + 3],
1129
+ fr = sb[si],
1130
+ fg = sb[si + 1],
1131
+ fb = sb[si + 2];
1132
+ var ba = tb[ti + 3],
1133
+ br = tb[ti],
1134
+ bg = tb[ti + 1],
1135
+ bb = tb[ti + 2];
1136
+
1137
+ if (fa == ba && fr == br && fg == bg && fb == bb) {
1138
+ tb[ti] = 0;
1139
+ tb[ti + 1] = 0;
1140
+ tb[ti + 2] = 0;
1141
+ tb[ti + 3] = 0;
1142
+ } else {
1143
+ tb[ti] = fr;
1144
+ tb[ti + 1] = fg;
1145
+ tb[ti + 2] = fb;
1146
+ tb[ti + 3] = fa;
1147
+ }
1148
+ } else if (mode == 3) {
1149
+ // check if can be blended
1150
+ var fa = sb[si + 3],
1151
+ fr = sb[si],
1152
+ fg = sb[si + 1],
1153
+ fb = sb[si + 2];
1154
+ var ba = tb[ti + 3],
1155
+ br = tb[ti],
1156
+ bg = tb[ti + 1],
1157
+ bb = tb[ti + 2];
1158
+ if (fa == ba && fr == br && fg == bg && fb == bb) continue; //if(fa!=255 && ba!=0) return false;
1159
+
1160
+ if (fa < 220 && ba > 20) return false;
1077
1161
  }
1078
- } else if (mode == 3) {
1079
- // check if can be blended
1080
- var fa = sb[si + 3],
1081
- fr = sb[si],
1082
- fg = sb[si + 1],
1083
- fb = sb[si + 2];
1084
- var ba = tb[ti + 3],
1085
- br = tb[ti],
1086
- bg = tb[ti + 1],
1087
- bb = tb[ti + 2];
1088
- if (fa == ba && fr == br && fg == bg && fb == bb) continue; //if(fa!=255 && ba!=0) return false;
1089
-
1090
- if (fa < 220 && ba > 20) return false;
1091
1162
  }
1092
1163
  }
1093
1164
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=t(require("potpack"));exports.ProgressiveLightMap=class{constructor(t,i=1024){this.renderer=t,this.res=i,this.lightMapContainers=[],this.compiled=!1,this.scene=new e.Scene,this.scene.background=null,this.tinyTarget=new e.WebGLRenderTarget(1,1),this.buffer1Active=!1,this.firstUpdate=!0,this.warned=!1;const r=/(Android|iPad|iPhone|iPod)/g.test(navigator.userAgent)?alfFloatType:e.FloatType;this.progressiveLightMap1=new e.WebGLRenderTarget(this.res,this.res,{type:r}),this.progressiveLightMap2=new e.WebGLRenderTarget(this.res,this.res,{type:r}),this.uvMat=new e.MeshPhongMaterial,this.uvMat.uniforms={},this.uvMat.onBeforeCompile=e=>{e.vertexShader="#define USE_LIGHTMAP\n"+e.vertexShader.slice(0,-1)+"\tgl_Position = vec4((uv2 - 0.5) * 2.0, 1.0, 1.0); }";const t=e.fragmentShader.indexOf("void main() {");e.fragmentShader="varying vec2 vUv2;\n"+e.fragmentShader.slice(0,t)+"\tuniform sampler2D previousShadowMap;\n\tuniform float averagingWindow;\n"+e.fragmentShader.slice(t-1,-1)+"\nvec3 texelOld = texture2D(previousShadowMap, vUv2).rgb;\n\t\t\t\tgl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, 1.0/averagingWindow);\n\t\t\t}",e.uniforms.previousShadowMap={value:this.progressiveLightMap1.texture},e.uniforms.averagingWindow={value:100},this.uvMat.uniforms=e.uniforms,this.uvMat.userData.shader=e,this.compiled=!0}}addObjectsToLightMap(e){this.uv_boxes=[];const t=3/this.res;for(let i=0;i<e.length;i++){const r=e[i];r.isLight?this.scene.attach(r):r.geometry.hasAttribute("uv")?(null==this.blurringPlane&&this._initializeBlurPlane(this.res,this.progressiveLightMap1),r.material.lightMap=this.progressiveLightMap2.texture,r.material.dithering=!0,r.castShadow=!0,r.receiveShadow=!0,r.renderOrder=1e3+i,this.uv_boxes.push({w:1+2*t,h:1+2*t,index:i}),this.lightMapContainers.push({basicMat:r.material,object:r}),this.compiled=!1):console.warn("All lightmap objects need UVs!")}const r=i.default(this.uv_boxes);this.uv_boxes.forEach((i=>{const s=e[i.index].geometry.getAttribute("uv").clone();for(let e=0;e<s.array.length;e+=s.itemSize)s.array[e]=(s.array[e]+i.x+t)/r.w,s.array[e+1]=(s.array[e+1]+i.y+t)/r.h;e[i.index].geometry.setAttribute("uv2",s),e[i.index].geometry.getAttribute("uv2").needsUpdate=!0}))}update(e,t=100,i=!0){if(null==this.blurringPlane)return;const r=this.renderer.getRenderTarget();this.blurringPlane.visible=i;for(let e=0;e<this.lightMapContainers.length;e++)this.lightMapContainers[e].object.oldScene=this.lightMapContainers[e].object.parent,this.scene.attach(this.lightMapContainers[e].object);this.firstUpdate&&(this.renderer.setRenderTarget(this.tinyTarget),this.renderer.render(this.scene,e),this.firstUpdate=!1);for(let e=0;e<this.lightMapContainers.length;e++)this.uvMat.uniforms.averagingWindow={value:t},this.lightMapContainers[e].object.material=this.uvMat,this.lightMapContainers[e].object.oldFrustumCulled=this.lightMapContainers[e].object.frustumCulled,this.lightMapContainers[e].object.frustumCulled=!1;const s=this.buffer1Active?this.progressiveLightMap1:this.progressiveLightMap2,a=this.buffer1Active?this.progressiveLightMap2:this.progressiveLightMap1;this.renderer.setRenderTarget(s),this.uvMat.uniforms.previousShadowMap={value:a.texture},this.blurringPlane.material.uniforms.previousShadowMap={value:a.texture},this.buffer1Active=!this.buffer1Active,this.renderer.render(this.scene,e);for(let e=0;e<this.lightMapContainers.length;e++)this.lightMapContainers[e].object.frustumCulled=this.lightMapContainers[e].object.oldFrustumCulled,this.lightMapContainers[e].object.material=this.lightMapContainers[e].basicMat,this.lightMapContainers[e].object.oldScene.attach(this.lightMapContainers[e].object);this.renderer.setRenderTarget(r)}showDebugLightmap(t,i){0!=this.lightMapContainers.length?(null==this.labelMesh&&(this.labelMaterial=new e.MeshBasicMaterial({map:this.progressiveLightMap1.texture,side:e.DoubleSide}),this.labelPlane=new e.PlaneGeometry(100,100),this.labelMesh=new e.Mesh(this.labelPlane,this.labelMaterial),this.labelMesh.position.y=250,this.lightMapContainers[0].object.parent.add(this.labelMesh)),null!=i&&this.labelMesh.position.copy(i),this.labelMesh.visible=t):this.warned||(console.warn("Call this after adding the objects!"),this.warned=!0)}_initializeBlurPlane(t,i=null){const r=new e.MeshBasicMaterial;r.uniforms={previousShadowMap:{value:null},pixelOffset:{value:1/t},polygonOffset:!0,polygonOffsetFactor:-1,polygonOffsetUnits:3},r.onBeforeCompile=e=>{e.vertexShader="#define USE_UV\n"+e.vertexShader.slice(0,-1)+"\tgl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }";const s=e.fragmentShader.indexOf("void main() {");e.fragmentShader="#define USE_UV\n"+e.fragmentShader.slice(0,s)+"\tuniform sampler2D previousShadowMap;\n\tuniform float pixelOffset;\n"+e.fragmentShader.slice(s-1,-1)+"\tgl_FragColor.rgb = (\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, 0.0 )).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( 0.0 , pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( 0.0 , -pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, 0.0 )).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, -pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, -pixelOffset)).rgb)/8.0;\n\t\t}",e.uniforms.previousShadowMap={value:i.texture},e.uniforms.pixelOffset={value:.5/t},r.uniforms=e.uniforms,r.userData.shader=e,this.compiled=!0},this.blurringPlane=new e.Mesh(new e.PlaneBufferGeometry(1,1),r),this.blurringPlane.name="Blurring Plane",this.blurringPlane.frustumCulled=!1,this.blurringPlane.renderOrder=0,this.blurringPlane.material.depthWrite=!1,this.scene.add(this.blurringPlane)}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=t(require("potpack"));exports.ProgressiveLightMap=class{constructor(t,i=1024){this.renderer=t,this.res=i,this.lightMapContainers=[],this.compiled=!1,this.scene=new e.Scene,this.scene.background=null,this.tinyTarget=new e.WebGLRenderTarget(1,1),this.buffer1Active=!1,this.firstUpdate=!0,this.warned=!1;const r=/(Android|iPad|iPhone|iPod)/g.test(navigator.userAgent)?alfFloatType:e.FloatType;this.progressiveLightMap1=new e.WebGLRenderTarget(this.res,this.res,{type:r}),this.progressiveLightMap2=new e.WebGLRenderTarget(this.res,this.res,{type:r}),this.uvMat=new e.MeshPhongMaterial,this.uvMat.uniforms={},this.uvMat.onBeforeCompile=e=>{e.vertexShader="#define USE_LIGHTMAP\n"+e.vertexShader.slice(0,-1)+"\tgl_Position = vec4((uv2 - 0.5) * 2.0, 1.0, 1.0); }";const t=e.fragmentShader.indexOf("void main() {");e.fragmentShader="varying vec2 vUv2;\n"+e.fragmentShader.slice(0,t)+"\tuniform sampler2D previousShadowMap;\n\tuniform float averagingWindow;\n"+e.fragmentShader.slice(t-1,-1)+"\nvec3 texelOld = texture2D(previousShadowMap, vUv2).rgb;\n\t\t\t\tgl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, 1.0/averagingWindow);\n\t\t\t}",e.uniforms.previousShadowMap={value:this.progressiveLightMap1.texture},e.uniforms.averagingWindow={value:100},this.uvMat.uniforms=e.uniforms,this.uvMat.userData.shader=e,this.compiled=!0}}addObjectsToLightMap(e){this.uv_boxes=[];const t=3/this.res;for(let i=0;i<e.length;i++){const r=e[i];r.isLight?this.scene.attach(r):r.geometry.hasAttribute("uv")?(null==this.blurringPlane&&this._initializeBlurPlane(this.res,this.progressiveLightMap1),r.material.lightMap=this.progressiveLightMap2.texture,r.material.dithering=!0,r.castShadow=!0,r.receiveShadow=!0,r.renderOrder=1e3+i,this.uv_boxes.push({w:1+2*t,h:1+2*t,index:i}),this.lightMapContainers.push({basicMat:r.material,object:r}),this.compiled=!1):console.warn("All lightmap objects need UVs!")}const r=i.default(this.uv_boxes);this.uv_boxes.forEach((i=>{const s=e[i.index].geometry.getAttribute("uv").clone();for(let e=0;e<s.array.length;e+=s.itemSize)s.array[e]=(s.array[e]+i.x+t)/r.w,s.array[e+1]=(s.array[e+1]+i.y+t)/r.h;e[i.index].geometry.setAttribute("uv2",s),e[i.index].geometry.getAttribute("uv2").needsUpdate=!0}))}update(e,t=100,i=!0){if(null==this.blurringPlane)return;const r=this.renderer.getRenderTarget();this.blurringPlane.visible=i;for(let e=0;e<this.lightMapContainers.length;e++)this.lightMapContainers[e].object.oldScene=this.lightMapContainers[e].object.parent,this.scene.attach(this.lightMapContainers[e].object);this.firstUpdate&&(this.renderer.setRenderTarget(this.tinyTarget),this.renderer.render(this.scene,e),this.firstUpdate=!1);for(let e=0;e<this.lightMapContainers.length;e++)this.uvMat.uniforms.averagingWindow={value:t},this.lightMapContainers[e].object.material=this.uvMat,this.lightMapContainers[e].object.oldFrustumCulled=this.lightMapContainers[e].object.frustumCulled,this.lightMapContainers[e].object.frustumCulled=!1;const s=this.buffer1Active?this.progressiveLightMap1:this.progressiveLightMap2,a=this.buffer1Active?this.progressiveLightMap2:this.progressiveLightMap1;this.renderer.setRenderTarget(s),this.uvMat.uniforms.previousShadowMap={value:a.texture},this.blurringPlane.material.uniforms.previousShadowMap={value:a.texture},this.buffer1Active=!this.buffer1Active,this.renderer.render(this.scene,e);for(let e=0;e<this.lightMapContainers.length;e++)this.lightMapContainers[e].object.frustumCulled=this.lightMapContainers[e].object.oldFrustumCulled,this.lightMapContainers[e].object.material=this.lightMapContainers[e].basicMat,this.lightMapContainers[e].object.oldScene.attach(this.lightMapContainers[e].object);this.renderer.setRenderTarget(r)}showDebugLightmap(t,i){0!=this.lightMapContainers.length?(null==this.labelMesh&&(this.labelMaterial=new e.MeshBasicMaterial({map:this.progressiveLightMap1.texture,side:e.DoubleSide}),this.labelPlane=new e.PlaneGeometry(100,100),this.labelMesh=new e.Mesh(this.labelPlane,this.labelMaterial),this.labelMesh.position.y=250,this.lightMapContainers[0].object.parent.add(this.labelMesh)),null!=i&&this.labelMesh.position.copy(i),this.labelMesh.visible=t):this.warned||(console.warn("Call this after adding the objects!"),this.warned=!0)}_initializeBlurPlane(t,i=null){const r=new e.MeshBasicMaterial;r.uniforms={previousShadowMap:{value:null},pixelOffset:{value:1/t},polygonOffset:!0,polygonOffsetFactor:-1,polygonOffsetUnits:3},r.onBeforeCompile=e=>{e.vertexShader="#define USE_UV\n"+e.vertexShader.slice(0,-1)+"\tgl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }";const s=e.fragmentShader.indexOf("void main() {");e.fragmentShader="#define USE_UV\n"+e.fragmentShader.slice(0,s)+"\tuniform sampler2D previousShadowMap;\n\tuniform float pixelOffset;\n"+e.fragmentShader.slice(s-1,-1)+"\tgl_FragColor.rgb = (\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, 0.0 )).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( 0.0 , pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( 0.0 , -pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, 0.0 )).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, -pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, -pixelOffset)).rgb)/8.0;\n\t\t}",e.uniforms.previousShadowMap={value:i.texture},e.uniforms.pixelOffset={value:.5/t},r.uniforms=e.uniforms,r.userData.shader=e,this.compiled=!0},this.blurringPlane=new e.Mesh(new e.PlaneGeometry(1,1),r),this.blurringPlane.name="Blurring Plane",this.blurringPlane.frustumCulled=!1,this.blurringPlane.renderOrder=0,this.blurringPlane.material.depthWrite=!1,this.scene.add(this.blurringPlane)}};
@@ -1,4 +1,4 @@
1
- import { Scene, WebGLRenderTarget, FloatType, MeshPhongMaterial, MeshBasicMaterial, DoubleSide, PlaneGeometry, Mesh, PlaneBufferGeometry } from 'three';
1
+ import { Scene, WebGLRenderTarget, FloatType, MeshPhongMaterial, MeshBasicMaterial, DoubleSide, PlaneGeometry, Mesh } from 'three';
2
2
  import potpack from 'potpack';
3
3
 
4
4
  /**
@@ -272,7 +272,7 @@ class ProgressiveLightMap {
272
272
  this.compiled = true;
273
273
  };
274
274
 
275
- this.blurringPlane = new Mesh(new PlaneBufferGeometry(1, 1), blurMaterial);
275
+ this.blurringPlane = new Mesh(new PlaneGeometry(1, 1), blurMaterial);
276
276
  this.blurringPlane.name = 'Blurring Plane';
277
277
  this.blurringPlane.frustumCulled = false;
278
278
  this.blurringPlane.renderOrder = 0;