x_ite 9.0.0 → 9.0.2

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 (47) hide show
  1. package/dist/assets/components/Annotation.js +13 -13
  2. package/dist/assets/components/Annotation.min.js +1 -1
  3. package/dist/assets/components/CADGeometry.js +14 -14
  4. package/dist/assets/components/CADGeometry.min.js +1 -1
  5. package/dist/assets/components/CubeMapTexturing.js +41 -46
  6. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  7. package/dist/assets/components/DIS.js +13 -13
  8. package/dist/assets/components/DIS.min.js +1 -1
  9. package/dist/assets/components/EventUtilities.js +9 -9
  10. package/dist/assets/components/EventUtilities.min.js +1 -1
  11. package/dist/assets/components/Geometry2D.js +19 -19
  12. package/dist/assets/components/Geometry2D.min.js +1 -1
  13. package/dist/assets/components/Geospatial.js +33 -33
  14. package/dist/assets/components/Geospatial.min.js +1 -1
  15. package/dist/assets/components/HAnim.js +23 -23
  16. package/dist/assets/components/HAnim.min.js +1 -1
  17. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  18. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  19. package/dist/assets/components/Layout.js +27 -27
  20. package/dist/assets/components/Layout.min.js +1 -1
  21. package/dist/assets/components/NURBS.js +24 -24
  22. package/dist/assets/components/NURBS.min.js +1 -1
  23. package/dist/assets/components/ParticleSystems.js +30 -25
  24. package/dist/assets/components/ParticleSystems.min.js +1 -1
  25. package/dist/assets/components/Picking.js +18 -18
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +17 -17
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +38 -38
  30. package/dist/assets/components/Scripting.min.js +1 -1
  31. package/dist/assets/components/Text.js +24 -24
  32. package/dist/assets/components/Text.min.js +1 -1
  33. package/dist/assets/components/TextureProjection.js +15 -15
  34. package/dist/assets/components/TextureProjection.min.js +1 -1
  35. package/dist/assets/components/Texturing3D.js +30 -30
  36. package/dist/assets/components/Texturing3D.min.js +1 -1
  37. package/dist/assets/components/VolumeRendering.js +19 -19
  38. package/dist/assets/components/VolumeRendering.min.js +1 -1
  39. package/dist/assets/components/X_ITE.js +9 -9
  40. package/dist/assets/components/X_ITE.min.js +1 -1
  41. package/dist/x_ite.css +1 -1
  42. package/dist/x_ite.js +411 -448
  43. package/dist/x_ite.min.js +1 -1
  44. package/dist/x_ite.min.mjs +1 -1
  45. package/dist/x_ite.mjs +411 -448
  46. package/dist/x_ite.zip +0 -0
  47. package/package.json +1 -1
