@woosh/meep-engine 2.140.0 → 2.142.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.
Files changed (74) hide show
  1. package/package.json +1 -1
  2. package/src/core/geom/3d/quaternion/quat3_multiply.d.ts +21 -0
  3. package/src/core/geom/3d/quaternion/quat3_multiply.d.ts.map +1 -0
  4. package/src/core/geom/3d/quaternion/quat3_multiply.js +25 -0
  5. package/src/engine/control/first-person/prototype_first_person_controller.js +5 -0
  6. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.d.ts.map +1 -1
  7. package/src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js +67 -42
  8. package/src/engine/graphics/render/buffer/simple-fx/ao/SAOShader.d.ts +12 -22
  9. package/src/engine/graphics/render/buffer/simple-fx/ao/SAOShader.d.ts.map +1 -1
  10. package/src/engine/graphics/render/buffer/simple-fx/ao/SAOShader.js +340 -186
  11. package/src/engine/graphics/render/buffer/simple-fx/ao/SAOUpscaleShader.d.ts +44 -0
  12. package/src/engine/graphics/render/buffer/simple-fx/ao/SAOUpscaleShader.d.ts.map +1 -0
  13. package/src/engine/graphics/render/buffer/simple-fx/ao/SAOUpscaleShader.js +151 -0
  14. package/src/engine/graphics/render/buffer/simple-fx/ao/generateHilbertNoiseTexture.d.ts +14 -0
  15. package/src/engine/graphics/render/buffer/simple-fx/ao/generateHilbertNoiseTexture.d.ts.map +1 -0
  16. package/src/engine/graphics/render/buffer/simple-fx/ao/generateHilbertNoiseTexture.js +78 -0
  17. package/src/engine/physics/PLAN.md +705 -461
  18. package/src/engine/physics/REVIEW_002.md +151 -0
  19. package/src/engine/physics/REVIEW_003.md +166 -0
  20. package/src/engine/physics/constraint/DofMode.d.ts +28 -0
  21. package/src/engine/physics/constraint/DofMode.d.ts.map +1 -0
  22. package/src/engine/physics/constraint/DofMode.js +35 -0
  23. package/src/engine/physics/constraint/solve_constraints.d.ts +38 -0
  24. package/src/engine/physics/constraint/solve_constraints.d.ts.map +1 -0
  25. package/src/engine/physics/constraint/solve_constraints.js +673 -0
  26. package/src/engine/physics/ecs/Joint.d.ts +294 -0
  27. package/src/engine/physics/ecs/Joint.d.ts.map +1 -0
  28. package/src/engine/physics/ecs/Joint.js +402 -0
  29. package/src/engine/physics/ecs/PhysicsSystem.d.ts +52 -0
  30. package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
  31. package/src/engine/physics/ecs/PhysicsSystem.js +126 -4
  32. package/src/engine/physics/fluid/FluidField.d.ts +14 -10
  33. package/src/engine/physics/fluid/FluidField.d.ts.map +1 -1
  34. package/src/engine/physics/fluid/FluidField.js +14 -10
  35. package/src/engine/physics/fluid/FluidSimulator.d.ts.map +1 -1
  36. package/src/engine/physics/fluid/FluidSimulator.js +0 -1
  37. package/src/engine/physics/fluid/solver/v3_grid_compute_solid_neighbour_mask.d.ts +17 -10
  38. package/src/engine/physics/fluid/solver/v3_grid_compute_solid_neighbour_mask.d.ts.map +1 -1
  39. package/src/engine/physics/fluid/solver/v3_grid_compute_solid_neighbour_mask.js +18 -11
  40. package/src/engine/physics/fluid/solver/v3_grid_solve_pressure.d.ts +13 -10
  41. package/src/engine/physics/fluid/solver/v3_grid_solve_pressure.d.ts.map +1 -1
  42. package/src/engine/physics/fluid/solver/v3_grid_solve_pressure.js +18 -13
  43. package/src/engine/physics/fluid/solver/v3_grid_solve_pressure_pcg.d.ts +4 -3
  44. package/src/engine/physics/fluid/solver/v3_grid_solve_pressure_pcg.d.ts.map +1 -1
  45. package/src/engine/physics/fluid/solver/v3_grid_solve_pressure_pcg.js +15 -11
  46. package/src/engine/physics/fluid/solver/v3_grid_subtract_pressure_gradient.d.ts +24 -22
  47. package/src/engine/physics/fluid/solver/v3_grid_subtract_pressure_gradient.d.ts.map +1 -1
  48. package/src/engine/physics/fluid/solver/v3_grid_subtract_pressure_gradient.js +26 -22
  49. package/src/engine/physics/island/IslandBuilder.d.ts +4 -1
  50. package/src/engine/physics/island/IslandBuilder.d.ts.map +1 -1
  51. package/src/engine/physics/island/IslandBuilder.js +33 -16
  52. package/src/engine/physics/narrowphase/box_box_manifold.d.ts.map +1 -1
  53. package/src/engine/physics/narrowphase/box_box_manifold.js +27 -1
  54. package/src/engine/physics/narrowphase/narrowphase_step.d.ts +33 -0
  55. package/src/engine/physics/narrowphase/narrowphase_step.d.ts.map +1 -1
  56. package/src/engine/physics/narrowphase/narrowphase_step.js +75 -0
  57. package/src/engine/physics/narrowphase/ray_shapes.d.ts +66 -0
  58. package/src/engine/physics/narrowphase/ray_shapes.d.ts.map +1 -0
  59. package/src/engine/physics/narrowphase/ray_shapes.js +187 -0
  60. package/src/engine/physics/narrowphase/refine_ray_concave.d.ts +16 -0
  61. package/src/engine/physics/narrowphase/refine_ray_concave.d.ts.map +1 -0
  62. package/src/engine/physics/narrowphase/refine_ray_concave.js +145 -0
  63. package/src/engine/physics/narrowphase/refine_ray_hit.d.ts +39 -0
  64. package/src/engine/physics/narrowphase/refine_ray_hit.d.ts.map +1 -0
  65. package/src/engine/physics/narrowphase/refine_ray_hit.js +78 -0
  66. package/src/engine/physics/queries/raycast.d.ts +11 -9
  67. package/src/engine/physics/queries/raycast.d.ts.map +1 -1
  68. package/src/engine/physics/queries/raycast.js +108 -159
  69. package/src/engine/physics/solver/solve_contacts.d.ts +28 -0
  70. package/src/engine/physics/solver/solve_contacts.d.ts.map +1 -1
  71. package/src/engine/physics/solver/solve_contacts.js +169 -1
  72. package/src/engine/physics/vehicle/RaycastVehicle.d.ts +114 -0
  73. package/src/engine/physics/vehicle/RaycastVehicle.d.ts.map +1 -0
  74. package/src/engine/physics/vehicle/RaycastVehicle.js +333 -0
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "description": "Pure JavaScript game engine. Fully featured and production ready.",
7
7
  "type": "module",
