@woosh/meep-engine 2.116.0 → 2.117.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.
- package/build/bundle-worker-terrain.js +1 -1
- package/build/meep.cjs +90 -65
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +90 -65
- package/package.json +1 -1
- package/src/core/collection/array/array_replace_all.d.ts +2 -1
- package/src/core/collection/array/array_replace_all.d.ts.map +1 -1
- package/src/core/collection/array/array_replace_all.js +3 -0
- package/src/core/collection/list/List.d.ts.map +1 -1
- package/src/core/collection/list/List.js +4 -7
- package/src/core/collection/set/ArraySet.d.ts.map +1 -1
- package/src/core/collection/set/ArraySet.js +11 -1
- package/src/core/math/physics/brdf/brdf_burley.d.ts.map +1 -1
- package/src/core/math/physics/brdf/brdf_burley.js +3 -14
- package/src/core/math/physics/bsdf/bsdf_schlick.js +1 -1
- package/src/core/math/physics/pdf/pdf_normal.d.ts +8 -0
- package/src/core/math/physics/pdf/pdf_normal.d.ts.map +1 -0
- package/src/core/math/physics/pdf/pdf_normal.js +11 -0
- package/src/core/math/physics/reflectivity_to_ior.d.ts.map +1 -1
- package/src/core/math/physics/reflectivity_to_ior.js +3 -1
- package/src/core/primitives/strings/computeStringHash.d.ts +9 -1
- package/src/core/primitives/strings/computeStringHash.d.ts.map +1 -1
- package/src/core/primitives/strings/computeStringHash.js +10 -5
- package/src/engine/development/performance/MetricCollection.d.ts +1 -1
- package/src/engine/development/performance/MetricCollection.js +2 -2
- package/src/engine/development/performance/monitor/MetricCollectionConsoleMonitor.d.ts +10 -0
- package/src/engine/development/performance/monitor/MetricCollectionConsoleMonitor.d.ts.map +1 -0
- package/src/engine/development/performance/monitor/MetricCollectionConsoleMonitor.js +23 -0
- package/src/engine/graphics/render/forward_plus/model/AbstractLight.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/model/AbstractLight.js +3 -3
- package/src/engine/graphics/render/forward_plus/model/DirectionalLight.d.ts +6 -6
- package/src/engine/graphics/render/forward_plus/model/DirectionalLight.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/model/DirectionalLight.js +26 -27
- package/src/engine/graphics/render/forward_plus/model/PointLight.d.ts +4 -4
- package/src/engine/graphics/render/forward_plus/model/PointLight.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/model/PointLight.js +31 -33
- package/src/engine/graphics/render/forward_plus/model/SpotLight.d.ts +14 -14
- package/src/engine/graphics/render/forward_plus/model/SpotLight.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/model/SpotLight.js +46 -47
- package/src/engine/graphics/render/visibility/hiz/query/QueryShader.d.ts.map +1 -1
- package/src/engine/graphics/render/visibility/hiz/query/QueryShader.js +0 -4
- package/src/engine/graphics/sh3/gi/material/common.glsl +3 -2
- package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/build_probes_for_scene.js +6 -3
- package/src/engine/graphics/sh3/prototypeSH3Probe.js +16 -12
- package/src/engine/graphics/shaders/DenoiseShader.d.ts.map +1 -1
- package/src/engine/graphics/shaders/DenoiseShader.js +3 -12
- package/src/engine/input/ecs/components/InputBinding.d.ts.map +1 -1
- package/src/engine/input/ecs/components/InputBinding.js +3 -2
- package/src/engine/input/ecs/components/InputController.d.ts.map +1 -1
- package/src/engine/input/ecs/components/InputController.js +18 -1
- package/src/engine/input/ecs/controllers/KeyboardCameraController.js +9 -9
- package/src/engine/physics/fluid/prototype.js +7 -12
package/build/meep.module.js
CHANGED
|
@@ -50988,9 +50988,11 @@ class Vector4 {
|
|
|
50988
50988
|
/**
|
|
50989
50989
|
*
|
|
50990
50990
|
* @param {string|null|undefined} string
|
|
50991
|
+
* @param {number} [start]
|
|
50992
|
+
* @param {number} [length] how many characters to hash, defaults to full string length
|
|
50991
50993
|
* @returns {number}
|
|
50992
50994
|
*/
|
|
50993
|
-
function computeStringHash(string) {
|
|
50995
|
+
function computeStringHash(string, start, length) {
|
|
50994
50996
|
if (string === null) {
|
|
50995
50997
|
return 0;
|
|
50996
50998
|
}
|
|
@@ -50999,11 +51001,14 @@ function computeStringHash(string) {
|
|
|
50999
51001
|
return 1;
|
|
51000
51002
|
}
|
|
51001
51003
|
|
|
51002
|
-
|
|
51004
|
+
let _start = start ?? 0;
|
|
51005
|
+
let _length = length ?? string.length - _start;
|
|
51003
51006
|
|
|
51004
|
-
let hash =
|
|
51007
|
+
let hash = _length;
|
|
51005
51008
|
|
|
51006
|
-
|
|
51009
|
+
const end = _start + _length;
|
|
51010
|
+
|
|
51011
|
+
for (let i = _start; i < end; i++) {
|
|
51007
51012
|
const code_point = string.charCodeAt(i);
|
|
51008
51013
|
|
|
51009
51014
|
/*
|
|
@@ -59530,6 +59535,26 @@ const AmbientOcclusionShader = function () {
|
|
|
59530
59535
|
}
|
|
59531
59536
|
};
|
|
59532
59537
|
|
|
59538
|
+
/**
|
|
59539
|
+
*
|
|
59540
|
+
* @param {number} sigma distance from mean
|
|
59541
|
+
* @param {number} v Variance
|
|
59542
|
+
* @returns {number}
|
|
59543
|
+
*/
|
|
59544
|
+
function gaussian$1(sigma, v) {
|
|
59545
|
+
return Math.exp(-(v * v) / (2 * sigma * sigma));
|
|
59546
|
+
}
|
|
59547
|
+
|
|
59548
|
+
/**
|
|
59549
|
+
* Normal Probability Distribution Function
|
|
59550
|
+
* @param {number} x
|
|
59551
|
+
* @param {number} sigma
|
|
59552
|
+
* @return {number}
|
|
59553
|
+
*/
|
|
59554
|
+
function pdf_normal(x, sigma) {
|
|
59555
|
+
return 0.39894 * gaussian$1(sigma, x) / sigma;
|
|
59556
|
+
}
|
|
59557
|
+
|
|
59533
59558
|
const KERNEL_SIZE = 15;
|
|
59534
59559
|
|
|
59535
59560
|
const fragment$1 = `
|
|
@@ -59589,16 +59614,6 @@ void main(void) {
|
|
|
59589
59614
|
}
|
|
59590
59615
|
`;
|
|
59591
59616
|
|
|
59592
|
-
/**
|
|
59593
|
-
* Normal Probability Distribution Function
|
|
59594
|
-
* @param {number} x
|
|
59595
|
-
* @param {number} sigma
|
|
59596
|
-
* @return {number}
|
|
59597
|
-
*/
|
|
59598
|
-
function normpdf(x, sigma) {
|
|
59599
|
-
return 0.39894 * Math.exp(-0.5 * x * x / (sigma * sigma)) / sigma;
|
|
59600
|
-
}
|
|
59601
|
-
|
|
59602
59617
|
/**
|
|
59603
59618
|
*
|
|
59604
59619
|
* @param {number} sigma
|
|
@@ -59607,13 +59622,13 @@ function normpdf(x, sigma) {
|
|
|
59607
59622
|
*/
|
|
59608
59623
|
function DenoiseShader(sigma = 10, filterSmoothness = 0.2) {
|
|
59609
59624
|
// compute zNorm
|
|
59610
|
-
const zNorm = 1 /
|
|
59625
|
+
const zNorm = 1 / pdf_normal(0, filterSmoothness);
|
|
59611
59626
|
|
|
59612
59627
|
// build kernel
|
|
59613
59628
|
const kernel = new Float32Array(KERNEL_SIZE);
|
|
59614
59629
|
const kSize = Math.floor((KERNEL_SIZE - 1) / 2);
|
|
59615
59630
|
for (let i = 0; i <= kSize; i++) {
|
|
59616
|
-
const v =
|
|
59631
|
+
const v = pdf_normal(i, sigma);
|
|
59617
59632
|
|
|
59618
59633
|
kernel[kSize + i] = v;
|
|
59619
59634
|
kernel[kSize - i] = v;
|
|
@@ -61501,8 +61516,7 @@ class List {
|
|
|
61501
61516
|
data = []
|
|
61502
61517
|
|
|
61503
61518
|
/**
|
|
61504
|
-
* @param {[]} [array]
|
|
61505
|
-
* @constructor
|
|
61519
|
+
* @param {T[]} [array]
|
|
61506
61520
|
*/
|
|
61507
61521
|
constructor(array) {
|
|
61508
61522
|
|
|
@@ -61744,12 +61758,10 @@ class List {
|
|
|
61744
61758
|
* @param {Array.<T>} elements
|
|
61745
61759
|
*/
|
|
61746
61760
|
addAllUnique(elements) {
|
|
61747
|
-
const
|
|
61748
|
-
|
|
61749
|
-
const length = data.length;
|
|
61761
|
+
const length = elements.length;
|
|
61750
61762
|
|
|
61751
61763
|
for (let i = 0; i < length; i++) {
|
|
61752
|
-
this.addUnique(
|
|
61764
|
+
this.addUnique(elements[i]);
|
|
61753
61765
|
}
|
|
61754
61766
|
}
|
|
61755
61767
|
|
|
@@ -61859,7 +61871,7 @@ class List {
|
|
|
61859
61871
|
/**
|
|
61860
61872
|
*
|
|
61861
61873
|
* @param {function(a:T, b:T):number} [compare_function]
|
|
61862
|
-
* @returns {
|
|
61874
|
+
* @returns {this}
|
|
61863
61875
|
*/
|
|
61864
61876
|
sort(compare_function) {
|
|
61865
61877
|
Array.prototype.sort.call(this.data, compare_function);
|
|
@@ -87653,7 +87665,7 @@ class MetricCollection {
|
|
|
87653
87665
|
/**
|
|
87654
87666
|
*
|
|
87655
87667
|
* @param {string} name
|
|
87656
|
-
* @param {number} buffer_size
|
|
87668
|
+
* @param {number} [buffer_size]
|
|
87657
87669
|
* @returns {AbstractMetric}
|
|
87658
87670
|
*/
|
|
87659
87671
|
create({ name, buffer_size = 1000 }) {
|
|
@@ -105503,7 +105515,7 @@ class InputBinding {
|
|
|
105503
105515
|
class InputController {
|
|
105504
105516
|
/**
|
|
105505
105517
|
*
|
|
105506
|
-
* @param {Array} bindings
|
|
105518
|
+
* @param {Array} [bindings]
|
|
105507
105519
|
* @constructor
|
|
105508
105520
|
*/
|
|
105509
105521
|
constructor(bindings = []) {
|
|
@@ -105519,6 +105531,21 @@ class InputController {
|
|
|
105519
105531
|
};
|
|
105520
105532
|
}
|
|
105521
105533
|
|
|
105534
|
+
/**
|
|
105535
|
+
*
|
|
105536
|
+
* @param {string} path
|
|
105537
|
+
* @param {function} action
|
|
105538
|
+
* @returns {InputBinding}
|
|
105539
|
+
*/
|
|
105540
|
+
bind(path, action) {
|
|
105541
|
+
|
|
105542
|
+
const binding = new InputBinding({ path, listener: action });
|
|
105543
|
+
|
|
105544
|
+
this.mapping.add(binding);
|
|
105545
|
+
|
|
105546
|
+
return binding;
|
|
105547
|
+
}
|
|
105548
|
+
|
|
105522
105549
|
/**
|
|
105523
105550
|
*
|
|
105524
105551
|
* @param {Array} bindings
|
|
@@ -110485,9 +110512,9 @@ class LightRenderMetadata {
|
|
|
110485
110512
|
let id_counter = 0;
|
|
110486
110513
|
|
|
110487
110514
|
class AbstractLight {
|
|
110488
|
-
|
|
110489
|
-
|
|
110490
|
-
|
|
110515
|
+
|
|
110516
|
+
id = id_counter++;
|
|
110517
|
+
|
|
110491
110518
|
|
|
110492
110519
|
toString() {
|
|
110493
110520
|
return `Light#${this.id}`;
|
|
@@ -112680,33 +112707,31 @@ class SystemEntityContext {
|
|
|
112680
112707
|
}
|
|
112681
112708
|
|
|
112682
112709
|
class PointLight extends AbstractLight {
|
|
112683
|
-
constructor() {
|
|
112684
|
-
super();
|
|
112685
112710
|
|
|
112686
|
-
|
|
112687
|
-
|
|
112688
|
-
|
|
112689
|
-
|
|
112690
|
-
|
|
112711
|
+
/**
|
|
112712
|
+
* @readonly
|
|
112713
|
+
* @type {Vector3}
|
|
112714
|
+
*/
|
|
112715
|
+
position = new Vector3$1();
|
|
112691
112716
|
|
|
112692
|
-
|
|
112693
|
-
|
|
112694
|
-
|
|
112695
|
-
|
|
112696
|
-
|
|
112717
|
+
/**
|
|
112718
|
+
* @readonly
|
|
112719
|
+
* @type {Vector1}
|
|
112720
|
+
*/
|
|
112721
|
+
radius = new Vector1(1);
|
|
112697
112722
|
|
|
112698
|
-
|
|
112699
|
-
|
|
112700
|
-
|
|
112701
|
-
|
|
112702
|
-
|
|
112723
|
+
/**
|
|
112724
|
+
* @readonly
|
|
112725
|
+
* @type {Color}
|
|
112726
|
+
*/
|
|
112727
|
+
color = new Color(1, 1, 1);
|
|
112728
|
+
|
|
112729
|
+
/**
|
|
112730
|
+
* @readonly
|
|
112731
|
+
* @type {Vector1}
|
|
112732
|
+
*/
|
|
112733
|
+
intensity = new Vector1(1);
|
|
112703
112734
|
|
|
112704
|
-
/**
|
|
112705
|
-
*
|
|
112706
|
-
* @type {Vector1}
|
|
112707
|
-
*/
|
|
112708
|
-
this.intensity = new Vector1(1);
|
|
112709
|
-
}
|
|
112710
112735
|
|
|
112711
112736
|
getCenter(result) {
|
|
112712
112737
|
this.position.writeToArray(result, 0);
|
|
@@ -112721,12 +112746,12 @@ class PointLight extends AbstractLight {
|
|
|
112721
112746
|
const center_z = p.z;
|
|
112722
112747
|
|
|
112723
112748
|
result[0] = center_x - r;
|
|
112724
|
-
|
|
112725
|
-
|
|
112749
|
+
result[1] = center_y - r;
|
|
112750
|
+
result[2] = center_z - r;
|
|
112726
112751
|
|
|
112727
|
-
|
|
112728
|
-
|
|
112729
|
-
|
|
112752
|
+
result[3] = center_x + r;
|
|
112753
|
+
result[4] = center_y + r;
|
|
112754
|
+
result[5] = center_z + r;
|
|
112730
112755
|
}
|
|
112731
112756
|
|
|
112732
112757
|
onDimensionChanged(listener, context) {
|
|
@@ -114992,19 +115017,19 @@ class KeyboardCameraController {
|
|
|
114992
115017
|
function registerToggle(keys, object, propertyName) {
|
|
114993
115018
|
keys.forEach((keyName) => {
|
|
114994
115019
|
|
|
114995
|
-
inputController.
|
|
114996
|
-
|
|
114997
|
-
|
|
115020
|
+
inputController.bind(
|
|
115021
|
+
"keyboard/keys/" + keyName + "/down",
|
|
115022
|
+
() => {
|
|
114998
115023
|
object[propertyName] = true;
|
|
114999
115024
|
|
|
115000
115025
|
//send interaction event
|
|
115001
115026
|
ecd.sendEvent(cameraController.entity, 'user-input');
|
|
115002
115027
|
}
|
|
115003
|
-
|
|
115004
|
-
inputController.
|
|
115005
|
-
|
|
115006
|
-
|
|
115007
|
-
|
|
115028
|
+
);
|
|
115029
|
+
inputController.bind(
|
|
115030
|
+
"keyboard/keys/" + keyName + "/up",
|
|
115031
|
+
() => object[propertyName] = false
|
|
115032
|
+
);
|
|
115008
115033
|
});
|
|
115009
115034
|
}
|
|
115010
115035
|
|
|
@@ -115036,7 +115061,7 @@ class KeyboardCameraController {
|
|
|
115036
115061
|
return;
|
|
115037
115062
|
}
|
|
115038
115063
|
|
|
115039
|
-
|
|
115064
|
+
const displacement = cameraPanSpeed.clone().multiplyScalar(keyboardPanSpeed * timeDelta);
|
|
115040
115065
|
|
|
115041
115066
|
const camera_transform = ecd.getComponent(cameraController.entity, Transform);
|
|
115042
115067
|
|
package/package.json
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* @param {T[]} array
|
|
4
4
|
* @param {T} victim
|
|
5
5
|
* @param {T} replacement
|
|
6
|
+
* @returns {T[]} input array after replacements
|
|
6
7
|
*/
|
|
7
|
-
export function array_replace_all<T>(array: T[], victim: T, replacement: T):
|
|
8
|
+
export function array_replace_all<T>(array: T[], victim: T, replacement: T): T[];
|
|
8
9
|
//# sourceMappingURL=array_replace_all.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array_replace_all.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/array_replace_all.js"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"array_replace_all.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/array_replace_all.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,iFAYC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* @param {T[]} array
|
|
4
4
|
* @param {T} victim
|
|
5
5
|
* @param {T} replacement
|
|
6
|
+
* @returns {T[]} input array after replacements
|
|
6
7
|
*/
|
|
7
8
|
export function array_replace_all(array, victim, replacement) {
|
|
8
9
|
|
|
@@ -14,4 +15,6 @@ export function array_replace_all(array, victim, replacement) {
|
|
|
14
15
|
array[i] = replacement;
|
|
15
16
|
}
|
|
16
17
|
}
|
|
18
|
+
|
|
19
|
+
return array;
|
|
17
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":";AAaA;;;;GAIG;AACH;IAuBI
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":"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"}
|
|
@@ -40,8 +40,7 @@ class List {
|
|
|
40
40
|
data = []
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
|
-
* @param {[]} [array]
|
|
44
|
-
* @constructor
|
|
43
|
+
* @param {T[]} [array]
|
|
45
44
|
*/
|
|
46
45
|
constructor(array) {
|
|
47
46
|
|
|
@@ -291,12 +290,10 @@ class List {
|
|
|
291
290
|
* @param {Array.<T>} elements
|
|
292
291
|
*/
|
|
293
292
|
addAllUnique(elements) {
|
|
294
|
-
const
|
|
295
|
-
|
|
296
|
-
const length = data.length;
|
|
293
|
+
const length = elements.length;
|
|
297
294
|
|
|
298
295
|
for (let i = 0; i < length; i++) {
|
|
299
|
-
this.addUnique(
|
|
296
|
+
this.addUnique(elements[i]);
|
|
300
297
|
}
|
|
301
298
|
}
|
|
302
299
|
|
|
@@ -414,7 +411,7 @@ class List {
|
|
|
414
411
|
/**
|
|
415
412
|
*
|
|
416
413
|
* @param {function(a:T, b:T):number} [compare_function]
|
|
417
|
-
* @returns {
|
|
414
|
+
* @returns {this}
|
|
418
415
|
*/
|
|
419
416
|
sort(compare_function) {
|
|
420
417
|
Array.prototype.sort.call(this.data, compare_function);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArraySet.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/set/ArraySet.js"],"names":[],"mappings":";AAEA;;;GAGG;AACH;
|
|
1
|
+
{"version":3,"file":"ArraySet.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/set/ArraySet.js"],"names":[],"mappings":";AAEA;;;GAGG;AACH;IAyBI;;;;;;OAMG;IACH,yBAIC;IAnCD;;OAEG;IACH;;;MAGE;IAEF;;;OAGG;IACH,aAAU;IAEV,eAAW;IAEX;;;OAGG;IACH,mBAEC;IAeD;;;OAGG;IACH,yBAEC;IAED;;;OAGG;IACH,oBAWC;IAED;;;OAGG;IACH,uBAWC;IAED;;;;;OAKG;IACH,wBAIC;IAED;;;OAGG;IACH,WAFa,OAAO,CAInB;IAED;;OAEG;IACH,cAIC;IAED;;;OAGG;IACH,iBAFW,QAAS,QAQnB;IAED;;;OAGG;IACH,qBAFW,QAAS,QAuBnB;IAED;;;;OAIG;IACH,2CAIC;IAED;;;OAGG;IACH,WAFa,GAAG,CAIf;CACJ;mBA5KkB,+BAA+B"}
|
|
@@ -21,6 +21,14 @@ class ArraySet {
|
|
|
21
21
|
|
|
22
22
|
length = 0;
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @returns {number}
|
|
27
|
+
*/
|
|
28
|
+
get size(){
|
|
29
|
+
return this.length;
|
|
30
|
+
}
|
|
31
|
+
|
|
24
32
|
/**
|
|
25
33
|
*
|
|
26
34
|
* @param {Array.<T>} [array=[]]
|
|
@@ -110,7 +118,9 @@ class ArraySet {
|
|
|
110
118
|
* @param {Array.<T>} elements
|
|
111
119
|
*/
|
|
112
120
|
addAll(elements) {
|
|
113
|
-
|
|
121
|
+
const count = elements.length;
|
|
122
|
+
|
|
123
|
+
for (let i = 0; i < count; i++) {
|
|
114
124
|
this.add(elements[i]);
|
|
115
125
|
}
|
|
116
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brdf_burley.d.ts","sourceRoot":"","sources":["../../../../../../src/core/math/physics/brdf/brdf_burley.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"brdf_burley.d.ts","sourceRoot":"","sources":["../../../../../../src/core/math/physics/brdf/brdf_burley.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AACH,iCANW,MAAM,OACN,MAAM,OACN,MAAM,aACN,MAAM,GACJ,MAAM,CASlB"}
|
|
@@ -1,17 +1,6 @@
|
|
|
1
1
|
import { PI_RECIPROCAL } from "../../PI_RECIPROCAL.js";
|
|
2
|
-
import {
|
|
2
|
+
import { bsdf_schlick } from "../bsdf/bsdf_schlick.js";
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
* @param {number} u
|
|
7
|
-
* @param {number} f0
|
|
8
|
-
* @param {number} f90
|
|
9
|
-
* @return {number}
|
|
10
|
-
*/
|
|
11
|
-
function F_Schlick(u, f0, f90) {
|
|
12
|
-
|
|
13
|
-
return f0 + (f90 - f0) * fresnel_Schlick(u);
|
|
14
|
-
}
|
|
15
4
|
|
|
16
5
|
/**
|
|
17
6
|
* @see https://google.github.io/filament/Filament.md.html#listing_diffusebrdf
|
|
@@ -30,8 +19,8 @@ function F_Schlick(u, f0, f90) {
|
|
|
30
19
|
export function brdf_burley(NoV, NoL, LoH, roughness) {
|
|
31
20
|
const f90 = 0.5 + 2.0 * roughness * LoH * LoH;
|
|
32
21
|
|
|
33
|
-
const lightScatter =
|
|
34
|
-
const viewScatter =
|
|
22
|
+
const lightScatter = bsdf_schlick(1.0, f90, NoL);
|
|
23
|
+
const viewScatter = bsdf_schlick(1.0, f90, NoV);
|
|
35
24
|
|
|
36
25
|
return lightScatter * viewScatter * PI_RECIPROCAL;
|
|
37
26
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdf_normal.d.ts","sourceRoot":"","sources":["../../../../../../src/core/math/physics/pdf/pdf_normal.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,8BAJW,MAAM,SACN,MAAM,GACL,MAAM,CAIjB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { gaussian } from "../../gaussian.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Normal Probability Distribution Function
|
|
5
|
+
* @param {number} x
|
|
6
|
+
* @param {number} sigma
|
|
7
|
+
* @return {number}
|
|
8
|
+
*/
|
|
9
|
+
export function pdf_normal(x, sigma) {
|
|
10
|
+
return 0.39894 * gaussian(sigma, x) / sigma;
|
|
11
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflectivity_to_ior.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/physics/reflectivity_to_ior.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,kDAHW,MAAM,GACL,MAAM,
|
|
1
|
+
{"version":3,"file":"reflectivity_to_ior.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/physics/reflectivity_to_ior.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,kDAHW,MAAM,GACL,MAAM,CAMjB"}
|
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {string|null|undefined} string
|
|
4
|
+
* @param {number} [start]
|
|
5
|
+
* @param {number} [length] how many characters to hash, defaults to full string length
|
|
6
|
+
* @returns {number}
|
|
7
|
+
*/
|
|
8
|
+
export function computeStringHash(string: string | null | undefined, start?: number, length?: number): number;
|
|
9
|
+
//# sourceMappingURL=computeStringHash.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeStringHash.d.ts","sourceRoot":"","sources":["../../../../../src/core/primitives/strings/computeStringHash.js"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"computeStringHash.d.ts","sourceRoot":"","sources":["../../../../../src/core/primitives/strings/computeStringHash.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,0CALW,MAAM,GAAC,IAAI,GAAC,SAAS,UACrB,MAAM,WACN,MAAM,GACJ,MAAM,CAiClB"}
|
|
@@ -3,9 +3,11 @@ import { assert } from "../../assert.js";
|
|
|
3
3
|
/**
|
|
4
4
|
*
|
|
5
5
|
* @param {string|null|undefined} string
|
|
6
|
+
* @param {number} [start]
|
|
7
|
+
* @param {number} [length] how many characters to hash, defaults to full string length
|
|
6
8
|
* @returns {number}
|
|
7
9
|
*/
|
|
8
|
-
export function computeStringHash(string) {
|
|
10
|
+
export function computeStringHash(string, start, length) {
|
|
9
11
|
if (string === null) {
|
|
10
12
|
return 0;
|
|
11
13
|
}
|
|
@@ -14,13 +16,16 @@ export function computeStringHash(string) {
|
|
|
14
16
|
return 1;
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
assert.isString(string,'string');
|
|
19
|
+
assert.isString(string, 'string');
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
let _start = start ?? 0;
|
|
22
|
+
let _length = length ?? string.length - _start;
|
|
20
23
|
|
|
21
|
-
let hash =
|
|
24
|
+
let hash = _length;
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
const end = _start + _length;
|
|
27
|
+
|
|
28
|
+
for (let i = _start; i < end; i++) {
|
|
24
29
|
const code_point = string.charCodeAt(i);
|
|
25
30
|
|
|
26
31
|
/*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { RingBufferMetric } from "./RingBufferMetric.js";
|
|
2
1
|
import { assert } from "../../../core/assert.js";
|
|
2
|
+
import { RingBufferMetric } from "./RingBufferMetric.js";
|
|
3
3
|
|
|
4
4
|
export class MetricCollection {
|
|
5
5
|
constructor() {
|
|
@@ -27,7 +27,7 @@ export class MetricCollection {
|
|
|
27
27
|
/**
|
|
28
28
|
*
|
|
29
29
|
* @param {string} name
|
|
30
|
-
* @param {number} buffer_size
|
|
30
|
+
* @param {number} [buffer_size]
|
|
31
31
|
* @returns {AbstractMetric}
|
|
32
32
|
*/
|
|
33
33
|
create({ name, buffer_size = 1000 }) {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export class MetricCollectionConsoleMonitor {
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param {MetricCollection} metrics
|
|
5
|
+
* @returns {PeriodicConsolePrinter}
|
|
6
|
+
*/
|
|
7
|
+
static from(metrics: MetricCollection): PeriodicConsolePrinter;
|
|
8
|
+
}
|
|
9
|
+
import { PeriodicConsolePrinter } from "./PeriodicConsolePrinter.js";
|
|
10
|
+
//# sourceMappingURL=MetricCollectionConsoleMonitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetricCollectionConsoleMonitor.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/development/performance/monitor/MetricCollectionConsoleMonitor.js"],"names":[],"mappings":"AAGA;IAEI;;;;OAIG;IACH,wCAFa,sBAAsB,CAYlC;CAEJ;uCArBsC,6BAA6B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { MetricStatistics } from "../MetricStatistics.js";
|
|
2
|
+
import { PeriodicConsolePrinter } from "./PeriodicConsolePrinter.js";
|
|
3
|
+
|
|
4
|
+
export class MetricCollectionConsoleMonitor{
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
* @param {MetricCollection} metrics
|
|
9
|
+
* @returns {PeriodicConsolePrinter}
|
|
10
|
+
*/
|
|
11
|
+
static from(metrics){
|
|
12
|
+
|
|
13
|
+
const metric_stats = new MetricStatistics();
|
|
14
|
+
|
|
15
|
+
return new PeriodicConsolePrinter(3, () => metrics.list().map(m => {
|
|
16
|
+
metrics.get(m).computeStats(metric_stats);
|
|
17
|
+
|
|
18
|
+
return `${m}: ${metric_stats}`;
|
|
19
|
+
}).join('\n'));
|
|
20
|
+
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractLight.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/forward_plus/model/AbstractLight.js"],"names":[],"mappings":"AAEA;
|
|
1
|
+
{"version":3,"file":"AbstractLight.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/forward_plus/model/AbstractLight.js"],"names":[],"mappings":"AAEA;IAEI,WAAkB;IAGlB,mBAEC;IAED;;;;;OAKG;IACH,gDAFa,IAAI,CAIhB;IAED;;;;;OAKG;IACH,iDAFa,IAAI,CAIhB;IAED;;;;OAIG;IACH,kBAHW,MAAM,EAAE,GACN,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,YAAY,GACrC,IAAI,CAIhB;IAED;;;;;OAKG;IACH,qBAJW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,WAClC,MAAM,GACJ,MAAM,CAIlB;IAED;;;;OAIG;IACH,eAHW,aAAa,GACX,MAAM,CAIlB;IAGL,aAA4B;CAF3B"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
export class DirectionalLight extends AbstractLight {
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* @readonly
|
|
4
4
|
* @type {Vector3}
|
|
5
5
|
*/
|
|
6
|
-
position: Vector3;
|
|
6
|
+
readonly position: Vector3;
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* @readonly
|
|
9
9
|
* @type {Vector3}
|
|
10
10
|
*/
|
|
11
|
-
direction: Vector3;
|
|
11
|
+
readonly direction: Vector3;
|
|
12
12
|
/**
|
|
13
13
|
* @readonly
|
|
14
14
|
* @type {Color}
|
|
15
15
|
*/
|
|
16
16
|
readonly color: Color;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* @readonly
|
|
19
19
|
* @type {Vector1}
|
|
20
20
|
*/
|
|
21
|
-
intensity: Vector1;
|
|
21
|
+
readonly intensity: Vector1;
|
|
22
22
|
/**
|
|
23
23
|
* @readonly
|
|
24
24
|
* @type {boolean}
|