@woosh/meep-engine 2.138.5 → 2.138.7
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/package.json +1 -1
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayer.js +2 -2
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.js +6 -0
- package/src/engine/ecs/terrain/ecs/splat/SplatMapping.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/splat/SplatMapping.js +7 -0
- package/src/engine/graphics/composit/CompositLayer.d.ts.map +1 -1
- package/src/engine/graphics/composit/CompositLayer.js +7 -6
- package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.js +3 -2
- package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.js +3 -2
- package/src/engine/graphics/render/buffer/FrameBuffer.d.ts.map +1 -1
- package/src/engine/graphics/render/buffer/FrameBuffer.js +7 -3
- package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts.map +1 -1
- package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js +8 -7
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "Pure JavaScript game engine. Fully featured and production ready.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"author": "Alexander Goldring",
|
|
8
|
-
"version": "2.138.
|
|
8
|
+
"version": "2.138.7",
|
|
9
9
|
"main": "build/meep.module.js",
|
|
10
10
|
"module": "build/meep.module.js",
|
|
11
11
|
"exports": {
|
|
@@ -132,8 +132,8 @@ export class TerrainLayer {
|
|
|
132
132
|
const assetPromise = assetManager.promise(path, GameAssetType.Image);
|
|
133
133
|
|
|
134
134
|
return assetPromise
|
|
135
|
-
.then(
|
|
136
|
-
const image =
|
|
135
|
+
.then(asset => {
|
|
136
|
+
const image = asset.create();
|
|
137
137
|
|
|
138
138
|
const source_data = image.data;
|
|
139
139
|
const source_item_size = image.itemSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerrainLayers.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/terrain/ecs/layers/TerrainLayers.js"],"names":[],"mappings":"AA8EA;IAGQ;;;OAGG;IACH,QAFU,KAAK,YAAY,CAAC,CAEJ;IAExB;;;OAGG;IACH,YAFU,OAAO,CAEoD;IAMrE;;;OAGG;IACH,SAFU,kBAAkB,CAE8B;IAiB1D,2BAAsF;IAc1F;;;;;;MAKC;IAED;;;aAGC;IAED;;;;OAIG;IACH,gCAHW,MAAM,iBACN,MAAM,QAuChB;IAED;;;;OAIG;IACH,0DAyBC;IAED,sCAIC;IAED;;;;OAIG;IACH,WAHW,MAAM,GACL,YAAY,CAIvB;IAED;;;;OAIG;IACH,8DAFa,MAAM,CAqBlB;IAED;;;;OAIG;IACH,kCAHW,MAAM,GACJ,MAAM,CAMlB;IAED;;;OAGG;IACH,SAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,gBAHW,YAAY,GACV,MAAM,CAWlB;IAED;;;;OAIG;IACH,mBAHW,YAAY,GACX,OAAO,CAIlB;IAED;;;;;;OAMG;IACH,0CAgCC;IAED;;;OAGG;IACH,iCAFW,MAAM,QAgChB;IAED,gBAGC;IAED,cAEC;IAGD,
|
|
1
|
+
{"version":3,"file":"TerrainLayers.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/terrain/ecs/layers/TerrainLayers.js"],"names":[],"mappings":"AA8EA;IAGQ;;;OAGG;IACH,QAFU,KAAK,YAAY,CAAC,CAEJ;IAExB;;;OAGG;IACH,YAFU,OAAO,CAEoD;IAMrE;;;OAGG;IACH,SAFU,kBAAkB,CAE8B;IAiB1D,2BAAsF;IAc1F;;;;;;MAKC;IAED;;;aAGC;IAED;;;;OAIG;IACH,gCAHW,MAAM,iBACN,MAAM,QAuChB;IAED;;;;OAIG;IACH,0DAyBC;IAED,sCAIC;IAED;;;;OAIG;IACH,WAHW,MAAM,GACL,YAAY,CAIvB;IAED;;;;OAIG;IACH,8DAFa,MAAM,CAqBlB;IAED;;;;OAIG;IACH,kCAHW,MAAM,GACJ,MAAM,CAMlB;IAED;;;OAGG;IACH,SAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,gBAHW,YAAY,GACV,MAAM,CAWlB;IAED;;;;OAIG;IACH,mBAHW,YAAY,GACX,OAAO,CAIlB;IAED;;;;;;OAMG;IACH,0CAgCC;IAED;;;OAGG;IACH,iCAFW,MAAM,QAgChB;IAED,gBAGC;IAED,cAEC;IAGD,qBA4CC;CACJ;iBApagB,6CAA6C;6BAQjC,mBAAmB;oBAP5B,qCAAqC;mCALlD,OAAO;4BAAP,OAAO"}
|
|
@@ -404,6 +404,12 @@ export class TerrainLayers {
|
|
|
404
404
|
|
|
405
405
|
const layerCount = terrainLayers.length;
|
|
406
406
|
|
|
407
|
+
// glTexStorage3D requires all dims > 0; uploading a 0-depth array texture
|
|
408
|
+
// produces GL_INVALID_VALUE. Leave the texture at its prior valid state
|
|
409
|
+
// (1x1x1 white from the constructor) until at least one layer exists.
|
|
410
|
+
if (size_x === 0 || size_y === 0 || layerCount === 0) {
|
|
411
|
+
return;
|
|
412
|
+
}
|
|
407
413
|
|
|
408
414
|
if (image.width === size_x && image.height === size_y && image.depth === layerCount) {
|
|
409
415
|
//already the right size
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplatMapping.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/terrain/ecs/splat/SplatMapping.js"],"names":[],"mappings":"AAaA;;GAEG;AACH;IAEQ;;;OAGG;IACH,MAFU,OAAO,CAEY;IAE7B;;;OAGG;IACH,OAFU,MAAM,CAEF;IAOd;;;OAGG;IACH,eAFU,kBAAkB,CAEiE;IAO7F;;;;OAIG;IACH,iBAFU,WAAW,CAEoE;IAG7F;;;;;;;MAQC;IAED;;;;;;;aA6BC;IAED;;;;;OAKG;IACH,8BAJW,SAAS,SACT,MAAM,YACN,MAAM,QA0BhB;IAED;;;;;OAKG;IACH,gCAJW,SAAS,SACT,MAAM,YACN,MAAM,QA2BhB;IAED;;;;;;;OAOG;IACH,wBANW,UAAU,gBACV,MAAM,gBACN,MAAM,eACN,MAAM,gBACN,MAAM,QA2ChB;IAED;;;;;;;OAOG;IACH,4BANW,UAAU,WACV,MAAM,WACN,MAAM,SACN,MAAM,UACN,MAAM,QAuChB;IAED;;;;;;OAMG;IACH,gBALW,MAAM,KACN,MAAM,iBACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,6BAHW,MAAM,GACJ,SAAS,CAcrB;IAED;;OAEG;IACH,iDAEC;IAED;;;OAGG;IACH,mDAEC;IAED;;;OAGG;IACH,iCAEC;IAED;;;;OAIG;IACH,gCAHW,UAAU,QAoDpB;IAED,gBAGC;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,OAAO,CAuCnB;IAED;;;;OAIG;IACH,8BAHW,MAAM,SACN,MAAM,QAqBhB;IAED,uBAiBC;IAED;;;;;;OAMG;IACH,cALW,MAAM,UACN,MAAM,SACN,MAAM,cACN,OAAO,
|
|
1
|
+
{"version":3,"file":"SplatMapping.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/ecs/terrain/ecs/splat/SplatMapping.js"],"names":[],"mappings":"AAaA;;GAEG;AACH;IAEQ;;;OAGG;IACH,MAFU,OAAO,CAEY;IAE7B;;;OAGG;IACH,OAFU,MAAM,CAEF;IAOd;;;OAGG;IACH,eAFU,kBAAkB,CAEiE;IAO7F;;;;OAIG;IACH,iBAFU,WAAW,CAEoE;IAG7F;;;;;;;MAQC;IAED;;;;;;;aA6BC;IAED;;;;;OAKG;IACH,8BAJW,SAAS,SACT,MAAM,YACN,MAAM,QA0BhB;IAED;;;;;OAKG;IACH,gCAJW,SAAS,SACT,MAAM,YACN,MAAM,QA2BhB;IAED;;;;;;;OAOG;IACH,wBANW,UAAU,gBACV,MAAM,gBACN,MAAM,eACN,MAAM,gBACN,MAAM,QA2ChB;IAED;;;;;;;OAOG;IACH,4BANW,UAAU,WACV,MAAM,WACN,MAAM,SACN,MAAM,UACN,MAAM,QAuChB;IAED;;;;;;OAMG;IACH,gBALW,MAAM,KACN,MAAM,iBACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,6BAHW,MAAM,GACJ,SAAS,CAcrB;IAED;;OAEG;IACH,iDAEC;IAED;;;OAGG;IACH,mDAEC;IAED;;;OAGG;IACH,iCAEC;IAED;;;;OAIG;IACH,gCAHW,UAAU,QAoDpB;IAED,gBAGC;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,OAAO,CAuCnB;IAED;;;;OAIG;IACH,8BAHW,MAAM,SACN,MAAM,QAqBhB;IAED,uBAiBC;IAED;;;;;;OAMG;IACH,cALW,MAAM,UACN,MAAM,SACN,MAAM,cACN,OAAO,QA6DjB;CACJ;oBA5gBmB,qCAAqC;mCALiD,OAAO;4BAAP,OAAO;0BAUvF,mDAAmD"}
|
|
@@ -481,6 +481,13 @@ export class SplatMapping {
|
|
|
481
481
|
const weightTexture = this.weightTexture;
|
|
482
482
|
const weightImage = weightTexture.image;
|
|
483
483
|
|
|
484
|
+
// glTexStorage3D requires all dims > 0; uploading a 0-depth array texture
|
|
485
|
+
// produces GL_INVALID_VALUE. Track size/depth at the JS level (above) but
|
|
486
|
+
// leave the GPU texture at its prior valid state.
|
|
487
|
+
if (width <= 0 || height <= 0 || depth <= 0) {
|
|
488
|
+
return;
|
|
489
|
+
}
|
|
490
|
+
|
|
484
491
|
if (weightImage.width !== width || weightImage.height !== height || weightImage.depth !== depth) {
|
|
485
492
|
// drop old data
|
|
486
493
|
weightTexture.dispose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompositLayer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/composit/CompositLayer.js"],"names":[],"mappings":"AAsCA;IACI;;;;;OAKG;IACH,2DAJW,MAAM,iBAAiB,EAyDjC;IAhDG;;;OAGG;IACH,MAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,YAFU,YAAY,CAEI;IAC1B;;;OAGG;IACH,gCAAgC;IAEhC;;;OAGG;IACH,mBAFU,MAAM,CAE0B;IAE1C,6DAA2E;IAE3E;;;OAGG;IACH,OAFU,MAAM,CAEF;IAEd,cAAyB;IAEzB;;;OAGG;IACH,WAFU,OAAO,CAEI;IAErB;;;OAGG;IACH,SAFU,MAAM,CAEA;IAEhB;;MAEC;IAOL,0BAQC;IAZD,uBAEC;IAYD;;;OAGG;IACH,uBAIC;IAED;;;OAGG;IACH,oBAEC;IAED;;;OAGG;IACH,0BAMC;IAED;;;OAGG;IACH,uBAEC;IAED,eAKC;IAED,gBAKC;IAED;;;;OAIG;IACH,WAHW,MAAM,KACN,MAAM,QAKhB;IAED,+
|
|
1
|
+
{"version":3,"file":"CompositLayer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/composit/CompositLayer.js"],"names":[],"mappings":"AAsCA;IACI;;;;;OAKG;IACH,2DAJW,MAAM,iBAAiB,EAyDjC;IAhDG;;;OAGG;IACH,MAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,YAFU,YAAY,CAEI;IAC1B;;;OAGG;IACH,gCAAgC;IAEhC;;;OAGG;IACH,mBAFU,MAAM,CAE0B;IAE1C,6DAA2E;IAE3E;;;OAGG;IACH,OAFU,MAAM,CAEF;IAEd,cAAyB;IAEzB;;;OAGG;IACH,WAFU,OAAO,CAEI;IAErB;;;OAGG;IACH,SAFU,MAAM,CAEA;IAEhB;;MAEC;IAOL,0BAQC;IAZD,uBAEC;IAYD;;;OAGG;IACH,uBAIC;IAED;;;OAGG;IACH,oBAEC;IAED;;;OAGG;IACH,0BAMC;IAED;;;OAGG;IACH,uBAEC;IAED,eAKC;IAED,gBAKC;IAED;;;;OAIG;IACH,WAHW,MAAM,KACN,MAAM,QAKhB;IAED,+BAaC;IAED;;;OAGG;IACH,4BAFW,MAAM,QAShB;IAED;;;;OAIG;IACH,4CAKC;IAGD,gCAoCC;CACJ;6BA/O4B,oCAAoC;+BAN1D,OAAO;qBAAP,OAAO;oBAGM,+BAA+B;mBADhC,uCAAuC"}
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
RGBAFormat,
|
|
9
9
|
ShaderMaterial
|
|
10
10
|
} from "three";
|
|
11
|
-
import Vector2 from "../../../core/geom/Vector2.js";
|
|
12
11
|
import { assert } from "../../../core/assert.js";
|
|
13
|
-
import
|
|
12
|
+
import Signal from "../../../core/events/signal/Signal.js";
|
|
13
|
+
import Vector2 from "../../../core/geom/Vector2.js";
|
|
14
|
+
import { FULL_SCREEN_TRIANGLE_GEOMETRY } from "../geometry/FULL_SCREEN_TRIANGLE_GEOMETRY.js";
|
|
14
15
|
import { ScreenSpaceQuadShader } from "../shaders/ScreenSpaceQuadShader.js";
|
|
15
16
|
import { BlendingType } from "../texture/sampler/BlendingType.js";
|
|
16
|
-
import {
|
|
17
|
-
import Signal from "../../../core/events/signal/Signal.js";
|
|
17
|
+
import { blendingType2three } from "../texture/sampler/blendingType2Three.js";
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
*
|
|
@@ -181,8 +181,9 @@ export class CompositLayer {
|
|
|
181
181
|
|
|
182
182
|
const size = this.size;
|
|
183
183
|
|
|
184
|
-
|
|
185
|
-
const
|
|
184
|
+
// clamp to 1: a 0-sized attachment trips GL_INVALID_FRAMEBUFFER_OPERATION on clear/draw
|
|
185
|
+
const width = Math.max(1, size.x * scale);
|
|
186
|
+
const height = Math.max(1, size.y * scale);
|
|
186
187
|
|
|
187
188
|
this.renderTarget.setSize(width, height);
|
|
188
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutlineRenderPlugin.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.js"],"names":[],"mappings":"AAYA;IAIQ,WAA4B;IAE5B,4BAAuC;IAEvC,oBAA+B;IAE/B;;;;OAIG;IACH,4BAA+B;IAE/B;;;;OAIG;IACH,iCAA0D;IAE1D;;;;OAIG;IACH,kBAAmB;IAEnB;;;;OAIG;IACH,uBASC;IAGL;;;;OAIG;IACH,iDAFa,OAAO,CAMnB;IAED;;;;OAIG;IACH,oDAFa,OAAO,CAYnB;IAED;;;;;OAKG;IACH,
|
|
1
|
+
{"version":3,"file":"OutlineRenderPlugin.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/highlight/plugin/OutlineRenderPlugin.js"],"names":[],"mappings":"AAYA;IAIQ,WAA4B;IAE5B,4BAAuC;IAEvC,oBAA+B;IAE/B;;;;OAIG;IACH,4BAA+B;IAE/B;;;;OAIG;IACH,iCAA0D;IAE1D;;;;OAIG;IACH,kBAAmB;IAEnB;;;;OAIG;IACH,uBASC;IAGL;;;;OAIG;IACH,iDAFa,OAAO,CAMnB;IAED;;;;OAIG;IACH,oDAFa,OAAO,CAYnB;IAED;;;;;OAKG;IACH,4BAMC;IAED;;;OAGG;IACH,iBAgCC;IAED,yBAwBC;IAED,0BAWC;IAED,uCAaC;CACJ;6BA5L4B,oCAAoC;gCAKjC,gCAAgC;oCAV5B,OAAO"}
|
|
@@ -93,8 +93,9 @@ export class OutlineRenderPlugin extends EnginePlugin {
|
|
|
93
93
|
* @private
|
|
94
94
|
*/
|
|
95
95
|
__set_viewport_size(x, y) {
|
|
96
|
-
|
|
97
|
-
const
|
|
96
|
+
// clamp to 1: 0 cascades to several render targets whose clear() then trips GL_INVALID_FRAMEBUFFER_OPERATION
|
|
97
|
+
const width = max2(1, x);
|
|
98
|
+
const height = max2(1, y);
|
|
98
99
|
|
|
99
100
|
this.__renderer.resize(width, height);
|
|
100
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutlineRenderer.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.js"],"names":[],"mappings":"AA+JA;IAQQ;;;OAGG;IACH,wBAAoB;IAEpB;;;OAGG;IACH,eAAkB;IAElB;;;OAGG;IACH,OAFU,KAAK,CAEE;IAEjB;;;;OAIG;IACH,gCAGE;IAEF,gCAA6D;IAC7D,kBAA6B;IAE7B,kCAAoD;IACpD,kCAA6C;IAC7C,gCAAuC;IAEvC,qDAAsF;IAGtF,kBAA6B;IAK7B;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB,sCAMC;IASD,6CAOE;IAEF,6CAOE;IAEF,6CAOE;IAEF,uCAOE;IAEF,uCAOE;IASF;;;;OAIG;IACH,yBAAyB;IAEzB;;;;OAIG;IACH,2BAA2B;IAG3B;;;;OAIG;IACH,4BAA+B;IAGnC,2BAEC;IAED;;;OAGG;IACH,gDAEC;IAED;;;;OAIG;IACH,UAHW,MAAM,KACN,MAAM,
|
|
1
|
+
{"version":3,"file":"OutlineRenderer.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/highlight/renderer/OutlineRenderer.js"],"names":[],"mappings":"AA+JA;IAQQ;;;OAGG;IACH,wBAAoB;IAEpB;;;OAGG;IACH,eAAkB;IAElB;;;OAGG;IACH,OAFU,KAAK,CAEE;IAEjB;;;;OAIG;IACH,gCAGE;IAEF,gCAA6D;IAC7D,kBAA6B;IAE7B,kCAAoD;IACpD,kCAA6C;IAC7C,gCAAuC;IAEvC,qDAAsF;IAGtF,kBAA6B;IAK7B;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB,sCAMC;IASD,6CAOE;IAEF,6CAOE;IAEF,6CAOE;IAEF,uCAOE;IAEF,uCAOE;IASF;;;;OAIG;IACH,yBAAyB;IAEzB;;;;OAIG;IACH,2BAA2B;IAG3B;;;;OAIG;IACH,4BAA+B;IAGnC,2BAEC;IAED;;;OAGG;IACH,gDAEC;IAED;;;;OAIG;IACH,UAHW,MAAM,KACN,MAAM,QA2BhB;IAED;;;OAGG;IACH,kBAFW,oBAAkB,kBAAkB,QAI9C;IAED;;;;OAIG;IACH,sCAyBC;IAED;;;;OAIG;IACH,6BAmBC;IAED;;;OAGG;IACH,mDAiDC;IAhDG,sCAA4B;IAkDhC;;;OAGG;IACH,2BAFW,MAAM,QA0ChB;IAED;;;;;OAKG;IACH,8BAyBC;IAED,wBAEC;IAED;;OAEG;IACH,uBAIC;IAED;;;;;OAKG;IACH,0CAgBC;IAED,wBAEC;IAGD;;;OAGG;IACH,0CAqBC;IAED,0BAeC;CACJ;sBAxmBM,OAAO;mCAAP,OAAO;+BAAP,OAAO;oCAAP,OAAO;qBAAP,OAAO;4BAAP,OAAO;kCAAP,OAAO"}
|
|
@@ -333,8 +333,9 @@ export class OutlineRenderer {
|
|
|
333
333
|
|
|
334
334
|
const resolution_scale = this.__resolution_scale;
|
|
335
335
|
|
|
336
|
-
|
|
337
|
-
const
|
|
336
|
+
// clamp to 1: floor(x * scale) can collapse to 0 and trip GL_INVALID_FRAMEBUFFER_OPERATION
|
|
337
|
+
const scaled_res_x = Math.max(1, Math.floor(x * resolution_scale));
|
|
338
|
+
const scaled_res_y = Math.max(1, Math.floor(y * resolution_scale));
|
|
338
339
|
|
|
339
340
|
this.__renderTargetObjectId_t1.setSize(scaled_res_x, scaled_res_y);
|
|
340
341
|
this.__renderTargetObjectId_t2.setSize(scaled_res_x, scaled_res_y);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameBuffer.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/render/buffer/FrameBuffer.js"],"names":[],"mappings":"AAGA;IAyBI;;;;OAIG;IACH,gBAHW,MAAM,EAWhB;IArCD;;;OAGG;IACH,cAFU,iBAAiB,CAEP;IAEpB;;;OAGG;IACH,gBAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,cAFU,MAAM,EAAE,CAEA;IAElB;;;OAGG;IACH,MAFU,OAAO,CAEQ;IAQrB;;;OAGG;IACH,IAFU,MAAM,CAEJ;IAKhB;;;OAGG;IACH,mBAFa,iBAAiB,+BAA6B,CAI1D;IAED;;;OAGG;IACH,0CAEC;IAED;;;OAGG;IACH,wCAEC;IAED;;;;;;OAMG;IACH,4EAFW,WAAW,EAAE,QAYvB;IAED;;;;OAIG;IACH,WAHW,MAAM,KACN,MAAM,
|
|
1
|
+
{"version":3,"file":"FrameBuffer.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/render/buffer/FrameBuffer.js"],"names":[],"mappings":"AAGA;IAyBI;;;;OAIG;IACH,gBAHW,MAAM,EAWhB;IArCD;;;OAGG;IACH,cAFU,iBAAiB,CAEP;IAEpB;;;OAGG;IACH,gBAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,cAFU,MAAM,EAAE,CAEA;IAElB;;;OAGG;IACH,MAFU,OAAO,CAEQ;IAQrB;;;OAGG;IACH,IAFU,MAAM,CAEJ;IAKhB;;;OAGG;IACH,mBAFa,iBAAiB,+BAA6B,CAI1D;IAED;;;OAGG;IACH,0CAEC;IAED;;;OAGG;IACH,wCAEC;IAED;;;;;;OAMG;IACH,4EAFW,WAAW,EAAE,QAYvB;IAED;;;;OAIG;IACH,WAHW,MAAM,KACN,MAAM,QAgBhB;CACJ;kCA1GiC,OAAO;oBACrB,kCAAkC"}
|
|
@@ -92,13 +92,17 @@ export class FrameBuffer {
|
|
|
92
92
|
setSize(x, y) {
|
|
93
93
|
const size = this.size;
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
// clamp to 1: a 0-sized attachment trips GL_INVALID_FRAMEBUFFER_OPERATION on clear/draw
|
|
96
|
+
const w = Math.max(1, x);
|
|
97
|
+
const h = Math.max(1, y);
|
|
98
|
+
|
|
99
|
+
if (w === size.x && h === size.y) {
|
|
96
100
|
// nothing changed
|
|
97
101
|
return;
|
|
98
102
|
}
|
|
99
103
|
|
|
100
|
-
this.renderTarget.setSize(
|
|
101
|
-
size.set(
|
|
104
|
+
this.renderTarget.setSize(w, h);
|
|
105
|
+
size.set(w, h);
|
|
102
106
|
}
|
|
103
107
|
}
|
|
104
108
|
|
package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmbientOcclusionPostProcessEffect.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js"],"names":[],"mappings":"AAmBA;IAIQ,WAA0C;IAI1C,2BAQE;IA2BF;;;;OAIG;IACH,sBAA0B;IAE1B;;;;OAIG;IACH,2BAA6B;IAG7B;;;;OAIG;IACH,yBAA4B;IAE5B;;;;OAIG;IACH,wBAA2B;IAE3B,8CAUE;IAEF;;;;OAIG;IACH,uBAAwB;IAExB;;;;OAIG;IACH,eAAgF;IAGpF;;;OAGG;IACH,2BAEC;IAED;;;OAGG;IACH,wBAEC;IAED;;;;OAIG;IACH,oBAmBC;IAED,8BAKC;IAED,iBAEC;IAED,2BAuBC;IAED,uBASC;IAED;;;OAGG;IACH,iBAqBC;IAED;;;OAGG;IACH,4BAFW,OAAO,QAiCjB;IAED;;;;OAIG;IACH,gCASC;IAED;;;;OAIG;IACH,mCAUC;IAGD,
|
|
1
|
+
{"version":3,"file":"AmbientOcclusionPostProcessEffect.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js"],"names":[],"mappings":"AAmBA;IAIQ,WAA0C;IAI1C,2BAQE;IA2BF;;;;OAIG;IACH,sBAA0B;IAE1B;;;;OAIG;IACH,2BAA6B;IAG7B;;;;OAIG;IACH,yBAA4B;IAE5B;;;;OAIG;IACH,wBAA2B;IAE3B,8CAUE;IAEF;;;;OAIG;IACH,uBAAwB;IAExB;;;;OAIG;IACH,eAAgF;IAGpF;;;OAGG;IACH,2BAEC;IAED;;;OAGG;IACH,wBAEC;IAED;;;;OAIG;IACH,oBAmBC;IAED,8BAKC;IAED,iBAEC;IAED,2BAuBC;IAED,uBASC;IAED;;;OAGG;IACH,iBAqBC;IAED;;;OAGG;IACH,4BAFW,OAAO,QAiCjB;IAED;;;;OAIG;IACH,gCASC;IAED;;;;OAIG;IACH,mCAUC;IAGD,oCAcC;IAED,wBA2CC;IAED,yBAgBC;CAEJ;6BAtX4B,uCAAuC;+BAD7D,OAAO;6CAAP,OAAO"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { EnginePlugin } from "../../../../../plugin/EnginePlugin.js";
|
|
2
1
|
import {
|
|
3
2
|
GLSL3,
|
|
4
3
|
LinearFilter,
|
|
@@ -9,13 +8,14 @@ import {
|
|
|
9
8
|
UnsignedByteType,
|
|
10
9
|
WebGLMultisampleRenderTarget
|
|
11
10
|
} from "three";
|
|
12
|
-
import {
|
|
11
|
+
import { EnginePlugin } from "../../../../../plugin/EnginePlugin.js";
|
|
12
|
+
import { CompositingStages } from "../../../../composit/CompositingStages.js";
|
|
13
13
|
import { CompositLayer } from "../../../../composit/CompositLayer.js";
|
|
14
|
+
import { StandardFrameBuffers } from "../../../../StandardFrameBuffers.js";
|
|
14
15
|
import { BlendingType } from "../../../../texture/sampler/BlendingType.js";
|
|
15
|
-
import { DepthLimitedBlur } from "../DepthLimitedBlur.js";
|
|
16
16
|
import { renderScreenSpace } from "../../../utils/renderScreenSpace.js";
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
17
|
+
import { DepthLimitedBlur } from "../DepthLimitedBlur.js";
|
|
18
|
+
import { SAOShader } from "./SAOShader.js";
|
|
19
19
|
|
|
20
20
|
export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
|
|
21
21
|
constructor() {
|
|
@@ -309,8 +309,9 @@ export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
|
|
|
309
309
|
|
|
310
310
|
const size = graphics.viewport.size;
|
|
311
311
|
|
|
312
|
-
|
|
313
|
-
const
|
|
312
|
+
// clamp to 1: a 0-sized attachment trips GL_INVALID_FRAMEBUFFER_OPERATION on clear/draw
|
|
313
|
+
const target_resolution_x = Math.max(1, Math.ceil(size.x * this.__resolution_scale));
|
|
314
|
+
const target_resolution_y = Math.max(1, Math.ceil(size.y * this.__resolution_scale));
|
|
314
315
|
|
|
315
316
|
this.__render_target.setSize(
|
|
316
317
|
target_resolution_x,
|