package/dist/x_ite.mjs CHANGED
@@ -1,9 +1,9 @@
1
- /* X_ITE v9.0.0 */var __webpack_modules__ = ({
1
+ /* X_ITE v9.0.2 */var __webpack_modules__ = ({
2
2
 
3
- /***/ 1:
3
+ /***/ 699:
4
4
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
5
5
 
6
- /* provided dependency */ var jQuery = __webpack_require__(978);
6
+ /* provided dependency */ var jQuery = __webpack_require__(718);
7
7
  /**
8
8
  * @preserve jquery.fullscreen 1.1.5
9
9
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -199,7 +199,7 @@ installFullScreenHandlers();
199
199
 
200
200
  /***/ }),
201
201
 
202
- /***/ 436:
202
+ /***/ 801:
203
203
  /***/ ((module, exports, __webpack_require__) => {
204
204
 
205
205
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -213,7 +213,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
213
213
  (function (factory) {
214
214
  if ( true ) {
215
215
  // AMD. Register as an anonymous module.
216
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(978)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
216
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(718)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
217
217
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
218
218
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
219
219
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -424,7 +424,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
424
424
 
425
425
  /***/ }),
426
426
 
427
- /***/ 978:
427
+ /***/ 718:
428
428
  /***/ (function(module, exports) {
429
429
 
430
430
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11148,7 +11148,7 @@ return jQuery;
11148
11148
 
11149
11149
  /***/ }),
11150
11150
 
11151
- /***/ 728:
11151
+ /***/ 89:
11152
11152
  /***/ ((module) => {
11153
11153
 
11154
11154
  /**
@@ -15927,7 +15927,7 @@ if (true) {
15927
15927
 
15928
15928
  /***/ }),
15929
15929
 
15930
- /***/ 899:
15930
+ /***/ 994:
15931
15931
  /***/ (function(__unused_webpack_module, exports) {
15932
15932
 
15933
15933
 
@@ -19172,7 +19172,7 @@ if (true) {
19172
19172
 
19173
19173
  /***/ }),
19174
19174
 
19175
- /***/ 11:
19175
+ /***/ 630:
19176
19176
  /***/ (function(module, exports) {
19177
19177
 
19178
19178
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20299,7 +20299,7 @@ Object .defineProperty (Namespace, "add",
20299
20299
  }
20300
20300
  else
20301
20301
  {
20302
- const X3D = window [Symbol .for ("X_ITE.X3D-9.0.0")];
20302
+ const X3D = window [Symbol .for ("X_ITE.X3D-9.0.2")];
20303
20303
 
20304
20304
  if (X3D)
20305
20305
  X3D [name] = module;
@@ -34121,7 +34121,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34121
34121
  x_ite_Namespace .add ("X3DBaseNode", "x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34122
34122
  /* harmony default export */ const Base_X3DBaseNode = (X3DBaseNode_default_);
34123
34123
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34124
- /* provided dependency */ var $ = __webpack_require__(978);
34124
+ /* provided dependency */ var $ = __webpack_require__(718);
34125
34125
  /*******************************************************************************
34126
34126
  *
34127
34127
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34258,7 +34258,7 @@ x_ite_Namespace .add ("Legacy", "x_ite/Browser/Legacy", Legacy_default_);
34258
34258
  *
34259
34259
  ******************************************************************************/
34260
34260
 
34261
- const VERSION_default_ = "9.0.0";
34261
+ const VERSION_default_ = "9.0.2";
34262
34262
  ;
34263
34263
 
34264
34264
  x_ite_Namespace .add ("VERSION", "x_ite/Browser/VERSION", VERSION_default_);
@@ -38060,7 +38060,7 @@ const X3DProtoDeclarationNode_default_ = X3DProtoDeclarationNode;
38060
38060
  x_ite_Namespace .add ("X3DProtoDeclarationNode", "x_ite/Prototype/X3DProtoDeclarationNode", X3DProtoDeclarationNode_default_);
38061
38061
  /* harmony default export */ const Prototype_X3DProtoDeclarationNode = (X3DProtoDeclarationNode_default_);
38062
38062
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
38063
- /* provided dependency */ var X3DParser_$ = __webpack_require__(978);
38063
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(718);
38064
38064
  /*******************************************************************************
38065
38065
  *
38066
38066
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -38885,7 +38885,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
38885
38885
  x_ite_Namespace .add ("X3DProtoDeclaration", "x_ite/Prototype/X3DProtoDeclaration", X3DProtoDeclaration_default_);
38886
38886
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (X3DProtoDeclaration_default_);
38887
38887
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
38888
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(978);
38888
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(718);
38889
38889
  /*******************************************************************************
38890
38890
  *
38891
38891
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -41430,7 +41430,7 @@ const VRMLParser_default_ = VRMLParser;
41430
41430
  x_ite_Namespace .add ("VRMLParser", "x_ite/Parser/VRMLParser", VRMLParser_default_);
41431
41431
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
41432
41432
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
41433
- /* provided dependency */ var XMLParser_$ = __webpack_require__(978);
41433
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(718);
41434
41434
  /*******************************************************************************
41435
41435
  *
41436
41436
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -43522,7 +43522,7 @@ const URLs_default_ = URLs;
43522
43522
  x_ite_Namespace .add ("URLs", "x_ite/Browser/Networking/URLs", URLs_default_);
43523
43523
  /* harmony default export */ const Networking_URLs = (URLs_default_);
43524
43524
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
43525
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(978);
43525
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(718);
43526
43526
  /*******************************************************************************
43527
43527
  *
43528
43528
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -46823,7 +46823,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
46823
46823
  x_ite_Namespace .add ("GLTF2Parser", "x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
46824
46824
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
46825
46825
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
46826
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(978);
46826
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(718);
46827
46827
  /*******************************************************************************
46828
46828
  *
46829
46829
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -46975,7 +46975,7 @@ const GLB2Parser_default_ = GLB2Parser;
46975
46975
  x_ite_Namespace .add ("GLB2Parser", "x_ite/Parser/GLB2Parser", GLB2Parser_default_);
46976
46976
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
46977
46977
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
46978
- /* provided dependency */ var OBJParser_$ = __webpack_require__(978);
46978
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(718);
46979
46979
  /*******************************************************************************
46980
46980
  *
46981
46981
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -50330,8 +50330,8 @@ const MatrixStack_default_ = MatrixStack;
50330
50330
  x_ite_Namespace .add ("MatrixStack", "standard/Math/Utility/MatrixStack", MatrixStack_default_);
50331
50331
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
50332
50332
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
50333
- /* provided dependency */ var SVGParser_$ = __webpack_require__(978);
50334
- /* provided dependency */ var libtess = __webpack_require__(728);
50333
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(718);
50334
+ /* provided dependency */ var libtess = __webpack_require__(89);
50335
50335
  /*******************************************************************************
50336
50336
  *
50337
50337
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53099,7 +53099,7 @@ const SVGParser_default_ = SVGParser;
53099
53099
  x_ite_Namespace .add ("SVGParser", "x_ite/Parser/SVGParser", SVGParser_default_);
53100
53100
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
53101
53101
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
53102
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(978);
53102
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(718);
53103
53103
  /*******************************************************************************
53104
53104
  *
53105
53105
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53436,7 +53436,7 @@ const Plane3_default_ = Plane3;
53436
53436
  x_ite_Namespace .add ("Plane3", "standard/Math/Geometry/Plane3", Plane3_default_);
53437
53437
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
53438
53438
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
53439
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(728);
53439
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(89);
53440
53440
  /*******************************************************************************
53441
53441
  *
53442
53442
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -55562,6 +55562,128 @@ const Line3_default_ = Line3;
55562
55562
 
55563
55563
  x_ite_Namespace .add ("Line3", "standard/Math/Geometry/Line3", Line3_default_);
55564
55564
  /* harmony default export */ const Geometry_Line3 = (Line3_default_);
55565
+ ;// CONCATENATED MODULE: ./src/standard/Utility/BitSet.js
55566
+ /*******************************************************************************
55567
+ *
55568
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55569
+ *
55570
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
55571
+ *
55572
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
55573
+ *
55574
+ * The copyright notice above does not evidence any actual of intended
55575
+ * publication of such source code, and is an unpublished work by create3000.
55576
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
55577
+ * create3000.
55578
+ *
55579
+ * No permission is granted to copy, distribute, or create derivative works from
55580
+ * the contents of this software, in whole or in part, without the prior written
55581
+ * permission of create3000.
55582
+ *
55583
+ * NON-MILITARY USE ONLY
55584
+ *
55585
+ * All create3000 software are effectively free software with a non-military use
55586
+ * restriction. It is free. Well commented source is provided. You may reuse the
55587
+ * source in any way you please with the exception anything that uses it must be
55588
+ * marked to indicate is contains 'non-military use only' components.
55589
+ *
55590
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55591
+ *
55592
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
55593
+ *
55594
+ * This file is part of the X_ITE Project.
55595
+ *
55596
+ * X_ITE is free software: you can redistribute it and/or modify it under the
55597
+ * terms of the GNU General Public License version 3 only, as published by the
55598
+ * Free Software Foundation.
55599
+ *
55600
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
55601
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
55602
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
55603
+ * details (a copy is included in the LICENSE file that accompanied this code).
55604
+ *
55605
+ * You should have received a copy of the GNU General Public License version 3
55606
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
55607
+ * copy of the GPLv3 License.
55608
+ *
55609
+ * For Silvio, Joy and Adi.
55610
+ *
55611
+ ******************************************************************************/
55612
+
55613
+
55614
+
55615
+ function BitSet (value = 0)
55616
+ {
55617
+ this .value = value;
55618
+ }
55619
+
55620
+ Object .assign (BitSet .prototype,
55621
+ {
55622
+ *[Symbol .iterator] ()
55623
+ {
55624
+ let
55625
+ value = this .value,
55626
+ index = 0;
55627
+
55628
+ while (value)
55629
+ {
55630
+ if (value & 1)
55631
+ yield index;
55632
+
55633
+ value >>>= 1;
55634
+ index += 1;
55635
+ }
55636
+ },
55637
+ get (index)
55638
+ {
55639
+ const mask = 1 << index;
55640
+
55641
+ return !! (this .value & mask);
55642
+ },
55643
+ set (index, value)
55644
+ {
55645
+ const mask = 1 << index;
55646
+
55647
+ if (value)
55648
+ this .value |= mask;
55649
+ else
55650
+ this .value &= ~mask;
55651
+ },
55652
+ clear ()
55653
+ {
55654
+ this .value = 0;
55655
+ },
55656
+ *entries ()
55657
+ {
55658
+ for (const i of this)
55659
+ yield [i, i];
55660
+ },
55661
+ valueOf ()
55662
+ {
55663
+ return this .value;
55664
+ },
55665
+ toString (radix)
55666
+ {
55667
+ return this .value .toString (radix);
55668
+ },
55669
+ });
55670
+
55671
+ BitSet .prototype .keys = BitSet .prototype [Symbol .iterator];
55672
+ BitSet .prototype .values = BitSet .prototype [Symbol .iterator];
55673
+
55674
+ Object .defineProperty (BitSet .prototype, "size",
55675
+ {
55676
+ get ()
55677
+ {
55678
+ return Math_Algorithm .bitCount (this .value);
55679
+ },
55680
+ });
55681
+
55682
+ const BitSet_default_ = BitSet;
55683
+ ;
55684
+
55685
+ x_ite_Namespace .add ("BitSet", "standard/Utility/BitSet", BitSet_default_);
55686
+ /* harmony default export */ const Utility_BitSet = (BitSet_default_);
55565
55687
  ;// CONCATENATED MODULE: ./src/standard/Time/StopWatch.js
55566
55688
  /*******************************************************************************
55567
55689
  *
@@ -55713,12 +55835,14 @@ x_ite_Namespace .add ("StopWatch", "standard/Time/StopWatch", StopWatch_default_
55713
55835
 
55714
55836
 
55715
55837
 
55838
+
55716
55839
  const DEPTH_BUFFER_SIZE = 16;
55717
55840
 
55718
55841
  function X3DRenderObject (executionContext)
55719
55842
  {
55720
55843
  const browser = executionContext .getBrowser ();
55721
55844
 
55845
+ this .renderBits = new Utility_BitSet ();
55722
55846
  this .renderCount = 0;
55723
55847
  this .viewVolumes = [ ];
55724
55848
  this .cameraSpaceMatrix = new Utility_MatrixStack (Numbers_Matrix4);
@@ -55768,10 +55892,24 @@ Object .assign (X3DRenderObject .prototype,
55768
55892
  {
55769
55893
  return true;
55770
55894
  },
55895
+ getRenderBits ()
55896
+ {
55897
+ return this .renderBits;
55898
+ },
55771
55899
  getRenderCount ()
55772
55900
  {
55773
55901
  return this .renderCount;
55774
55902
  },
55903
+ getNextRenderCount: (function ()
55904
+ {
55905
+ let renderCount = 0;
55906
+
55907
+ return function ()
55908
+ {
55909
+ renderCount >>>= 0; // uintesize
55910
+ return ++ renderCount;
55911
+ }
55912
+ })(),
55775
55913
  getViewVolumes ()
55776
55914
  {
55777
55915
  return this .viewVolumes;
@@ -55808,10 +55946,6 @@ Object .assign (X3DRenderObject .prototype,
55808
55946
  {
55809
55947
  return this .cameraSpaceMatrixArray;
55810
55948
  },
55811
- getLogarithmicDepthBuffer ()
55812
- {
55813
- return this .logarithmicDepthBuffer;
55814
- },
55815
55949
  getHitRay ()
55816
55950
  {
55817
55951
  return this .hitRay;
@@ -56628,158 +56762,152 @@ Object .assign (X3DRenderObject .prototype,
56628
56762
  }
56629
56763
  };
56630
56764
  })(),
56631
- draw: (function ()
56765
+ draw ()
56632
56766
  {
56633
- let renderCount = 0;
56634
-
56635
- return function ()
56636
- {
56637
- const
56638
- browser = this .getBrowser (),
56639
- gl = browser .getContext (),
56640
- frameBuffer = browser .getFrameBuffer (),
56641
- viewport = this .getViewVolume () .getViewport (),
56642
- lights = this .lights,
56643
- globalLightsKeys = this .globalLightsKeys,
56644
- globalLights = this .globalLights,
56645
- generatedCubeMapTextures = this .generatedCubeMapTextures,
56646
- globalShadows = this .globalShadows,
56647
- shadows = globalShadows .at (-1),
56648
- headlight = this .getNavigationInfo () ._headlight .getValue (),
56649
- oit = frameBuffer .getOIT ();
56767
+ const
56768
+ browser = this .getBrowser (),
56769
+ gl = browser .getContext (),
56770
+ frameBuffer = browser .getFrameBuffer (),
56771
+ viewport = this .getViewVolume () .getViewport (),
56772
+ lights = this .lights,
56773
+ globalLightsKeys = this .globalLightsKeys,
56774
+ globalLights = this .globalLights,
56775
+ generatedCubeMapTextures = this .generatedCubeMapTextures,
56776
+ globalShadows = this .globalShadows,
56777
+ shadows = globalShadows .at (-1),
56778
+ headlight = this .getNavigationInfo () ._headlight .getValue (),
56779
+ oit = frameBuffer .getOIT ();
56650
56780
 
56651
- renderCount >>>= 0; // uintesize
56652
- this .renderCount = ++ renderCount;
56781
+ this .renderCount = this .getNextRenderCount ();
56653
56782
 
56654
- this .logarithmicDepthBuffer = browser .getBrowserOption ("LogarithmicDepthBuffer")
56655
- || this .getViewpoint () .getLogarithmicDepthBuffer ();
56783
+ this .renderBits .set (0, browser .getRenderingProperty ("LogarithmicDepthBuffer") || this .getViewpoint () .getLogarithmicDepthBuffer ());
56784
+ this .renderBits .set (1, browser .getBrowserOption ("OrderIndependentTransparency"));
56656
56785
 
56657
- // PREPARATIONS
56786
+ // PREPARATIONS
56658
56787
 
56659
- if (this .isIndependent ())
56660
- {
56661
- // Render shadow maps.
56788
+ if (this .isIndependent ())
56789
+ {
56790
+ // Render shadow maps.
56662
56791
 
56663
- for (const light of lights)
56664
- light .renderShadowMap (this);
56792
+ for (const light of lights)
56793
+ light .renderShadowMap (this);
56665
56794
 
56666
- // Render GeneratedCubeMapTextures.
56795
+ // Render GeneratedCubeMapTextures.
56667
56796
 
56668
- for (const generatedCubeMapTexture of generatedCubeMapTextures)
56669
- generatedCubeMapTexture .renderTexture (this);
56797
+ for (const generatedCubeMapTexture of generatedCubeMapTextures)
56798
+ generatedCubeMapTexture .renderTexture (this);
56670
56799
 
56671
- frameBuffer .bind ();
56672
- }
56800
+ frameBuffer .bind ();
56801
+ }
56673
56802
 
56674
- // Set up shadow matrix for all lights, and matrix for all projective textures.
56803
+ // Set up shadow matrix for all lights, and matrix for all projective textures.
56675
56804
 
56676
- if (headlight)
56677
- browser .getHeadlight () .setGlobalVariables (this);
56805
+ if (headlight)
56806
+ browser .getHeadlight () .setGlobalVariables (this);
56678
56807
 
56679
- for (const light of lights)
56680
- light .setGlobalVariables (this);
56808
+ for (const light of lights)
56809
+ light .setGlobalVariables (this);
56681
56810
 
56682
- for (const light of globalLights)
56683
- globalLightsKeys .push (light .lightNode .getLightKey ());
56811
+ for (const light of globalLights)
56812
+ globalLightsKeys .push (light .lightNode .getLightKey ());
56684
56813
 
56685
- // Set global uniforms.
56814
+ // Set global uniforms.
56686
56815
 
56687
- this .viewportArray .set (viewport);
56688
- this .cameraSpaceMatrixArray .set (this .getCameraSpaceMatrix () .get ());
56689
- this .projectionMatrixArray .set (this .getProjectionMatrix () .get ());
56816
+ this .viewportArray .set (viewport);
56817
+ this .cameraSpaceMatrixArray .set (this .getCameraSpaceMatrix () .get ());
56818
+ this .projectionMatrixArray .set (this .getProjectionMatrix () .get ());
56690
56819
 
56691
- // DRAW
56820
+ // DRAW
56692
56821
 
56693
- // Configure viewport and background
56822
+ // Configure viewport and background
56694
56823
 
56695
- gl .viewport (... viewport);
56696
- gl .scissor (... viewport);
56824
+ gl .viewport (... viewport);
56825
+ gl .scissor (... viewport);
56697
56826
 
56698
- // Draw background.
56827
+ // Draw background.
56699
56828
 
56700
- gl .clear (gl .DEPTH_BUFFER_BIT);
56701
- gl .blendFuncSeparate (gl .SRC_ALPHA, gl .ONE_MINUS_SRC_ALPHA, gl .ONE, gl .ONE_MINUS_SRC_ALPHA);
56829
+ gl .clear (gl .DEPTH_BUFFER_BIT);
56830
+ gl .blendFuncSeparate (gl .SRC_ALPHA, gl .ONE_MINUS_SRC_ALPHA, gl .ONE, gl .ONE_MINUS_SRC_ALPHA);
56702
56831
 
56703
- this .getBackground () .display (gl, this, viewport);
56832
+ this .getBackground () .display (gl, this, viewport);
56704
56833
 
56705
- // Sorted blend or order independent transparency
56834
+ // Sorted blend or order independent transparency
56706
56835
 
56707
- // Render opaque objects first
56836
+ // Render opaque objects first
56708
56837
 
56709
- const opaqueShapes = this .opaqueShapes;
56838
+ const opaqueShapes = this .opaqueShapes;
56710
56839
 
56711
- for (let i = 0, length = this .numOpaqueShapes; i < length; ++ i)
56712
- {
56713
- const renderContext = opaqueShapes [i];
56840
+ for (let i = 0, length = this .numOpaqueShapes; i < length; ++ i)
56841
+ {
56842
+ const renderContext = opaqueShapes [i];
56714
56843
 
56715
- gl .scissor (... renderContext .scissor);
56844
+ gl .scissor (... renderContext .scissor);
56716
56845
 
56717
- renderContext .shadows = renderContext .shadows || shadows;
56718
- renderContext .objectsKeys .push (... globalLightsKeys);
56846
+ renderContext .shadows = renderContext .shadows || shadows;
56847
+ renderContext .objectsKeys .push (... globalLightsKeys);
56719
56848
 
56720
- renderContext .shapeNode .display (gl, renderContext);
56721
- browser .resetTextureUnits ();
56722
- }
56849
+ renderContext .shapeNode .display (gl, renderContext);
56850
+ browser .resetTextureUnits ();
56851
+ }
56723
56852
 
56724
- // Render transparent objects
56853
+ // Render transparent objects
56725
56854
 
56726
- const transparentShapes = this .transparentShapes;
56855
+ const transparentShapes = this .transparentShapes;
56727
56856
 
56728
- if (oit)
56729
- frameBuffer .bindTransparency ();
56730
- else
56731
- this .transparencySorter .sort (0, this .numTransparentShapes);
56857
+ if (oit)
56858
+ frameBuffer .bindTransparency ();
56859
+ else
56860
+ this .transparencySorter .sort (0, this .numTransparentShapes);
56732
56861
 
56733
- gl .depthMask (false);
56734
- gl .enable (gl .BLEND);
56862
+ gl .depthMask (false);
56863
+ gl .enable (gl .BLEND);
56735
56864
 
56736
- for (let i = 0, length = this .numTransparentShapes; i < length; ++ i)
56737
- {
56738
- const renderContext = transparentShapes [i];
56865
+ for (let i = 0, length = this .numTransparentShapes; i < length; ++ i)
56866
+ {
56867
+ const renderContext = transparentShapes [i];
56739
56868
 
56740
- gl .scissor (... renderContext .scissor);
56869
+ gl .scissor (... renderContext .scissor);
56741
56870
 
56742
- renderContext .shadows = renderContext .shadows || shadows;
56743
- renderContext .objectsKeys .push (... globalLightsKeys);
56871
+ renderContext .shadows = renderContext .shadows || shadows;
56872
+ renderContext .objectsKeys .push (... globalLightsKeys);
56744
56873
 
56745
- renderContext .shapeNode .display (gl, renderContext);
56746
- browser .resetTextureUnits ();
56747
- }
56874
+ renderContext .shapeNode .display (gl, renderContext);
56875
+ browser .resetTextureUnits ();
56876
+ }
56748
56877
 
56749
- gl .depthMask (true);
56750
- gl .disable (gl .BLEND);
56878
+ gl .depthMask (true);
56879
+ gl .disable (gl .BLEND);
56751
56880
 
56752
- if (oit)
56753
- frameBuffer .compose ();
56881
+ if (oit)
56882
+ frameBuffer .compose ();
56754
56883
 
56755
- // POST DRAW
56884
+ // POST DRAW
56756
56885
 
56757
- if (this .isIndependent ())
56758
- {
56759
- // Recycle clip planes, local fogs, local lights, and local projective textures.
56886
+ if (this .isIndependent ())
56887
+ {
56888
+ // Recycle clip planes, local fogs, local lights, and local projective textures.
56760
56889
 
56761
- const localObjects = browser .getLocalObjects ();
56890
+ const localObjects = browser .getLocalObjects ();
56762
56891
 
56763
- for (const localObject of localObjects)
56764
- localObject .dispose ();
56892
+ for (const localObject of localObjects)
56893
+ localObject .dispose ();
56765
56894
 
56766
- localObjects .length = 0;
56895
+ localObjects .length = 0;
56767
56896
 
56768
- // Recycle global lights and global projective textures.
56897
+ // Recycle global lights and global projective textures.
56769
56898
 
56770
- for (const globalObject of globalLights)
56771
- globalObject .dispose ();
56772
- }
56899
+ for (const globalObject of globalLights)
56900
+ globalObject .dispose ();
56901
+ }
56773
56902
 
56774
- // Reset containers.
56903
+ // Reset containers.
56775
56904
 
56776
- globalLightsKeys .length = 0;
56777
- globalLights .length = 0;
56778
- lights .length = 0;
56779
- globalShadows .length = 1;
56780
- generatedCubeMapTextures .length = 0;
56781
- };
56782
- })(),
56905
+ globalLightsKeys .length = 0;
56906
+ globalLights .length = 0;
56907
+ lights .length = 0;
56908
+ globalShadows .length = 1;
56909
+ generatedCubeMapTextures .length = 0;
56910
+ },
56783
56911
  });
56784
56912
 
56785
56913
  function X3DRenderObject_assign (lhs, rhs)
@@ -59469,128 +59597,6 @@ const GeometryContext_default_ = GeometryContext;
59469
59597
 
59470
59598
  x_ite_Namespace .add ("GeometryContext", "x_ite/Browser/Rendering/GeometryContext", GeometryContext_default_);
59471
59599
  /* harmony default export */ const Rendering_GeometryContext = (GeometryContext_default_);
59472
- ;// CONCATENATED MODULE: ./src/standard/Utility/BitSet.js
59473
- /*******************************************************************************
59474
- *
59475
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
59476
- *
59477
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
59478
- *
59479
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
59480
- *
59481
- * The copyright notice above does not evidence any actual of intended
59482
- * publication of such source code, and is an unpublished work by create3000.
59483
- * This material contains CONFIDENTIAL INFORMATION that is the property of
59484
- * create3000.
59485
- *
59486
- * No permission is granted to copy, distribute, or create derivative works from
59487
- * the contents of this software, in whole or in part, without the prior written
59488
- * permission of create3000.
59489
- *
59490
- * NON-MILITARY USE ONLY
59491
- *
59492
- * All create3000 software are effectively free software with a non-military use
59493
- * restriction. It is free. Well commented source is provided. You may reuse the
59494
- * source in any way you please with the exception anything that uses it must be
59495
- * marked to indicate is contains 'non-military use only' components.
59496
- *
59497
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
59498
- *
59499
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
59500
- *
59501
- * This file is part of the X_ITE Project.
59502
- *
59503
- * X_ITE is free software: you can redistribute it and/or modify it under the
59504
- * terms of the GNU General Public License version 3 only, as published by the
59505
- * Free Software Foundation.
59506
- *
59507
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
59508
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
59509
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
59510
- * details (a copy is included in the LICENSE file that accompanied this code).
59511
- *
59512
- * You should have received a copy of the GNU General Public License version 3
59513
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
59514
- * copy of the GPLv3 License.
59515
- *
59516
- * For Silvio, Joy and Adi.
59517
- *
59518
- ******************************************************************************/
59519
-
59520
-
59521
-
59522
- function BitSet (value = 0)
59523
- {
59524
- this .value = value;
59525
- }
59526
-
59527
- Object .assign (BitSet .prototype,
59528
- {
59529
- *[Symbol .iterator] ()
59530
- {
59531
- let
59532
- value = this .value,
59533
- index = 0;
59534
-
59535
- while (value)
59536
- {
59537
- if (value & 1)
59538
- yield index;
59539
-
59540
- value >>>= 1;
59541
- index += 1;
59542
- }
59543
- },
59544
- get (index)
59545
- {
59546
- const mask = 1 << index;
59547
-
59548
- return !! (this .value & mask);
59549
- },
59550
- set (index, value)
59551
- {
59552
- const mask = 1 << index;
59553
-
59554
- if (value)
59555
- this .value |= mask;
59556
- else
59557
- this .value &= ~mask;
59558
- },
59559
- clear ()
59560
- {
59561
- this .value = 0;
59562
- },
59563
- *entries ()
59564
- {
59565
- for (const i of this)
59566
- yield [i, i];
59567
- },
59568
- valueOf ()
59569
- {
59570
- return this .value;
59571
- },
59572
- toString (radix)
59573
- {
59574
- return this .value .toString (radix);
59575
- },
59576
- });
59577
-
59578
- BitSet .prototype .keys = BitSet .prototype [Symbol .iterator];
59579
- BitSet .prototype .values = BitSet .prototype [Symbol .iterator];
59580
-
59581
- Object .defineProperty (BitSet .prototype, "size",
59582
- {
59583
- get ()
59584
- {
59585
- return Math_Algorithm .bitCount (this .value);
59586
- },
59587
- });
59588
-
59589
- const BitSet_default_ = BitSet;
59590
- ;
59591
-
59592
- x_ite_Namespace .add ("BitSet", "standard/Utility/BitSet", BitSet_default_);
59593
- /* harmony default export */ const Utility_BitSet = (BitSet_default_);
59594
59600
  ;// CONCATENATED MODULE: ./src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js
59595
59601
  /*******************************************************************************
59596
59602
  *
@@ -60637,10 +60643,8 @@ Object .assign (Object .setPrototypeOf (X3DSingleTextureNode .prototype, Texturi
60637
60643
  if (this .texturePropertiesNode)
60638
60644
  this .texturePropertiesNode .removeInterest ("updateTextureParameters", this);
60639
60645
 
60640
- this .texturePropertiesNode = Base_X3DCast (Base_X3DConstants .TextureProperties, this ._textureProperties);
60641
-
60642
- if (!this .texturePropertiesNode)
60643
- this .texturePropertiesNode = this .getBrowser () .getDefaultTextureProperties ();
60646
+ this .texturePropertiesNode = Base_X3DCast (Base_X3DConstants .TextureProperties, this ._textureProperties)
60647
+ ?? this .getBrowser () .getDefaultTextureProperties ();
60644
60648
 
60645
60649
  this .texturePropertiesNode .addInterest ("updateTextureParameters", this);
60646
60650
 
@@ -60675,8 +60679,9 @@ Object .assign (Object .setPrototypeOf (X3DSingleTextureNode .prototype, Texturi
60675
60679
  {
60676
60680
  if (this .generateMipMaps)
60677
60681
  {
60682
+ // https://stackoverflow.com/a/25640078/1818915
60678
60683
  this .levels = textureProperties ._generateMipMaps .getValue ()
60679
- ? 1 + Math .log2 (Math .max (width, height))
60684
+ ? 1 + Math .floor (Math .log2 (Math .max (width, height)))
60680
60685
  : 1;
60681
60686
 
60682
60687
  if (textureProperties ._generateMipMaps .getValue ())
@@ -60940,7 +60945,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
60940
60945
  x_ite_Namespace .add ("X3DTexture2DNode", "x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
60941
60946
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
60942
60947
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
60943
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(978);
60948
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(718);
60944
60949
  /*******************************************************************************
60945
60950
  *
60946
60951
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -63661,9 +63666,7 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
63661
63666
  {
63662
63667
  bbox = bbox .copy () .multRight (this .getModelMatrix () .copy () .inverse ());
63663
63668
 
63664
- const minDistance = Math .max (layerNode .getNavigationInfo () .getNearValue () * 2, this .getLookAtDistance (bbox));
63665
-
63666
- this .lookAt (layerNode, bbox .center, minDistance, transitionTime, factor, straighten);
63669
+ this .lookAt (layerNode, bbox .center, this .getLookAtDistance (bbox), transitionTime, factor, straighten);
63667
63670
  },
63668
63671
  lookAt (layerNode, point, distance, transitionTime = 1, factor = 1, straighten = false)
63669
63672
  {
@@ -63700,7 +63703,7 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
63700
63703
 
63701
63704
  this ._fieldOfViewScale = 1;
63702
63705
  this ._centerOfRotationOffset = point .copy () .subtract (this .getCenterOfRotation ());
63703
- this .nearDistance = Math .min (distance / 2, 0.125);
63706
+ this .nearDistance = distance * (0.125 / 10);
63704
63707
  this .farDistance = this .nearDistance * this .getMaxFarValue () / 0.125;
63705
63708
 
63706
63709
  this .setInterpolators (this, relative);
@@ -63758,7 +63761,7 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
63758
63761
  })(),
63759
63762
  viewAll (bbox)
63760
63763
  {
63761
- bbox .multRight (this .modelMatrix .copy () .inverse ());
63764
+ bbox .copy () .multRight (this .modelMatrix .copy () .inverse ());
63762
63765
 
63763
63766
  const
63764
63767
  direction = this .getUserPosition () .copy () .subtract (bbox .center) .normalize (),
@@ -63770,7 +63773,7 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
63770
63773
  this ._orientationOffset = this .getOrientation () .copy () .inverse () .multRight (userOrientation);
63771
63774
  this ._centerOfRotationOffset = bbox .center .copy () .subtract (this .getCenterOfRotation ());
63772
63775
  this ._fieldOfViewScale = 1;
63773
- this .nearDistance = Math .min ((distance - bbox .size .magnitude ()) / 2, 0.125);
63776
+ this .nearDistance = distance * (0.125 / 10);
63774
63777
  this .farDistance = this .nearDistance * this .getMaxFarValue () / 0.125;
63775
63778
  },
63776
63779
  traverse (type, renderObject)
@@ -65531,7 +65534,7 @@ const X3DWorld_default_ = X3DWorld;
65531
65534
  x_ite_Namespace .add ("X3DWorld", "x_ite/Execution/X3DWorld", X3DWorld_default_);
65532
65535
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
65533
65536
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
65534
- /* provided dependency */ var FileLoader_$ = __webpack_require__(978);
65537
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(718);
65535
65538
  /*******************************************************************************
65536
65539
  *
65537
65540
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -79657,7 +79660,7 @@ Object .assign (Object .setPrototypeOf (X3DLightNode .prototype, Core_X3DChildNo
79657
79660
  },
79658
79661
  getLightKey ()
79659
79662
  {
79660
- return 1;
79663
+ return 1; // [ClipPlane 0, X3DLightNode 1, EnvironmentLight 2, X3DTextureProjectorNode 3]
79661
79664
  },
79662
79665
  getEnabled ()
79663
79666
  {
@@ -80202,14 +80205,16 @@ Object .assign (EnvironmentLightContainer .prototype,
80202
80205
  gl .uniform3f (shaderObject .x3d_EnvironmentLightColor, color .r, color .g, color .b);
80203
80206
  gl .uniform1f (shaderObject .x3d_EnvironmentLightIntensity, lightNode .getIntensity ());
80204
80207
  gl .uniformMatrix3fv (shaderObject .x3d_EnvironmentLightRotation, false, lightNode .getRotation ());
80208
+ gl .uniform1i (shaderObject .x3d_EnvironmentLightDiffuseTextureLinear, diffuseTexture ?.isLinear ());
80209
+ gl .uniform1i (shaderObject .x3d_EnvironmentLightSpecularTextureLinear, specularTexture ?.isLinear ());
80205
80210
  gl .uniform1i (shaderObject .x3d_EnvironmentLightSpecularTextureLevels, specularTexture ?.getLevels () ?? 1);
80206
80211
 
80207
80212
  gl .activeTexture (gl .TEXTURE0 + diffuseTextureUnit);
80208
- gl .bindTexture (gl .TEXTURE_CUBE_MAP, diffuseTexture ?.getTexture () ?? browser .getDefaultTextureCubeBlack ());
80213
+ gl .bindTexture (gl .TEXTURE_CUBE_MAP, diffuseTexture ?.getTexture () ?? browser .getDefaultTextureCube ());
80209
80214
  gl .uniform1i (shaderObject .x3d_EnvironmentLightDiffuseTexture, diffuseTextureUnit);
80210
80215
 
80211
80216
  gl .activeTexture (gl .TEXTURE0 + specularTextureUnit);
80212
- gl .bindTexture (gl .TEXTURE_CUBE_MAP, specularTexture ?.getTexture () ?? browser .getDefaultTextureCubeBlack ());
80217
+ gl .bindTexture (gl .TEXTURE_CUBE_MAP, specularTexture ?.getTexture () ?? browser .getDefaultTextureCube ());
80213
80218
  gl .uniform1i (shaderObject .x3d_EnvironmentLightSpecularTexture, specularTextureUnit);
80214
80219
 
80215
80220
  gl .activeTexture (gl .TEXTURE0 + GGXLUTTextureUnit);
@@ -89126,7 +89131,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
89126
89131
  x_ite_Namespace .add ("X3DShaderNode", "x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
89127
89132
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
89128
89133
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
89129
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(978);
89134
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(718);
89130
89135
  /*******************************************************************************
89131
89136
  *
89132
89137
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -89325,7 +89330,9 @@ Object .assign (X3DProgrammableShaderObject .prototype,
89325
89330
  this .x3d_EnvironmentLightAmbientIntensity = gl .getUniformLocation (program, "x3d_EnvironmentLightSource.ambientIntensity");
89326
89331
  this .x3d_EnvironmentLightRotation = gl .getUniformLocation (program, "x3d_EnvironmentLightSource.rotation");
89327
89332
  this .x3d_EnvironmentLightDiffuseTexture = gl .getUniformLocation (program, "x3d_EnvironmentLightSource.diffuseTexture");
89333
+ this .x3d_EnvironmentLightDiffuseTextureLinear = gl .getUniformLocation (program, "x3d_EnvironmentLightSource.diffuseTextureLinear");
89328
89334
  this .x3d_EnvironmentLightSpecularTexture = gl .getUniformLocation (program, "x3d_EnvironmentLightSource.specularTexture");
89335
+ this .x3d_EnvironmentLightSpecularTextureLinear = gl .getUniformLocation (program, "x3d_EnvironmentLightSource.specularTextureLinear");
89329
89336
  this .x3d_EnvironmentLightSpecularTextureLevels = gl .getUniformLocation (program, "x3d_EnvironmentLightSource.specularTextureLevels");
89330
89337
  this .x3d_EnvironmentLightGGXLUTTexture = gl .getUniformLocation (program, "x3d_EnvironmentLightSource.GGXLUTTexture");
89331
89338
 
@@ -90158,7 +90165,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
90158
90165
 
90159
90166
  // Logarithmic depth buffer support
90160
90167
 
90161
- if (renderObject .getLogarithmicDepthBuffer ())
90168
+ if (renderObject .getRenderBits () .get (0))
90162
90169
  {
90163
90170
  const
90164
90171
  viewpoint = renderObject .getViewpoint (),
@@ -91522,7 +91529,7 @@ mediump vec3 shadowColor;mediump float shadowIntensity;mediump float shadowBias;
91522
91529
  };
91523
91530
  #endif
91524
91531
  #if defined(X3D_USE_IBL)
91525
- struct x3d_EnvironmentLightSourceParameters{mediump vec3 color;mediump float intensity;mediump float ambientIntensity;mediump mat3 rotation;mediump samplerCube diffuseTexture;mediump samplerCube specularTexture;mediump int specularTextureLevels;mediump sampler2D GGXLUTTexture;};
91532
+ struct x3d_EnvironmentLightSourceParameters{mediump vec3 color;mediump float intensity;mediump float ambientIntensity;mediump mat3 rotation;mediump samplerCube diffuseTexture;bool diffuseTextureLinear;mediump samplerCube specularTexture;bool specularTextureLinear;mediump int specularTextureLevels;mediump sampler2D GGXLUTTexture;};
91526
91533
  #endif
91527
91534
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
91528
91535
  struct x3d_PointPropertiesParameters{mediump float pointSizeScaleFactor;mediump float pointSizeMinValue;mediump float pointSizeMaxValue;mediump vec3 attenuation;};
@@ -94087,14 +94094,17 @@ return finalColor;}void main(){fragment_main();}`
94087
94094
  x_ite_Namespace .add ("Unlit2.fs", "assets/shaders/webgl2/Unlit2.fs", Unlit2_fs_default_);
94088
94095
  /* harmony default export */ const Unlit2_fs = (Unlit2_fs_default_);
94089
94096
  ;// CONCATENATED MODULE: ./src/assets/shaders/webgl1/pbr/BDRF1.glsl.js
94090
- const BDRF1_glsl_default_ = /* glsl */ `const float M_PI=3.14159265359;vec3 F_Schlick(vec3 f0,vec3 f90,float VdotH){return f0+(f90-f0)*pow(clamp(1.0-VdotH,0.0,1.0),5.0);}float V_GGX(float NdotL,float NdotV,float alphaRoughness){float alphaRoughnessSq=alphaRoughness*alphaRoughness;float GGXV=NdotL*sqrt(NdotV*NdotV*(1.0-alphaRoughnessSq)+alphaRoughnessSq);float GGXL=NdotV*sqrt(NdotL*NdotL*(1.0-alphaRoughnessSq)+alphaRoughnessSq);float GGX=GGXV+GGXL;if(GGX>0.0){return 0.5/GGX;}return 0.0;}float D_GGX(float NdotH,float alphaRoughness){float alphaRoughnessSq=alphaRoughness*alphaRoughness;float f=(NdotH*NdotH)*(alphaRoughnessSq-1.0)+1.0;return alphaRoughnessSq/(M_PI*f*f);}vec3 BRDF_lambertian(vec3 f0,vec3 f90,vec3 diffuseColor,float specularWeight,float VdotH){return(1.0-specularWeight*F_Schlick(f0,f90,VdotH))*(diffuseColor/M_PI);}vec3 BRDF_specularGGX(vec3 f0,vec3 f90,float alphaRoughness,float specularWeight,float VdotH,float NdotL,float NdotV,float NdotH){vec3 F=F_Schlick(f0,f90,VdotH);float Vis=V_GGX(NdotL,NdotV,alphaRoughness);float D=D_GGX(NdotH,alphaRoughness);return specularWeight*F*Vis*D;}`
94097
+ const BDRF1_glsl_default_ = /* glsl */ `#if defined(X3D_LIGHTING)
94098
+ const float M_PI=3.14159265359;vec3 F_Schlick(vec3 f0,vec3 f90,float VdotH){return f0+(f90-f0)*pow(clamp(1.0-VdotH,0.0,1.0),5.0);}float V_GGX(float NdotL,float NdotV,float alphaRoughness){float alphaRoughnessSq=alphaRoughness*alphaRoughness;float GGXV=NdotL*sqrt(NdotV*NdotV*(1.0-alphaRoughnessSq)+alphaRoughnessSq);float GGXL=NdotV*sqrt(NdotL*NdotL*(1.0-alphaRoughnessSq)+alphaRoughnessSq);float GGX=GGXV+GGXL;if(GGX>0.0){return 0.5/GGX;}return 0.0;}float D_GGX(float NdotH,float alphaRoughness){float alphaRoughnessSq=alphaRoughness*alphaRoughness;float f=(NdotH*NdotH)*(alphaRoughnessSq-1.0)+1.0;return alphaRoughnessSq/(M_PI*f*f);}vec3 BRDF_lambertian(vec3 f0,vec3 f90,vec3 diffuseColor,float specularWeight,float VdotH){return(1.0-specularWeight*F_Schlick(f0,f90,VdotH))*(diffuseColor/M_PI);}vec3 BRDF_specularGGX(vec3 f0,vec3 f90,float alphaRoughness,float specularWeight,float VdotH,float NdotL,float NdotV,float NdotH){vec3 F=F_Schlick(f0,f90,VdotH);float Vis=V_GGX(NdotL,NdotV,alphaRoughness);float D=D_GGX(NdotH,alphaRoughness);return specularWeight*F*Vis*D;}
94099
+ #endif
94100
+ `
94091
94101
  ;
94092
94102
 
94093
94103
  x_ite_Namespace .add ("BDRF1.glsl", "assets/shaders/webgl1/pbr/BDRF1.glsl", BDRF1_glsl_default_);
94094
94104
  /* harmony default export */ const BDRF1_glsl = (BDRF1_glsl_default_);
94095
94105
  ;// CONCATENATED MODULE: ./src/assets/shaders/webgl1/pbr/IBL1.glsl.js
94096
94106
  const IBL1_glsl_default_ = /* glsl */ `#if defined(X3D_USE_IBL)
94097
- uniform x3d_EnvironmentLightSourceParameters x3d_EnvironmentLightSource;vec3 getDiffuseLight(const in vec3 n){return textureCube(x3d_EnvironmentLightSource.diffuseTexture,x3d_EnvironmentLightSource.rotation*n).rgb*x3d_EnvironmentLightSource.color*x3d_EnvironmentLightSource.intensity;}vec3 getSpecularLight(const in vec3 reflection,const in float lod){return textureCubeLodEXT(x3d_EnvironmentLightSource.specularTexture,x3d_EnvironmentLightSource.rotation*reflection,lod).rgb*x3d_EnvironmentLightSource.color*x3d_EnvironmentLightSource.intensity;}vec3 getIBLRadianceGGX(const in vec3 n,const in vec3 v,const in float roughness,const in vec3 F0,const in float specularWeight){float NdotV=clamp(dot(n,v),0.0,1.0);float lod=roughness*float(x3d_EnvironmentLightSource.specularTextureLevels-1);vec3 reflection=normalize(reflect(-v,n));vec2 brdfSamplePoint=clamp(vec2(NdotV,1.0-roughness),vec2(0.0),vec2(1.0));vec2 f_ab=texture2D(x3d_EnvironmentLightSource.GGXLUTTexture,brdfSamplePoint).rg;vec3 specularLight=getSpecularLight(reflection,lod);vec3 Fr=max(vec3(1.0-roughness),F0)-F0;vec3 k_S=F0+Fr*pow(1.0-NdotV,5.0);vec3 FssEss=k_S*f_ab.x+f_ab.y;return specularWeight*specularLight*FssEss;}vec3 getIBLRadianceLambertian(const in vec3 n,const in vec3 v,const in float roughness,const in vec3 diffuseColor,const in vec3 F0,const in float specularWeight){float NdotV=clamp(dot(n,v),0.0,1.0);vec2 brdfSamplePoint=clamp(vec2(NdotV,1.0-roughness),vec2(0.0),vec2(1.0));vec2 f_ab=texture2D(x3d_EnvironmentLightSource.GGXLUTTexture,brdfSamplePoint).rg;vec3 irradiance=getDiffuseLight(n);vec3 Fr=max(vec3(1.0-roughness),F0)-F0;vec3 k_S=F0+Fr*pow(1.0-NdotV,5.0);vec3 FssEss=specularWeight*k_S*f_ab.x+f_ab.y;float Ems=(1.0-(f_ab.x+f_ab.y));vec3 F_avg=specularWeight*(F0+(1.0-F0)/21.0);vec3 FmsEms=Ems*FssEss*F_avg/(1.0-F_avg*Ems);vec3 k_D=diffuseColor*(1.0-FssEss+FmsEms);return(FmsEms+k_D)*irradiance;}
94107
+ uniform x3d_EnvironmentLightSourceParameters x3d_EnvironmentLightSource;vec3 getDiffuseLight(const in vec3 n){vec3 textureColor=textureCube(x3d_EnvironmentLightSource.diffuseTexture,x3d_EnvironmentLightSource.rotation*n).rgb;if(!x3d_EnvironmentLightSource.diffuseTextureLinear)textureColor=sRGBToLinear(textureColor);return textureColor*x3d_EnvironmentLightSource.color*x3d_EnvironmentLightSource.intensity;}vec3 getSpecularLight(const in vec3 reflection,const in float lod){vec3 textureColor=textureCubeLodEXT(x3d_EnvironmentLightSource.specularTexture,x3d_EnvironmentLightSource.rotation*reflection,lod).rgb;if(!x3d_EnvironmentLightSource.specularTextureLinear)textureColor=sRGBToLinear(textureColor);return textureColor*x3d_EnvironmentLightSource.color*x3d_EnvironmentLightSource.intensity;}vec3 getIBLRadianceGGX(const in vec3 n,const in vec3 v,const in float roughness,const in vec3 F0,const in float specularWeight){float NdotV=clamp(dot(n,v),0.0,1.0);float lod=roughness*float(x3d_EnvironmentLightSource.specularTextureLevels-1);vec3 reflection=normalize(reflect(-v,n));vec2 brdfSamplePoint=clamp(vec2(NdotV,roughness),vec2(0.0),vec2(1.0));vec2 f_ab=texture2D(x3d_EnvironmentLightSource.GGXLUTTexture,brdfSamplePoint).rg;vec3 specularLight=getSpecularLight(reflection,lod);vec3 Fr=max(vec3(1.0-roughness),F0)-F0;vec3 k_S=F0+Fr*pow(1.0-NdotV,5.0);vec3 FssEss=k_S*f_ab.x+f_ab.y;return specularWeight*specularLight*FssEss;}vec3 getIBLRadianceLambertian(const in vec3 n,const in vec3 v,const in float roughness,const in vec3 diffuseColor,const in vec3 F0,const in float specularWeight){float NdotV=clamp(dot(n,v),0.0,1.0);vec2 brdfSamplePoint=clamp(vec2(NdotV,roughness),vec2(0.0),vec2(1.0));vec2 f_ab=texture2D(x3d_EnvironmentLightSource.GGXLUTTexture,brdfSamplePoint).rg;vec3 irradiance=getDiffuseLight(n);vec3 Fr=max(vec3(1.0-roughness),F0)-F0;vec3 k_S=F0+Fr*pow(1.0-NdotV,5.0);vec3 FssEss=specularWeight*k_S*f_ab.x+f_ab.y;float Ems=(1.0-(f_ab.x+f_ab.y));vec3 F_avg=specularWeight*(F0+(1.0-F0)/21.0);vec3 FmsEms=Ems*FssEss*F_avg/(1.0-F_avg*Ems);vec3 k_D=diffuseColor*(1.0-FssEss+FmsEms);return(FmsEms+k_D)*irradiance;}
94098
94108
  #endif
94099
94109
  `
94100
94110
  ;
@@ -94175,7 +94185,7 @@ return baseColor;}
94175
94185
  #if defined(X3D_METALLIC_ROUGHNESS_TEXTURE)
94176
94186
  uniform x3d_MetallicRoughnessTextureParameters x3d_MetallicRoughnessTexture;
94177
94187
  #endif
94178
- MaterialInfo getMetallicRoughnessInfo(MaterialInfo info){info.metallic=x3d_Material.metallic;info.perceptualRoughness=x3d_Material.roughness;
94188
+ MaterialInfo getMetallicRoughnessInfo(in MaterialInfo info){info.metallic=x3d_Material.metallic;info.perceptualRoughness=x3d_Material.roughness;
94179
94189
  #if defined(X3D_METALLIC_ROUGHNESS_TEXTURE)
94180
94190
  vec3 texCoord=getTexCoord(x3d_MetallicRoughnessTexture.textureTransformMapping,x3d_MetallicRoughnessTexture.textureCoordinateMapping);
94181
94191
  #if defined(X3D_METALLIC_ROUGHNESS_TEXTURE_FLIP_Y)
@@ -94210,7 +94220,7 @@ emissiveColor*=textureColor;
94210
94220
  emissiveColor*=sRGBToLinear(textureColor);
94211
94221
  #endif
94212
94222
  #endif
94213
- return emissiveColor.rgb;}
94223
+ return emissiveColor;}
94214
94224
  #if defined(X3D_OCCLUSION_TEXTURE)
94215
94225
  uniform x3d_OcclusionTextureParameters x3d_OcclusionTexture;
94216
94226
  #endif
@@ -94234,7 +94244,7 @@ return 1.0;
94234
94244
  x_ite_Namespace .add ("MaterialInfo1.glsl", "assets/shaders/webgl1/pbr/MaterialInfo1.glsl", MaterialInfo1_glsl_default_);
94235
94245
  /* harmony default export */ const MaterialInfo1_glsl = (MaterialInfo1_glsl_default_);
94236
94246
  ;// CONCATENATED MODULE: ./src/assets/shaders/webgl1/pbr/ToneMapping1.glsl.js
94237
- const ToneMapping1_glsl_default_ = /* glsl */ `const float exposure=1.0;const float GAMMA=2.2;const float INV_GAMMA=1.0/GAMMA;vec3 linearTosRGB(const in vec3 color){return pow(color,vec3(INV_GAMMA));}vec4 linearTosRGB(const in vec4 color){return vec4(linearTosRGB(color.rgb),color.a);}vec3 sRGBToLinear(const in vec3 color){return vec3(pow(color,vec3(GAMMA)));}vec4 sRGBToLinear(const in vec4 color){return vec4(sRGBToLinear(color.rgb),color.a);}
94247
+ const ToneMapping1_glsl_default_ = /* glsl */ `const float exposure=1.0;const float GAMMA=2.2;const float INV_GAMMA=1.0/GAMMA;vec3 linearTosRGB(const in vec3 color){return pow(color,vec3(INV_GAMMA));}vec4 linearTosRGB(const in vec4 color){return vec4(linearTosRGB(color.rgb),color.a);}vec3 sRGBToLinear(const in vec3 color){return pow(color,vec3(GAMMA));}vec4 sRGBToLinear(const in vec4 color){return vec4(sRGBToLinear(color.rgb),color.a);}
94238
94248
  #if defined(X3D_TONEMAP_ACES_NARKOWICZ)
94239
94249
  vec3 toneMapACES_Narkowicz(const in vec3 color){const float A=2.51;const float B=0.03;const float C=2.43;const float D=0.59;const float E=0.14;return clamp((color*(A*color+B))/(color*(C*color+D)+E),0.0,1.0);}
94240
94250
  #endif
@@ -94257,14 +94267,17 @@ return linearTosRGB(color);}`
94257
94267
  x_ite_Namespace .add ("ToneMapping1.glsl", "assets/shaders/webgl1/pbr/ToneMapping1.glsl", ToneMapping1_glsl_default_);
94258
94268
  /* harmony default export */ const ToneMapping1_glsl = (ToneMapping1_glsl_default_);
94259
94269
  ;// CONCATENATED MODULE: ./src/assets/shaders/webgl2/pbr/BDRF2.glsl.js
94260
- const BDRF2_glsl_default_ = /* glsl */ `const float M_PI=3.1415926535897932384626433832795;vec3 F_Schlick(vec3 f0,vec3 f90,float VdotH){return f0+(f90-f0)*pow(clamp(1.0-VdotH,0.0,1.0),5.0);}float V_GGX(float NdotL,float NdotV,float alphaRoughness){float alphaRoughnessSq=alphaRoughness*alphaRoughness;float GGXV=NdotL*sqrt(NdotV*NdotV*(1.0-alphaRoughnessSq)+alphaRoughnessSq);float GGXL=NdotV*sqrt(NdotL*NdotL*(1.0-alphaRoughnessSq)+alphaRoughnessSq);float GGX=GGXV+GGXL;if(GGX>0.0){return 0.5/GGX;}return 0.0;}float D_GGX(float NdotH,float alphaRoughness){float alphaRoughnessSq=alphaRoughness*alphaRoughness;float f=(NdotH*NdotH)*(alphaRoughnessSq-1.0)+1.0;return alphaRoughnessSq/(M_PI*f*f);}vec3 BRDF_lambertian(vec3 f0,vec3 f90,vec3 diffuseColor,float specularWeight,float VdotH){return(1.0-specularWeight*F_Schlick(f0,f90,VdotH))*(diffuseColor/M_PI);}vec3 BRDF_specularGGX(vec3 f0,vec3 f90,float alphaRoughness,float specularWeight,float VdotH,float NdotL,float NdotV,float NdotH){vec3 F=F_Schlick(f0,f90,VdotH);float Vis=V_GGX(NdotL,NdotV,alphaRoughness);float D=D_GGX(NdotH,alphaRoughness);return specularWeight*F*Vis*D;}`
94270
+ const BDRF2_glsl_default_ = /* glsl */ `#if defined(X3D_LIGHTING)
94271
+ const float M_PI=3.1415926535897932384626433832795;vec3 F_Schlick(vec3 f0,vec3 f90,float VdotH){return f0+(f90-f0)*pow(clamp(1.0-VdotH,0.0,1.0),5.0);}float V_GGX(float NdotL,float NdotV,float alphaRoughness){float alphaRoughnessSq=alphaRoughness*alphaRoughness;float GGXV=NdotL*sqrt(NdotV*NdotV*(1.0-alphaRoughnessSq)+alphaRoughnessSq);float GGXL=NdotV*sqrt(NdotL*NdotL*(1.0-alphaRoughnessSq)+alphaRoughnessSq);float GGX=GGXV+GGXL;if(GGX>0.0){return 0.5/GGX;}return 0.0;}float D_GGX(float NdotH,float alphaRoughness){float alphaRoughnessSq=alphaRoughness*alphaRoughness;float f=(NdotH*NdotH)*(alphaRoughnessSq-1.0)+1.0;return alphaRoughnessSq/(M_PI*f*f);}vec3 BRDF_lambertian(vec3 f0,vec3 f90,vec3 diffuseColor,float specularWeight,float VdotH){return(1.0-specularWeight*F_Schlick(f0,f90,VdotH))*(diffuseColor/M_PI);}vec3 BRDF_specularGGX(vec3 f0,vec3 f90,float alphaRoughness,float specularWeight,float VdotH,float NdotL,float NdotV,float NdotH){vec3 F=F_Schlick(f0,f90,VdotH);float Vis=V_GGX(NdotL,NdotV,alphaRoughness);float D=D_GGX(NdotH,alphaRoughness);return specularWeight*F*Vis*D;}
94272
+ #endif
94273
+ `
94261
94274
  ;
94262
94275
 
94263
94276
  x_ite_Namespace .add ("BDRF2.glsl", "assets/shaders/webgl2/pbr/BDRF2.glsl", BDRF2_glsl_default_);
94264
94277
  /* harmony default export */ const BDRF2_glsl = (BDRF2_glsl_default_);
94265
94278
  ;// CONCATENATED MODULE: ./src/assets/shaders/webgl2/pbr/IBL2.glsl.js
94266
94279
  const IBL2_glsl_default_ = /* glsl */ `#if defined(X3D_USE_IBL)
94267
- uniform x3d_EnvironmentLightSourceParameters x3d_EnvironmentLightSource;vec3 getDiffuseLight(const in vec3 n){return texture(x3d_EnvironmentLightSource.diffuseTexture,x3d_EnvironmentLightSource.rotation*n).rgb*x3d_EnvironmentLightSource.color*x3d_EnvironmentLightSource.intensity;}vec3 getSpecularLight(const in vec3 reflection,const in float lod){return textureLod(x3d_EnvironmentLightSource.specularTexture,x3d_EnvironmentLightSource.rotation*reflection,lod).rgb*x3d_EnvironmentLightSource.color*x3d_EnvironmentLightSource.intensity;}vec3 getIBLRadianceGGX(const in vec3 n,const in vec3 v,const in float roughness,const in vec3 F0,const in float specularWeight){float NdotV=clamp(dot(n,v),0.0,1.0);float lod=roughness*float(x3d_EnvironmentLightSource.specularTextureLevels-1);vec3 reflection=normalize(reflect(-v,n));vec2 brdfSamplePoint=clamp(vec2(NdotV,1.0-roughness),vec2(0.0),vec2(1.0));vec2 f_ab=texture(x3d_EnvironmentLightSource.GGXLUTTexture,brdfSamplePoint).rg;vec3 specularLight=getSpecularLight(reflection,lod);vec3 Fr=max(vec3(1.0-roughness),F0)-F0;vec3 k_S=F0+Fr*pow(1.0-NdotV,5.0);vec3 FssEss=k_S*f_ab.x+f_ab.y;return specularWeight*specularLight*FssEss;}vec3 getIBLRadianceLambertian(const in vec3 n,const in vec3 v,const in float roughness,const in vec3 diffuseColor,const in vec3 F0,const in float specularWeight){float NdotV=clamp(dot(n,v),0.0,1.0);vec2 brdfSamplePoint=clamp(vec2(NdotV,1.0-roughness),vec2(0.0),vec2(1.0));vec2 f_ab=texture(x3d_EnvironmentLightSource.GGXLUTTexture,brdfSamplePoint).rg;vec3 irradiance=getDiffuseLight(n);vec3 Fr=max(vec3(1.0-roughness),F0)-F0;vec3 k_S=F0+Fr*pow(1.0-NdotV,5.0);vec3 FssEss=specularWeight*k_S*f_ab.x+f_ab.y;float Ems=(1.0-(f_ab.x+f_ab.y));vec3 F_avg=specularWeight*(F0+(1.0-F0)/21.0);vec3 FmsEms=Ems*FssEss*F_avg/(1.0-F_avg*Ems);vec3 k_D=diffuseColor*(1.0-FssEss+FmsEms);return(FmsEms+k_D)*irradiance;}
94280
+ uniform x3d_EnvironmentLightSourceParameters x3d_EnvironmentLightSource;vec3 getDiffuseLight(const in vec3 n){vec3 textureColor=texture(x3d_EnvironmentLightSource.diffuseTexture,x3d_EnvironmentLightSource.rotation*n).rgb;if(!x3d_EnvironmentLightSource.diffuseTextureLinear)textureColor=sRGBToLinear(textureColor);return textureColor*x3d_EnvironmentLightSource.color*x3d_EnvironmentLightSource.intensity;}vec3 getSpecularLight(const in vec3 reflection,const in float lod){vec3 textureColor=textureLod(x3d_EnvironmentLightSource.specularTexture,x3d_EnvironmentLightSource.rotation*reflection,lod).rgb;if(!x3d_EnvironmentLightSource.specularTextureLinear)textureColor=sRGBToLinear(textureColor);return textureColor*x3d_EnvironmentLightSource.color*x3d_EnvironmentLightSource.intensity;}vec3 getIBLRadianceGGX(const in vec3 n,const in vec3 v,const in float roughness,const in vec3 F0,const in float specularWeight){float NdotV=clamp(dot(n,v),0.0,1.0);float lod=roughness*float(x3d_EnvironmentLightSource.specularTextureLevels-1);vec3 reflection=normalize(reflect(-v,n));vec2 brdfSamplePoint=clamp(vec2(NdotV,roughness),vec2(0.0),vec2(1.0));vec2 f_ab=texture(x3d_EnvironmentLightSource.GGXLUTTexture,brdfSamplePoint).rg;vec3 specularLight=getSpecularLight(reflection,lod);vec3 Fr=max(vec3(1.0-roughness),F0)-F0;vec3 k_S=F0+Fr*pow(1.0-NdotV,5.0);vec3 FssEss=k_S*f_ab.x+f_ab.y;return specularWeight*specularLight*FssEss;}vec3 getIBLRadianceLambertian(const in vec3 n,const in vec3 v,const in float roughness,const in vec3 diffuseColor,const in vec3 F0,const in float specularWeight){float NdotV=clamp(dot(n,v),0.0,1.0);vec2 brdfSamplePoint=clamp(vec2(NdotV,roughness),vec2(0.0),vec2(1.0));vec2 f_ab=texture(x3d_EnvironmentLightSource.GGXLUTTexture,brdfSamplePoint).rg;vec3 irradiance=getDiffuseLight(n);vec3 Fr=max(vec3(1.0-roughness),F0)-F0;vec3 k_S=F0+Fr*pow(1.0-NdotV,5.0);vec3 FssEss=specularWeight*k_S*f_ab.x+f_ab.y;float Ems=(1.0-(f_ab.x+f_ab.y));vec3 F_avg=specularWeight*(F0+(1.0-F0)/21.0);vec3 FmsEms=Ems*FssEss*F_avg/(1.0-F_avg*Ems);vec3 k_D=diffuseColor*(1.0-FssEss+FmsEms);return(FmsEms+k_D)*irradiance;}
94268
94281
  #endif
94269
94282
  `
94270
94283
  ;
@@ -94349,7 +94362,7 @@ return baseColor;}
94349
94362
  #if defined(X3D_METALLIC_ROUGHNESS_TEXTURE)
94350
94363
  uniform x3d_MetallicRoughnessTextureParameters x3d_MetallicRoughnessTexture;
94351
94364
  #endif
94352
- MaterialInfo getMetallicRoughnessInfo(MaterialInfo info){info.metallic=x3d_Material.metallic;info.perceptualRoughness=x3d_Material.roughness;
94365
+ MaterialInfo getMetallicRoughnessInfo(in MaterialInfo info){info.metallic=x3d_Material.metallic;info.perceptualRoughness=x3d_Material.roughness;
94353
94366
  #if defined(X3D_METALLIC_ROUGHNESS_TEXTURE)
94354
94367
  vec3 texCoord=getTexCoord(x3d_MetallicRoughnessTexture.textureTransformMapping,x3d_MetallicRoughnessTexture.textureCoordinateMapping);
94355
94368
  #if defined(X3D_METALLIC_ROUGHNESS_TEXTURE_FLIP_Y)
@@ -94388,7 +94401,7 @@ emissiveColor*=textureColor;
94388
94401
  emissiveColor*=sRGBToLinear(textureColor);
94389
94402
  #endif
94390
94403
  #endif
94391
- return emissiveColor.rgb;}
94404
+ return emissiveColor;}
94392
94405
  #if defined(X3D_OCCLUSION_TEXTURE)
94393
94406
  uniform x3d_OcclusionTextureParameters x3d_OcclusionTexture;
94394
94407
  #endif
@@ -94414,7 +94427,7 @@ return 1.0;
94414
94427
  x_ite_Namespace .add ("MaterialInfo2.glsl", "assets/shaders/webgl2/pbr/MaterialInfo2.glsl", MaterialInfo2_glsl_default_);
94415
94428
  /* harmony default export */ const MaterialInfo2_glsl = (MaterialInfo2_glsl_default_);
94416
94429
  ;// CONCATENATED MODULE: ./src/assets/shaders/webgl2/pbr/ToneMapping2.glsl.js
94417
- const ToneMapping2_glsl_default_ = /* glsl */ `const float exposure=1.0;const float GAMMA=2.2;const float INV_GAMMA=1.0/GAMMA;vec3 linearTosRGB(const in vec3 color){return pow(color,vec3(INV_GAMMA));}vec4 linearTosRGB(const in vec4 color){return vec4(linearTosRGB(color.rgb),color.a);}vec3 sRGBToLinear(const in vec3 color){return vec3(pow(color,vec3(GAMMA)));}vec4 sRGBToLinear(const in vec4 color){return vec4(sRGBToLinear(color.rgb),color.a);}
94430
+ const ToneMapping2_glsl_default_ = /* glsl */ `const float exposure=1.0;const float GAMMA=2.2;const float INV_GAMMA=1.0/GAMMA;vec3 linearTosRGB(const in vec3 color){return pow(color,vec3(INV_GAMMA));}vec4 linearTosRGB(const in vec4 color){return vec4(linearTosRGB(color.rgb),color.a);}vec3 sRGBToLinear(const in vec3 color){return pow(color,vec3(GAMMA));}vec4 sRGBToLinear(const in vec4 color){return vec4(sRGBToLinear(color.rgb),color.a);}
94418
94431
  #if defined(X3D_TONEMAP_ACES_NARKOWICZ)
94419
94432
  vec3 toneMapACES_Narkowicz(const in vec3 color){const float A=2.51;const float B=0.03;const float C=2.43;const float D=0.59;const float E=0.14;return clamp((color*(A*color+B))/(color*(C*color+D)+E),0.0,1.0);}
94420
94433
  #endif
@@ -94759,7 +94772,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
94759
94772
  x_ite_Namespace .add ("ShaderCompiler", "x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
94760
94773
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
94761
94774
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
94762
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(978);
94775
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(718);
94763
94776
  /*******************************************************************************
94764
94777
  *
94765
94778
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -95416,7 +95429,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
95416
95429
  x_ite_Namespace .add ("X3DAppearanceNode", "x_ite/Components/Shape/X3DAppearanceNode", X3DAppearanceNode_default_);
95417
95430
  /* harmony default export */ const Shape_X3DAppearanceNode = (X3DAppearanceNode_default_);
95418
95431
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
95419
- /* provided dependency */ var Appearance_$ = __webpack_require__(978);
95432
+ /* provided dependency */ var Appearance_$ = __webpack_require__(718);
95420
95433
  /*******************************************************************************
95421
95434
  *
95422
95435
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96340,7 +96353,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
96340
96353
 
96341
96354
  key += shapeNode .getAlphaMode ();
96342
96355
  key += this .getMaterialKey ();
96343
- key += renderObject .getLogarithmicDepthBuffer () ? 1 : 0;
96356
+ key += renderObject .getRenderBits () .toString (32); // 5 Bits
96344
96357
  key += shadows ? 1 : 0;
96345
96358
  key += fogNode ?.getFogType () ?? 0;
96346
96359
  key += shapeNode .getShapeKey ();
@@ -96356,7 +96369,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
96356
96369
  }
96357
96370
  else
96358
96371
  {
96359
- // Rubberband, X3DBackgroundNode, ParticleSystem
96372
+ // Rubberband, X3DBackgroundNode
96360
96373
 
96361
96374
  const { alphaMode, textureNode, objectsKeys } = geometryContext;
96362
96375
 
@@ -96391,7 +96404,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
96391
96404
  {
96392
96405
  const { renderObject, fogNode, shapeNode, appearanceNode, humanoidNode, objectsKeys, textureNode } = renderContext;
96393
96406
 
96394
- if (renderObject .getLogarithmicDepthBuffer ())
96407
+ if (renderObject .getRenderBits () .get (0))
96395
96408
  options .push ("X3D_LOGARITHMIC_DEPTH_BUFFER");
96396
96409
 
96397
96410
  switch (shapeNode .getAlphaMode ())
@@ -96410,7 +96423,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
96410
96423
  {
96411
96424
  options .push ("X3D_ALPHA_MODE_BLEND");
96412
96425
 
96413
- if (browser .getBrowserOption ("OrderIndependentTransparency"))
96426
+ if (renderObject .getRenderBits () .get (1))
96414
96427
  options .push ("X3D_ORDER_INDEPENDENT_TRANSPARENCY");
96415
96428
 
96416
96429
  break;
@@ -97940,6 +97953,10 @@ Object .assign (Object .setPrototypeOf (X3DShapeNode .prototype, Core_X3DChildNo
97940
97953
  {
97941
97954
  return this .alphaMode;
97942
97955
  },
97956
+ setAlphaMode (value)
97957
+ {
97958
+ this .alphaMode = value;
97959
+ },
97943
97960
  getAppearance ()
97944
97961
  {
97945
97962
  return this .appearanceNode;
@@ -97991,6 +98008,8 @@ Object .assign (Object .setPrototypeOf (X3DShapeNode .prototype, Core_X3DChildNo
97991
98008
  },
97992
98009
  set_transparent__ ()
97993
98010
  {
98011
+ // This function is overloaded in ParticleSystem!
98012
+
97994
98013
  const alphaMode = this .appearanceNode .getAlphaMode ();
97995
98014
 
97996
98015
  if (alphaMode === Shape_AlphaMode .AUTO)
@@ -98817,7 +98836,7 @@ const Components_Shape_default_ = {
98817
98836
  x_ite_Namespace .add ("Shape", "x_ite/Components/Shape", Components_Shape_default_);
98818
98837
  /* harmony default export */ const Components_Shape = (Components_Shape_default_);
98819
98838
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/X3DSoundProcessingNode.js
98820
- /* provided dependency */ var X3DSoundProcessingNode_$ = __webpack_require__(978);
98839
+ /* provided dependency */ var X3DSoundProcessingNode_$ = __webpack_require__(718);
98821
98840
  /*******************************************************************************
98822
98841
  *
98823
98842
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -99457,7 +99476,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
99457
99476
  x_ite_Namespace .add ("X3DSoundSourceNode", "x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
99458
99477
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
99459
99478
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
99460
- /* provided dependency */ var AudioClip_$ = __webpack_require__(978);
99479
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(718);
99461
99480
  /*******************************************************************************
99462
99481
  *
99463
99482
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -99759,7 +99778,7 @@ const X3DSoundNode_default_ = X3DSoundNode;
99759
99778
  x_ite_Namespace .add ("X3DSoundNode", "x_ite/Components/Sound/X3DSoundNode", X3DSoundNode_default_);
99760
99779
  /* harmony default export */ const Sound_X3DSoundNode = (X3DSoundNode_default_);
99761
99780
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/X3DSoundDestinationNode.js
99762
- /* provided dependency */ var X3DSoundDestinationNode_$ = __webpack_require__(978);
99781
+ /* provided dependency */ var X3DSoundDestinationNode_$ = __webpack_require__(718);
99763
99782
  /*******************************************************************************
99764
99783
  *
99765
99784
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -101409,7 +101428,7 @@ const ListenerPointSource_default_ = ListenerPointSource;
101409
101428
  x_ite_Namespace .add ("ListenerPointSource", "x_ite/Components/Sound/ListenerPointSource", ListenerPointSource_default_);
101410
101429
  /* harmony default export */ const Sound_ListenerPointSource = (ListenerPointSource_default_);
101411
101430
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/MicrophoneSource.js
101412
- /* provided dependency */ var MicrophoneSource_$ = __webpack_require__(978);
101431
+ /* provided dependency */ var MicrophoneSource_$ = __webpack_require__(718);
101413
101432
  /*******************************************************************************
101414
101433
  *
101415
101434
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -103078,8 +103097,8 @@ const GifMedia_default_ = GifMedia;
103078
103097
  x_ite_Namespace .add ("GifMedia", "x_ite/Browser/Texturing/GifMedia", GifMedia_default_);
103079
103098
  /* harmony default export */ const Texturing_GifMedia = (GifMedia_default_);
103080
103099
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
103081
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(978);
103082
- /* provided dependency */ var SuperGif = __webpack_require__(11);
103100
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(718);
103101
+ /* provided dependency */ var SuperGif = __webpack_require__(630);
103083
103102
  /*******************************************************************************
103084
103103
  *
103085
103104
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -104257,7 +104276,7 @@ const MultiTextureTransform_default_ = MultiTextureTransform;
104257
104276
  x_ite_Namespace .add ("MultiTextureTransform", "x_ite/Components/Texturing/MultiTextureTransform", MultiTextureTransform_default_);
104258
104277
  /* harmony default export */ const Texturing_MultiTextureTransform = (MultiTextureTransform_default_);
104259
104278
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/PixelTexture.js
104260
- /* provided dependency */ var PixelTexture_$ = __webpack_require__(978);
104279
+ /* provided dependency */ var PixelTexture_$ = __webpack_require__(718);
104261
104280
  /*******************************************************************************
104262
104281
  *
104263
104282
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -105683,63 +105702,6 @@ x_ite_Namespace .add ("Time", "x_ite/Components/Time", Time_default_);
105683
105702
 
105684
105703
 
105685
105704
 
105686
- const extensions = [
105687
- "ANGLE_instanced_arrays",
105688
- "EXT_blend_minmax",
105689
- "EXT_frag_depth",
105690
- "EXT_shader_texture_lod",
105691
- "EXT_texture_filter_anisotropic",
105692
- "OES_element_index_uint",
105693
- "OES_standard_derivatives",
105694
- "OES_texture_float",
105695
- "OES_texture_float_linear",
105696
- "OES_texture_half_float",
105697
- "OES_texture_half_float_linear",
105698
- "OES_vertex_array_object",
105699
- "WEBGL_compressed_texture_s3tc",
105700
- //"WEBGL_debug_renderer_info",
105701
- "WEBGL_debug_shaders",
105702
- "WEBGL_depth_texture",
105703
- "WEBGL_draw_buffers",
105704
- "WEBGL_lose_context",
105705
-
105706
- "EXT_color_buffer_float",
105707
- "EXT_color_buffer_half_float",
105708
- "EXT_disjoint_timer_query",
105709
- "EXT_disjoint_timer_query_webgl2",
105710
- "EXT_sRGB",
105711
- "WEBGL_color_buffer_float",
105712
- "WEBGL_compressed_texture_astc",
105713
- "WEBGL_compressed_texture_atc",
105714
- "WEBGL_compressed_texture_etc",
105715
- "WEBGL_compressed_texture_etc1",
105716
- "WEBGL_compressed_texture_pvrtc",
105717
- "WEBGL_compressed_texture_s3tc",
105718
- "WEBGL_compressed_texture_s3tc_srgb",
105719
-
105720
- "EXT_float_blend",
105721
- "OES_fbo_render_mipmap",
105722
- "WEBGL_get_buffer_sub_data_async",
105723
- "WEBGL_multiview",
105724
- "WEBGL_security_sensitive_resources",
105725
- "WEBGL_shared_resources",
105726
-
105727
- "EXT_clip_cull_distance",
105728
- "WEBGL_debug",
105729
- "WEBGL_dynamic_texture",
105730
- "WEBGL_subarray_uploads",
105731
- "WEBGL_texture_multisample",
105732
- "WEBGL_texture_source_iframe",
105733
- "WEBGL_video_texture",
105734
-
105735
- "EXT_texture_storage",
105736
- "OES_depth24",
105737
- "WEBGL_debug_shader_precision",
105738
- "WEBGL_draw_elements_no_range_check",
105739
- "WEBGL_subscribe_uniform",
105740
- "WEBGL_texture_from_depth_video",
105741
- ];
105742
-
105743
105705
  const Context =
105744
105706
  {
105745
105707
  create (canvas, version, preserveDrawingBuffer, mobile)
@@ -105781,7 +105743,7 @@ const Context =
105781
105743
 
105782
105744
  // Load extensions.
105783
105745
 
105784
- for (const extension of extensions)
105746
+ for (const extension of gl .getSupportedExtensions ())
105785
105747
  gl .getExtension (extension);
105786
105748
 
105787
105749
  // Feature detection:
@@ -105811,9 +105773,11 @@ const Context =
105811
105773
  {
105812
105774
  const
105813
105775
  color_buffer_float = gl .getExtension ("WEBGL_color_buffer_float"),
105814
- draw_buffers = gl .getExtension ("WEBGL_draw_buffers");
105776
+ draw_buffers = gl .getExtension ("WEBGL_draw_buffers"),
105777
+ sRGB = gl .getExtension ("EXT_sRGB");
105815
105778
 
105816
105779
  gl .RGBA32F = color_buffer_float .RGBA32F_EXT;
105780
+ gl .SRGB8_ALPHA8 = sRGB .SRGB_ALPHA_EXT;
105817
105781
  gl .MAX_COLOR_ATTACHMENTS = draw_buffers .MAX_COLOR_ATTACHMENTS_WEBGL;
105818
105782
  gl .drawBuffers = draw_buffers .drawBuffersWEBGL .bind (draw_buffers);
105819
105783
 
@@ -106413,7 +106377,7 @@ const gettext_default_ = gettext;
106413
106377
  x_ite_Namespace .add ("gettext", "locale/gettext", gettext_default_);
106414
106378
  /* harmony default export */ const locale_gettext = (gettext_default_);
106415
106379
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
106416
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(978);
106380
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(718);
106417
106381
  /*******************************************************************************
106418
106382
  *
106419
106383
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -106843,7 +106807,7 @@ const TextureQuality_default_ = TextureQuality;
106843
106807
  x_ite_Namespace .add ("TextureQuality", "x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
106844
106808
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
106845
106809
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
106846
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(978);
106810
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(718);
106847
106811
  /*******************************************************************************
106848
106812
  *
106849
106813
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107183,10 +107147,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107183
107147
  },
107184
107148
  set_orderIndependentTransparency__ ()
107185
107149
  {
107186
- const browser = this .getBrowser ();
107187
-
107188
- browser .getShaders () .clear ();
107189
- browser .reshape ();
107150
+ this .getBrowser () .reshape ();
107190
107151
  },
107191
107152
  set_timings__ (timings)
107192
107153
  {
@@ -107436,7 +107397,7 @@ const RenderingProperties_default_ = RenderingProperties;
107436
107397
  x_ite_Namespace .add ("RenderingProperties", "x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
107437
107398
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
107438
107399
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
107439
- /* provided dependency */ var Notification_$ = __webpack_require__(978);
107400
+ /* provided dependency */ var Notification_$ = __webpack_require__(718);
107440
107401
  /*******************************************************************************
107441
107402
  *
107442
107403
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107559,8 +107520,8 @@ const Notification_default_ = Notification;
107559
107520
  x_ite_Namespace .add ("Notification", "x_ite/Browser/Core/Notification", Notification_default_);
107560
107521
  /* harmony default export */ const Core_Notification = (Notification_default_);
107561
107522
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
107562
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(1);
107563
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(978);
107523
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(699);
107524
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(718);
107564
107525
  /*******************************************************************************
107565
107526
  *
107566
107527
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -110312,7 +110273,7 @@ const DataStorage_default_ = DataStorage;
110312
110273
  x_ite_Namespace .add ("DataStorage", "standard/Utility/DataStorage", DataStorage_default_);
110313
110274
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
110314
110275
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
110315
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(978);
110276
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(718);
110316
110277
  /*******************************************************************************
110317
110278
  *
110318
110279
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -112120,7 +112081,9 @@ Object .assign (X3DLightingContext .prototype,
112120
112081
  getGGXLUTTexture ()
112121
112082
  {
112122
112083
  this [_GGXLUTTexture] = new Texturing_ImageTexture (this .getPrivateScene ());
112123
- this [_GGXLUTTexture] ._url = [Networking_URLs .getLibraryURL ("lut_ggx.png")];
112084
+ this [_GGXLUTTexture] ._url = [Networking_URLs .getLibraryURL ("lut_ggx.png")];
112085
+ this [_GGXLUTTexture] ._repeatS = false;
112086
+ this [_GGXLUTTexture] ._repeatT = false;
112124
112087
  this [_GGXLUTTexture] .setup ();
112125
112088
 
112126
112089
  this .getGGXLUTTexture = function () { return this [_GGXLUTTexture]; };
@@ -112375,8 +112338,8 @@ const X3DViewer_default_ = X3DViewer;
112375
112338
  x_ite_Namespace .add ("X3DViewer", "x_ite/Browser/Navigation/X3DViewer", X3DViewer_default_);
112376
112339
  /* harmony default export */ const Navigation_X3DViewer = (X3DViewer_default_);
112377
112340
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
112378
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(436);
112379
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(978);
112341
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(801);
112342
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(718);
112380
112343
  /*******************************************************************************
112381
112344
  *
112382
112345
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113248,8 +113211,8 @@ const ExamineViewer_default_ = ExamineViewer;
113248
113211
  x_ite_Namespace .add ("ExamineViewer", "x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
113249
113212
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
113250
113213
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
113251
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(436);
113252
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(978);
113214
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(801);
113215
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(718);
113253
113216
  /*******************************************************************************
113254
113217
  *
113255
113218
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114258,8 +114221,8 @@ const FlyViewer_default_ = FlyViewer;
114258
114221
  x_ite_Namespace .add ("FlyViewer", "x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
114259
114222
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
114260
114223
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
114261
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(436);
114262
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(978);
114224
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(801);
114225
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(718);
114263
114226
  /*******************************************************************************
114264
114227
  *
114265
114228
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114590,8 +114553,8 @@ const NoneViewer_default_ = NoneViewer;
114590
114553
  x_ite_Namespace .add ("NoneViewer", "x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
114591
114554
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
114592
114555
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
114593
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(436);
114594
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(978);
114556
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(801);
114557
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(718);
114595
114558
  /*******************************************************************************
114596
114559
  *
114597
114560
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115730,8 +115693,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
115730
115693
  x_ite_Namespace .add ("X3DPickingContext", "x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
115731
115694
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
115732
115695
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
115733
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(436);
115734
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(978);
115696
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(801);
115697
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(718);
115735
115698
  /*******************************************************************************
115736
115699
  *
115737
115700
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116650,7 +116613,7 @@ function MultiSampleFrameBuffer (browser, width, height, samples, oit)
116650
116613
  const gl = browser .getContext ();
116651
116614
 
116652
116615
  if (gl .getVersion () === 1 || width === 0 || height === 0)
116653
- return Fallback;
116616
+ return new Fallback (browser, width, height, samples);
116654
116617
 
116655
116618
  this .browser = browser;
116656
116619
  this .context = gl;
@@ -116952,17 +116915,41 @@ Object .assign (MultiSampleFrameBuffer .prototype,
116952
116915
  },
116953
116916
  });
116954
116917
 
116955
- const Fallback = {
116956
- getWidth: Function .prototype,
116957
- getHeight: Function .prototype,
116958
- getSamples: Function .prototype,
116959
- getOIT: Function .prototype,
116960
- bind: Function .prototype,
116961
- clear: Function .prototype,
116918
+ function Fallback (browser, width, height, samples)
116919
+ {
116920
+ const gl = browser .getContext ();
116921
+
116922
+ this .browser = browser;
116923
+ this .context = gl;
116924
+ this .width = width;
116925
+ this .height = height;
116926
+ this .samples = samples;
116927
+ }
116928
+
116929
+ Object .assign (Fallback .prototype,
116930
+ {
116931
+ getWidth () { return this .width; },
116932
+ getHeight () { return this .height; },
116933
+ getSamples () { return this .samples; },
116934
+ getOIT () { return false; },
116935
+ bind ()
116936
+ {
116937
+ const { context: gl } = this;
116938
+
116939
+ gl .bindFramebuffer (gl .FRAMEBUFFER, null);
116940
+ },
116941
+ clear ()
116942
+ {
116943
+ const { context: gl } = this;
116944
+
116945
+ gl .clearColor (0, 0, 0, 1);
116946
+ gl .clear (gl .COLOR_BUFFER_BIT);
116947
+ gl .blendFuncSeparate (gl .ONE, gl .ONE, gl .ZERO, gl .ONE_MINUS_SRC_ALPHA);
116948
+ },
116962
116949
  blit: Function .prototype,
116963
116950
  compose: Function .prototype,
116964
116951
  dispose: Function .prototype,
116965
- };
116952
+ });
116966
116953
 
116967
116954
  const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
116968
116955
  ;
@@ -116970,7 +116957,7 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
116970
116957
  x_ite_Namespace .add ("MultiSampleFrameBuffer", "x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
116971
116958
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
116972
116959
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
116973
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(978);
116960
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(718);
116974
116961
  /*******************************************************************************
116975
116962
  *
116976
116963
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117873,7 +117860,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
117873
117860
  x_ite_Namespace .add ("X3DSoundContext", "x_ite/Browser/Sound/X3DSoundContext", X3DSoundContext_default_);
117874
117861
  /* harmony default export */ const Sound_X3DSoundContext = (X3DSoundContext_default_);
117875
117862
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
117876
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(978);
117863
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(718);
117877
117864
  const KTXDecoder_default_ = class KTXDecoder
117878
117865
  {
117879
117866
  constructor (gl, externalKtxlib, scriptDir)
@@ -117945,6 +117932,7 @@ const KTXDecoder_default_ = class KTXDecoder
117945
117932
  if (!texture)
117946
117933
  throw new Error ("Could not load KTX data");
117947
117934
 
117935
+ // https://stackoverflow.com/a/25640078/1818915
117948
117936
  texture .levels = 1 + Math .floor (Math .log2 (Math .max (ktxTexture .baseWidth, ktxTexture .baseHeight)));
117949
117937
  texture .baseWidth = ktxTexture .baseWidth;
117950
117938
  texture .baseHeight = ktxTexture .baseHeight;
@@ -118027,12 +118015,9 @@ const
118027
118015
  _texture2DUnitIndex = Symbol (),
118028
118016
  _texture3DUnitIndex = Symbol (),
118029
118017
  _textureCubeUnitIndex = Symbol (),
118030
- _defaultTexture2DBlack = Symbol (),
118031
- _defaultTexture2DWhite = Symbol (),
118032
- _defaultTexture3DBlack = Symbol (),
118033
- _defaultTexture3DWhite = Symbol (),
118034
- _defaultTextureCubeBlack = Symbol (),
118035
- _defaultTextureCubeWhite = Symbol (),
118018
+ _defaultTexture2D = Symbol (),
118019
+ _defaultTexture3D = Symbol (),
118020
+ _defaultTextureCube = Symbol (),
118036
118021
  _defaultTextureProperties = Symbol (),
118037
118022
  _defaultTextureTransform = Symbol (),
118038
118023
  _defaultTextureCoordinate = Symbol (),
@@ -118069,46 +118054,37 @@ Object .assign (X3DTexturingContext .prototype,
118069
118054
 
118070
118055
  // Default Texture 2D Unit
118071
118056
 
118072
- const defaultData = [new Uint8Array (4), new Uint8Array ([ 255, 255, 255, 255 ])];
118057
+ const defaultData = new Uint8Array ([ 255, 255, 255, 255 ]);
118073
118058
 
118074
- for (const [i, _defaultTexture2D] of [_defaultTexture2DBlack, _defaultTexture2DWhite] .entries ())
118075
- {
118076
- this [_defaultTexture2D] = gl .createTexture ();
118059
+ this [_defaultTexture2D] = gl .createTexture ();
118077
118060
 
118078
- gl .activeTexture (gl .TEXTURE0 + this [_texture2DUnits] [0]);
118079
- gl .bindTexture (gl .TEXTURE_2D, this [_defaultTexture2D]);
118080
- gl .texImage2D (gl .TEXTURE_2D, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData [i]);
118081
- }
118061
+ gl .activeTexture (gl .TEXTURE0 + this [_texture2DUnits] [0]);
118062
+ gl .bindTexture (gl .TEXTURE_2D, this [_defaultTexture2D]);
118063
+ gl .texImage2D (gl .TEXTURE_2D, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
118082
118064
 
118083
118065
  // Default Texture 3D Unit
118084
118066
 
118085
118067
  if (gl .getVersion () >= 2)
118086
118068
  {
118087
- for (const [i, _defaultTexture3D] of [_defaultTexture3DBlack, _defaultTexture3DWhite] .entries ())
118088
- {
118089
- this [_defaultTexture3D] = gl .createTexture ();
118069
+ this [_defaultTexture3D] = gl .createTexture ();
118090
118070
 
118091
- gl .activeTexture (gl .TEXTURE0 + this [_texture3DUnits] [0]);
118092
- gl .bindTexture (gl .TEXTURE_3D, this [_defaultTexture3D]);
118093
- gl .texImage3D (gl .TEXTURE_3D, 0, gl .RGBA, 1, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData [i]);
118094
- }
118071
+ gl .activeTexture (gl .TEXTURE0 + this [_texture3DUnits] [0]);
118072
+ gl .bindTexture (gl .TEXTURE_3D, this [_defaultTexture3D]);
118073
+ gl .texImage3D (gl .TEXTURE_3D, 0, gl .RGBA, 1, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
118095
118074
  }
118096
118075
 
118097
118076
  // Default Texture Cube Unit
118098
118077
 
118099
- for (const [i, _defaultTextureCube] of [_defaultTextureCubeBlack, _defaultTextureCubeWhite] .entries ())
118100
- {
118101
- this [_defaultTextureCube] = gl .createTexture ();
118078
+ this [_defaultTextureCube] = gl .createTexture ();
118102
118079
 
118103
- gl .activeTexture (gl .TEXTURE0 + this [_textureCubeUnits] [0]);
118104
- gl .bindTexture (gl .TEXTURE_CUBE_MAP, this [_defaultTextureCube]);
118105
- gl .texImage2D (gl .TEXTURE_CUBE_MAP_POSITIVE_Z, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData [i]);
118106
- gl .texImage2D (gl .TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData [i]);
118107
- gl .texImage2D (gl .TEXTURE_CUBE_MAP_NEGATIVE_X, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData [i]);
118108
- gl .texImage2D (gl .TEXTURE_CUBE_MAP_POSITIVE_X, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData [i]);
118109
- gl .texImage2D (gl .TEXTURE_CUBE_MAP_POSITIVE_Y, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData [i]);
118110
- gl .texImage2D (gl .TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData [i]);
118111
- }
118080
+ gl .activeTexture (gl .TEXTURE0 + this [_textureCubeUnits] [0]);
118081
+ gl .bindTexture (gl .TEXTURE_CUBE_MAP, this [_defaultTextureCube]);
118082
+ gl .texImage2D (gl .TEXTURE_CUBE_MAP_POSITIVE_Z, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
118083
+ gl .texImage2D (gl .TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
118084
+ gl .texImage2D (gl .TEXTURE_CUBE_MAP_NEGATIVE_X, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
118085
+ gl .texImage2D (gl .TEXTURE_CUBE_MAP_POSITIVE_X, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
118086
+ gl .texImage2D (gl .TEXTURE_CUBE_MAP_POSITIVE_Y, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
118087
+ gl .texImage2D (gl .TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
118112
118088
 
118113
118089
  // Init texture units.
118114
118090
 
@@ -118258,37 +118234,24 @@ Object .assign (X3DTexturingContext .prototype,
118258
118234
  {
118259
118235
  return NaN;
118260
118236
  },
118261
- getDefaultTexture2DBlack ()
118237
+ getDefaultTexture2D ()
118262
118238
  {
118263
- return this [_defaultTexture2DBlack];
118239
+ return this [_defaultTexture2D];
118264
118240
  },
118265
- getDefaultTexture2DWhite ()
118241
+ getDefaultTexture3D ()
118266
118242
  {
118267
- return this [_defaultTexture2DWhite];
118243
+ return this [_defaultTexture3D];
118268
118244
  },
118269
- getDefaultTexture3DBlack ()
118245
+ getDefaultTextureCube ()
118270
118246
  {
118271
- return this [_defaultTexture3DBlack];
118272
- },
118273
- getDefaultTexture3DWhite ()
118274
- {
118275
- return this [_defaultTexture3DWhite];
118276
- },
118277
- getDefaultTextureCubeBlack ()
118278
- {
118279
- return this [_defaultTextureCubeBlack];
118280
- },
118281
- getDefaultTextureCubeWhite ()
118282
- {
118283
- return this [_defaultTextureCubeWhite];
118247
+ return this [_defaultTextureCube];
118284
118248
  },
118285
118249
  getDefaultTextureProperties ()
118286
118250
  {
118287
118251
  this [_defaultTextureProperties] = new Texturing_TextureProperties (this .getPrivateScene ());
118288
- this [_defaultTextureProperties] ._magnificationFilter = "NICEST";
118289
- this [_defaultTextureProperties] ._minificationFilter = "NEAREST_PIXEL_AVG_MIPMAP";
118290
118252
  this [_defaultTextureProperties] ._generateMipMaps = true;
118291
- this [_defaultTextureProperties] ._textureCompression = "NICEST";
118253
+ this [_defaultTextureProperties] ._minificationFilter = "NICEST";
118254
+ this [_defaultTextureProperties] ._magnificationFilter = "NICEST";
118292
118255
 
118293
118256
  this [_defaultTextureProperties] .setup ();
118294
118257
 
@@ -119449,7 +119412,7 @@ const Components_default_ = Components;
119449
119412
  x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
119450
119413
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
119451
119414
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
119452
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(978);
119415
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(718);
119453
119416
  /*******************************************************************************
119454
119417
  * MIT License
119455
119418
  *
@@ -120588,7 +120551,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
120588
120551
  x_ite_Namespace .add ("SupportedProfiles", "x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
120589
120552
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
120590
120553
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
120591
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(978);
120554
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(718);
120592
120555
  /*******************************************************************************
120593
120556
  *
120594
120557
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -121669,7 +121632,7 @@ const X3DBrowser_default_ = X3DBrowser;
121669
121632
  x_ite_Namespace .add ("X3DBrowser", "x_ite/Browser/X3DBrowser", X3DBrowser_default_);
121670
121633
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
121671
121634
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
121672
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(978);
121635
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(718);
121673
121636
  /*******************************************************************************
121674
121637
  *
121675
121638
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -121801,8 +121764,8 @@ const X3DCanvasElement_default_ = X3DCanvasElement;
121801
121764
  x_ite_Namespace .add ("X3DCanvasElement", "x_ite/X3DCanvasElement", X3DCanvasElement_default_);
121802
121765
  /* harmony default export */ const x_ite_X3DCanvasElement = (X3DCanvasElement_default_);
121803
121766
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
121804
- /* provided dependency */ var jquery_$ = __webpack_require__(978);
121805
- /* provided dependency */ var pako = __webpack_require__(899);
121767
+ /* provided dependency */ var jquery_$ = __webpack_require__(718);
121768
+ /* provided dependency */ var pako = __webpack_require__(994);
121806
121769
  Object .assign (jquery_$,
121807
121770
  {
121808
121771
  decodeText (input)
@@ -121879,14 +121842,14 @@ const jquery_default_ = jquery_$;
121879
121842
  x_ite_Namespace .add ("jquery", "lib/jquery", jquery_default_);
121880
121843
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
121881
121844
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
121882
- /* provided dependency */ var libtess_libtess = __webpack_require__(728);
121845
+ /* provided dependency */ var libtess_libtess = __webpack_require__(89);
121883
121846
  const libtess_default_ = libtess_libtess;
121884
121847
  ;
121885
121848
 
121886
121849
  x_ite_Namespace .add ("libtess", "lib/libtess", libtess_default_);
121887
121850
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
121888
121851
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
121889
- /* provided dependency */ var X3D_$ = __webpack_require__(978);
121852
+ /* provided dependency */ var X3D_$ = __webpack_require__(718);
121890
121853
  /*******************************************************************************
121891
121854
  *
121892
121855
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -122280,7 +122243,7 @@ x_ite_Namespace .add ("shim", "shim", shim_default_);
122280
122243
 
122281
122244
  // Assign X3D to global namespace.
122282
122245
 
122283
- window [Symbol .for ("X_ITE.X3D-9.0.0")] = x_ite_X3D;
122246
+ window [Symbol .for ("X_ITE.X3D-9.0.2")] = x_ite_X3D;
122284
122247
 
122285
122248
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
122286
122249