8
8
  "author": "Alexander Goldring",
9
- "version": "2.140.0",
9
+ "version": "2.142.0",
10
10
  "main": "build/meep.module.js",
11
11
  "module": "build/meep.module.js",
12
12
  "exports": {
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Hamilton product of two unit quaternions: `out = a ⊗ b`.
3
+ *
4
+ * Composition order is the usual rotation convention: the product `a ⊗ b`
5
+ * applies `b` first, then `a` (i.e. `(a⊗b)·v·(a⊗b)* == a·(b·v·b*)·a*`). So to
6
+ * rotate a vector by `q1` and then by `q2`, compose `q2 ⊗ q1`.
7
+ *
8
+ * Sign convention: `(x, y, z, w)` — `w` last, matching {@link Quaternion} and
9
+ * the rest of the `core/geom/3d/quaternion/` family.
10
+ *
11
+ * `out` may alias neither `a` nor `b` component-wise (the result is computed
12
+ * from all eight inputs before any write, so passing the same backing array
13
+ * via different offsets is safe only if the ranges don't overlap).
14
+ *
15
+ * @param {number[]|Float32Array|Float64Array} out
16
+ * @param {number} out_offset offset into `out`; receives 4 floats (x, y, z, w)
17
+ * @param {number} ax @param {number} ay @param {number} az @param {number} aw
18
+ * @param {number} bx @param {number} by @param {number} bz @param {number} bw
19
+ */
20
+ export function quat3_multiply(out: number[] | Float32Array | Float64Array, out_offset: number, ax: number, ay: number, az: number, aw: number, bx: number, by: number, bz: number, bw: number): void;
21
+ //# sourceMappingURL=quat3_multiply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quat3_multiply.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/quaternion/quat3_multiply.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,oCALW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,cAClC,MAAM,MACN,MAAM,MAAa,MAAM,MAAa,MAAM,MAAa,MAAM,MAC/D,MAAM,MAAa,MAAM,MAAa,MAAM,MAAa,MAAM,QAOzE"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Hamilton product of two unit quaternions: `out = a ⊗ b`.
3
+ *
4
+ * Composition order is the usual rotation convention: the product `a ⊗ b`
5
+ * applies `b` first, then `a` (i.e. `(a⊗b)·v·(a⊗b)* == a·(b·v·b*)·a*`). So to
6
+ * rotate a vector by `q1` and then by `q2`, compose `q2 ⊗ q1`.
7
+ *
8
+ * Sign convention: `(x, y, z, w)` — `w` last, matching {@link Quaternion} and
9
+ * the rest of the `core/geom/3d/quaternion/` family.
10
+ *
11
+ * `out` may alias neither `a` nor `b` component-wise (the result is computed
12
+ * from all eight inputs before any write, so passing the same backing array
13
+ * via different offsets is safe only if the ranges don't overlap).
14
+ *
15
+ * @param {number[]|Float32Array|Float64Array} out
16
+ * @param {number} out_offset offset into `out`; receives 4 floats (x, y, z, w)
17
+ * @param {number} ax @param {number} ay @param {number} az @param {number} aw
18
+ * @param {number} bx @param {number} by @param {number} bz @param {number} bw
19
+ */
20
+ export function quat3_multiply(out, out_offset, ax, ay, az, aw, bx, by, bz, bw) {
21
+ out[out_offset] = aw * bx + ax * bw + ay * bz - az * by;
22
+ out[out_offset + 1] = aw * by - ax * bz + ay * bw + az * bx;
23
+ out[out_offset + 2] = aw * bz + ax * by - ay * bx + az * bw;
24
+ out[out_offset + 3] = aw * bw - ax * bx - ay * by - az * bz;
25
+ }
@@ -16,6 +16,9 @@ import { CameraSystem } from "../../graphics/ecs/camera/CameraSystem.js";
16
16
  import { ShadedGeometry } from "../../graphics/ecs/mesh-v2/ShadedGeometry.js";
17
17
  import { ShadedGeometryFlags } from "../../graphics/ecs/mesh-v2/ShadedGeometryFlags.js";
18
18
  import { ShadedGeometrySystem } from "../../graphics/ecs/mesh-v2/ShadedGeometrySystem.js";
19
+ import {
20
+ AmbientOcclusionPostProcessEffect
21
+ } from "../../graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js";
19
22
  import InputController from "../../input/ecs/components/InputController.js";
20
23
  import InputControllerSystem from "../../input/ecs/systems/InputControllerSystem.js";
21
24
  import { BodyKind } from "../../physics/ecs/BodyKind.js";
@@ -97,6 +100,8 @@ async function main(engine) {
97
100
  sunShadowDistance: 30,
98
101
  });
99
102
 
103
+ engine.plugins.acquire(AmbientOcclusionPostProcessEffect);
104
+
100
105
  if (em.getSystem(CameraSystem) === null) {
101
106
  await em.addSystem(new CameraSystem(engine.graphics));
102
107
  }
@@ -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,oCAcC;IAED,wBA2CC;IAED,yBAgBC;CAEJ;6BAtX4B,uCAAuC;+BAD7D,OAAO;6CAAP,OAAO"}
1
+ {"version":3,"file":"AmbientOcclusionPostProcessEffect.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/buffer/simple-fx/ao/AmbientOcclusionPostProcessEffect.js"],"names":[],"mappings":"AAoBA;IAIQ,WAA0C;IAI1C,2BAQE;IAyBF;;;;OAIG;IACH,sBAA0B;IAE1B;;;;OAIG;IACH,2BAA6B;IAG7B;;;;OAIG;IACH,yBAA4B;IAE5B;;;;OAIG;IACH,wBAA2B;IAE3B,8CAUE;IAEF;;;;OAIG;IACH,uBAAwB;IAExB;;;;;OAKG;IACH,2BASE;IAKF;;;;OAIG;IACH,0BAAwD;IAK5D;;;OAGG;IACH,2BAEC;IAED;;;OAGG;IACH,wBAEC;IAED;;;;OAIG;IACH,oBAeC;IAED,iBAEC;IAED,2BAkCC;IAED,uBASC;IAED;;;OAGG;IACH,iBAwBC;IAED;;;OAGG;IACH,4BAFW,OAAO,QAiCjB;IAED;;;;OAIG;IACH,gCASC;IAED;;;;OAIG;IACH,mCAUC;IAGD,oCAcC;IAED,wBA2CC;IAED,yBAiBC;CAEJ;6BA/Y4B,uCAAuC;+BAD7D,OAAO;6CAAP,OAAO"}
@@ -14,8 +14,9 @@ import { CompositLayer } from "../../../../composit/CompositLayer.js";
14
14
  import { StandardFrameBuffers } from "../../../../StandardFrameBuffers.js";
15
15
  import { BlendingType } from "../../../../texture/sampler/BlendingType.js";
16
16
  import { renderScreenSpace } from "../../../utils/renderScreenSpace.js";
17
- import { DepthLimitedBlur } from "../DepthLimitedBlur.js";
17
+ import { generateHilbertNoiseTexture } from "./generateHilbertNoiseTexture.js";
18
18
  import { SAOShader } from "./SAOShader.js";
19
+ import { SAOUpscaleShader } from "./SAOUpscaleShader.js";
19
20
 
20
21
  export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
21
22
  constructor() {
@@ -37,11 +38,12 @@ export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
37
38
 
38
39
  // AO parameters
39
40
  const uniforms = this.__material.uniforms;
40
- uniforms.bias.value = 0.5;
41
- uniforms.intensity.value = 2;
42
41
 
43
- uniforms.kernelRadius.value = 30;
44
- uniforms.minResolution.value = 0;
42
+ // artistic darkening control; 1.0 == physically plausible
43
+ uniforms.intensity.value = 1.0;
44
+
45
+ // sampling hemisphere radius (also the max occluder distance), in world units (scene dependent)
46
+ uniforms.kernelRadius.value = 0.5;
45
47
 
46
48
  this.__material.blending = NoBlending;
47
49
 
@@ -55,10 +57,7 @@ export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
55
57
  defines.PERSPECTIVE_CAMERA = 1;
56
58
 
57
59
  // More samples = better quality
58
- defines.NUM_SAMPLES = 13;
59
-
60
- // More rings = better quality
61
- defines.NUM_RINGS = 5;
60
+ defines.NUM_SAMPLES = 24;
62
61
 
63
62
  /**
64
63
  * Should normal buffer be used or not? Using normal buffer might be significantly more expensive, as this would require normal buffer to be built every frame. If there are other users of the buffer - this is not an issue
@@ -109,11 +108,33 @@ export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
109
108
  this.__used_buffers = [];
110
109
 
111
110
  /**
112
- *
113
- * @type {DepthLimitedBlur}
111
+ * Edge-aware upscale + denoise: a single non-separable pass that resolves the half-res AO
112
+ * into the full-res composit layer using plane-distance weights.
113
+ * @type {ShaderMaterial}
114
+ * @private
115
+ */
116
+ this.__upscale_material = new ShaderMaterial({
117
+ defines: Object.assign({}, SAOUpscaleShader.defines),
118
+ fragmentShader: SAOUpscaleShader.fragmentShader,
119
+ vertexShader: SAOUpscaleShader.vertexShader,
120
+ uniforms: UniformsUtils.clone(SAOUpscaleShader.uniforms),
121
+ glslVersion: GLSL3,
122
+ depthWrite: false,
123
+ depthTest: false,
124
+ blending: NoBlending
125
+ });
126
+ this.__upscale_material.extensions.derivatives = true;
127
+ // depth is stored unpacked, matching the AO material
128
+ this.__upscale_material.defines.DEPTH_PACKING = 0;
129
+
130
+ /**
131
+ * Hilbert-index permutation LUT, shared by the AO sampling and upscale dithers.
132
+ * @type {DataTexture}
114
133
  * @private
115
134
  */
116
- this.__blur = new DepthLimitedBlur({ format: RedFormat, clear_color: 0xFFFFFF });
135
+ this.__hilbert_texture = generateHilbertNoiseTexture(64);
136
+ this.__material.uniforms.tHilbert.value = this.__hilbert_texture;
137
+ this.__upscale_material.uniforms.tHilbert.value = this.__hilbert_texture;
117
138
  }
118
139
 
119
140
  /**
@@ -140,29 +161,18 @@ export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
140
161
  __setCamera(camera) {
141
162
  this.__render_camera = camera;
142
163
 
143
- const material = this.__material;
144
- const defines = material.defines;
145
-
146
- if (camera.isPerspectiveCamera === true && defines.PERSPECTIVE_CAMERA !== 1) {
147
- defines.PERSPECTIVE_CAMERA = 1;
164
+ const desired = camera.isPerspectiveCamera === true ? 1 : 0;
148
165
 
149
- // material has changed and will need to be re-compiled
150
- material.needsUpdate = true;
151
- } else if (camera.isPerspectiveCamera !== true && defines.PERSPECTIVE_CAMERA !== 0) {
152
- defines.PERSPECTIVE_CAMERA = 0;
166
+ // the AO and upscale materials both reconstruct view-Z, so both track the projection type
167
+ const materials = [this.__material, this.__upscale_material];
168
+ for (const material of materials) {
169
+ if (material.defines.PERSPECTIVE_CAMERA !== desired) {
170
+ material.defines.PERSPECTIVE_CAMERA = desired;
153
171
 
154
- // material has changed and will need to be re-compiled
155
- material.needsUpdate = true;
172
+ // material has changed and will need to be re-compiled
173
+ material.needsUpdate = true;
174
+ }
156
175
  }
157
-
158
- this.__blur.setRenderCamera(camera);
159
- }
160
-
161
- initialize(engine) {
162
-
163
- this.__blur.configureMaterials();
164
-
165
- super.initialize(engine);
166
176
  }
167
177
 
168
178
  finalize() {
@@ -192,6 +202,17 @@ export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
192
202
 
193
203
  // trigger uniform update
194
204
  material.uniformsNeedUpdate = true;
205
+
206
+ // upscale runs at full resolution (the composit layer), reading the half-res AO target
207
+ const upscale = this.__upscale_material;
208
+ const upscaleUniforms = upscale.uniforms;
209
+ const output = this.__composit_layer.renderTarget;
210
+
211
+ upscaleUniforms.size.value.set(output.width, output.height);
212
+ upscaleUniforms.cameraNear.value = near;
213
+ upscaleUniforms.cameraFar.value = far;
214
+
215
+ upscale.uniformsNeedUpdate = true;
195
216
  }
196
217
 
197
218
  __prepare_draw() {
@@ -219,17 +240,20 @@ export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
219
240
 
220
241
  const __old_state_rt = renderer.getRenderTarget();
221
242
 
222
- // do draw
243
+ // render AO at half resolution
223
244
  renderer.setRenderTarget(this.__render_target);
224
245
  renderer.clearColor();
225
246
 
226
247
  renderScreenSpace(renderer, this.__material);
227
248
 
228
- //restore rt
229
- renderer.setRenderTarget(__old_state_rt);
249
+ // edge-aware upscale + denoise into the full-res composit layer (single non-separable pass;
250
+ // the fullscreen draw writes every pixel, so no clear is required)
251
+ renderer.setRenderTarget(this.__composit_layer.renderTarget);
252
+
253
+ renderScreenSpace(renderer, this.__upscale_material);
230
254
 
231
- // do blur
232
- this.__blur.execute(renderer);
255
+ // restore rt
256
+ renderer.setRenderTarget(__old_state_rt);
233
257
  }
234
258
 
235
259
  /**
@@ -356,10 +380,10 @@ export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
356
380
 
357
381
  this.__update_render_target_size();
358
382
 
359
- // configure blur
360
- this.__blur.setDepthBuffer(depthTexture);
361
- this.__blur.setInput(this.__render_target);
362
- this.__blur.setOutput(this.__composit_layer.renderTarget);
383
+ // bind upscale inputs: half-res AO target + full-res depth
384
+ const upscaleUniforms = this.__upscale_material.uniforms;
385
+ upscaleUniforms.tAO.value = this.__render_target.texture;
386
+ upscaleUniforms.tDepth.value = depthTexture;
363
387
 
364
388
  return super.startup();
365
389
  }
@@ -376,7 +400,8 @@ export class AmbientOcclusionPostProcessEffect extends EnginePlugin {
376
400
  graphics.viewport.size.onChanged.add(this.__update_render_target_size, this);
377
401
 
378
402
  // release memory
379
- this.__blur.dispose();
403
+ this.__upscale_material.dispose();
404
+ this.__hilbert_texture.dispose();
380
405
  this.__render_target.dispose();
381
406
 
382
407
  return super.shutdown();
@@ -1,9 +1,7 @@
1
1
  export namespace SAOShader {
2
2
  namespace defines {
3
3
  let NUM_SAMPLES: number;
4
- let NUM_RINGS: number;
5
4
  let NORMAL_TEXTURE: number;
6
- let DIFFUSE_TEXTURE: number;
7
5
  let DEPTH_PACKING: number;
8
6
  let PERSPECTIVE_CAMERA: number;
9
7
  }
@@ -15,46 +13,38 @@ export namespace SAOShader {
15
13
  let value_1: any;
16
14
  export { value_1 as value };
17
15
  }
18
- namespace size {
19
- let value_2: Vector2;
16
+ namespace tHilbert {
17
+ let value_2: any;
20
18
  export { value_2 as value };
21
19
  }
22
- namespace cameraNear {
23
- let value_3: number;
20
+ namespace size {
21
+ let value_3: Vector2;
24
22
  export { value_3 as value };
25
23
  }
26
- namespace cameraFar {
24
+ namespace cameraNear {
27
25
  let value_4: number;
28
26
  export { value_4 as value };
29
27
  }
30
- namespace cameraProjectionMatrix {
31
- let value_5: Matrix4;
28
+ namespace cameraFar {
29
+ let value_5: number;
32
30
  export { value_5 as value };
33
31
  }
34
- namespace cameraInverseProjectionMatrix {
32
+ namespace cameraProjectionMatrix {
35
33
  let value_6: Matrix4;
36
34
  export { value_6 as value };
37
35
  }
38
- namespace intensity {
39
- let value_7: number;
36
+ namespace cameraInverseProjectionMatrix {
37
+ let value_7: Matrix4;
40
38
  export { value_7 as value };
41
39
  }
42
- namespace bias {
40
+ namespace intensity {
43
41
  let value_8: number;
44
42
  export { value_8 as value };
45
43
  }
46
- namespace minResolution {
44
+ namespace kernelRadius {
47
45
  let value_9: number;
48
46
  export { value_9 as value };
49
47
  }
50
- namespace kernelRadius {
51
- let value_10: number;
52
- export { value_10 as value };
53
- }
54
- namespace randomSeed {
55
- let value_11: number;
56
- export { value_11 as value };
57
- }
58
48
  }
59
49
  let vertexShader: string;
60
50
  let fragmentShader: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SAOShader.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/buffer/simple-fx/ao/SAOShader.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAAiC,OAAO;wBAAP,OAAO"}
1
+ {"version":3,"file":"SAOShader.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/buffer/simple-fx/ao/SAOShader.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAAiC,OAAO;wBAAP,OAAO"}