x_ite 11.5.10 → 11.5.12

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 (57) hide show
  1. package/README.md +4 -4
  2. package/dist/X3DUOM.xml +2 -0
  3. package/dist/assets/components/AnnotationComponent.js +2 -378
  4. package/dist/assets/components/AnnotationComponent.min.js +2 -2
  5. package/dist/assets/components/CADGeometryComponent.js +2 -378
  6. package/dist/assets/components/CADGeometryComponent.min.js +2 -2
  7. package/dist/assets/components/CubeMapTexturingComponent.js +7 -336
  8. package/dist/assets/components/CubeMapTexturingComponent.min.js +2 -2
  9. package/dist/assets/components/DISComponent.js +2 -331
  10. package/dist/assets/components/DISComponent.min.js +2 -2
  11. package/dist/assets/components/EventUtilitiesComponent.js +2 -472
  12. package/dist/assets/components/EventUtilitiesComponent.min.js +2 -2
  13. package/dist/assets/components/Geometry2DComponent.js +2 -707
  14. package/dist/assets/components/Geometry2DComponent.min.js +2 -2
  15. package/dist/assets/components/GeospatialComponent.js +4 -897
  16. package/dist/assets/components/GeospatialComponent.min.js +2 -2
  17. package/dist/assets/components/HAnimComponent.js +83 -337
  18. package/dist/assets/components/HAnimComponent.min.js +2 -2
  19. package/dist/assets/components/KeyDeviceSensorComponent.js +2 -237
  20. package/dist/assets/components/KeyDeviceSensorComponent.min.js +2 -2
  21. package/dist/assets/components/LayoutComponent.js +2 -425
  22. package/dist/assets/components/LayoutComponent.min.js +2 -2
  23. package/dist/assets/components/NURBSComponent.js +3 -896
  24. package/dist/assets/components/NURBSComponent.min.js +2 -2
  25. package/dist/assets/components/ParticleSystemsComponent.js +26 -732
  26. package/dist/assets/components/ParticleSystemsComponent.min.js +2 -2
  27. package/dist/assets/components/PickingComponent.js +2 -566
  28. package/dist/assets/components/PickingComponent.min.js +2 -2
  29. package/dist/assets/components/RigidBodyPhysicsComponent.js +2 -942
  30. package/dist/assets/components/RigidBodyPhysicsComponent.min.js +2 -2
  31. package/dist/assets/components/ScriptingComponent.js +2 -190
  32. package/dist/assets/components/ScriptingComponent.min.js +2 -2
  33. package/dist/assets/components/TextComponent.js +2 -379
  34. package/dist/assets/components/TextComponent.min.js +2 -2
  35. package/dist/assets/components/TextureProjectionComponent.js +8 -196
  36. package/dist/assets/components/TextureProjectionComponent.min.js +2 -2
  37. package/dist/assets/components/Texturing3DComponent.js +3569 -4133
  38. package/dist/assets/components/Texturing3DComponent.min.js +2 -2
  39. package/dist/assets/components/VolumeRenderingComponent.js +11 -906
  40. package/dist/assets/components/VolumeRenderingComponent.min.js +2 -2
  41. package/dist/assets/components/WebXRComponent.js +5 -145
  42. package/dist/assets/components/WebXRComponent.min.js +2 -2
  43. package/dist/assets/components/X_ITEComponent.js +273 -901
  44. package/dist/assets/components/X_ITEComponent.min.js +2 -2
  45. package/dist/assets/fonts/PT_Sans/OFL.txt +94 -94
  46. package/dist/assets/lib/draco_decoder_gltf.js +1 -1
  47. package/dist/assets/lib/libktx.js +1 -1
  48. package/dist/assets/lib/libktx.wasm +0 -0
  49. package/dist/assets/lib/woff2_decoder.js +1 -1
  50. package/dist/example.html +1 -1
  51. package/dist/x_ite.css +1 -1
  52. package/dist/x_ite.js +50500 -70043
  53. package/dist/x_ite.min.js +2 -2
  54. package/dist/x_ite.min.mjs +2 -2
  55. package/dist/x_ite.mjs +50447 -69990
  56. package/dist/x_ite.zip +0 -0
  57. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
- /* X_ITE v11.5.10 */
2
- const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-11.5.10")];
1
+ /* X_ITE v11.5.12 */
2
+ const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-11.5.12")];
3
3
  /******/ (() => { // webpackBootstrap
4
4
  /******/ "use strict";
5
5
  /******/ // The require scope
@@ -64,53 +64,6 @@ var external_X_ITE_X3D_BitSet_default = /*#__PURE__*/__webpack_require__.n(exter
64
64
  const external_X_ITE_X3D_Namespace_namespaceObject = __X_ITE_X3D__ .Namespace;
65
65
  var external_X_ITE_X3D_Namespace_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Namespace_namespaceObject);
66
66
  ;// ./src/x_ite/Components/X_ITE/X3DMaterialExtensionNode.js
67
- /*******************************************************************************
68
- *
69
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
70
- *
71
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
72
- *
73
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
74
- *
75
- * The copyright notice above does not evidence any actual of intended
76
- * publication of such source code, and is an unpublished work by create3000.
77
- * This material contains CONFIDENTIAL INFORMATION that is the property of
78
- * create3000.
79
- *
80
- * No permission is granted to copy, distribute, or create derivative works from
81
- * the contents of this software, in whole or in part, without the prior written
82
- * permission of create3000.
83
- *
84
- * NON-MILITARY USE ONLY
85
- *
86
- * All create3000 software are effectively free software with a non-military use
87
- * restriction. It is free. Well commented source is provided. You may reuse the
88
- * source in any way you please with the exception anything that uses it must be
89
- * marked to indicate is contains 'non-military use only' components.
90
- *
91
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
92
- *
93
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
94
- *
95
- * This file is part of the X_ITE Project.
96
- *
97
- * X_ITE is free software: you can redistribute it and/or modify it under the
98
- * terms of the GNU General Public License version 3 only, as published by the
99
- * Free Software Foundation.
100
- *
101
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
102
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
103
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
104
- * details (a copy is included in the LICENSE file that accompanied this code).
105
- *
106
- * You should have received a copy of the GNU General Public License version 3
107
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
108
- * copy of the GPLv3 License.
109
- *
110
- * For Silvio, Joy and Adi.
111
- *
112
- ******************************************************************************/
113
-
114
67
 
115
68
 
116
69
 
@@ -149,122 +102,24 @@ const __default__ = X3DMaterialExtensionNode;
149
102
  const external_X_ITE_X3D_X3DCast_namespaceObject = __X_ITE_X3D__ .X3DCast;
150
103
  var external_X_ITE_X3D_X3DCast_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DCast_namespaceObject);
151
104
  ;// ./src/x_ite/Browser/X_ITE/ExtensionKeys.js
152
- /*******************************************************************************
153
- *
154
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
155
- *
156
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
157
- *
158
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
159
- *
160
- * The copyright notice above does not evidence any actual of intended
161
- * publication of such source code, and is an unpublished work by create3000.
162
- * This material contains CONFIDENTIAL INFORMATION that is the property of
163
- * create3000.
164
- *
165
- * No permission is granted to copy, distribute, or create derivative works from
166
- * the contents of this software, in whole or in part, without the prior written
167
- * permission of create3000.
168
- *
169
- * NON-MILITARY USE ONLY
170
- *
171
- * All create3000 software are effectively free software with a non-military use
172
- * restriction. It is free. Well commented source is provided. You may reuse the
173
- * source in any way you please with the exception anything that uses it must be
174
- * marked to indicate is contains 'non-military use only' components.
175
- *
176
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
177
- *
178
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
179
- *
180
- * This file is part of the X_ITE Project.
181
- *
182
- * X_ITE is free software: you can redistribute it and/or modify it under the
183
- * terms of the GNU General Public License version 3 only, as published by the
184
- * Free Software Foundation.
185
- *
186
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
187
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
188
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
189
- * details (a copy is included in the LICENSE file that accompanied this code).
190
- *
191
- * You should have received a copy of the GNU General Public License version 3
192
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
193
- * copy of the GPLv3 License.
194
- *
195
- * For Silvio, Joy and Adi.
196
- *
197
- ******************************************************************************/
198
-
199
105
  let i = 0;
200
106
 
201
107
  const ExtensionKeys =
202
108
  {
203
- ANISOTROPY_MATERIAL_EXTENSION: i ++,
204
- CLEARCOAT_MATERIAL_EXTENSION: i ++,
205
- DIFFUSE_TRANSMISSION_EXTENSION: i ++,
206
- DISPERSION_MATERIAL_EXTENSION: i ++,
207
- EMISSIVE_STRENGTH_MATERIAL_EXTENSION: i ++,
208
- IOR_MATERIAL_EXTENSION: i ++,
209
- IRIDESCENCE_MATERIAL_EXTENSION: i ++,
210
- SHEEN_MATERIAL_EXTENSION: i ++,
211
- SPECULAR_MATERIAL_EXTENSION: i ++,
212
- TRANSMISSION_MATERIAL_EXTENSION: i ++,
213
- UNLIT_MATERIAL_EXTENSION: i ++,
214
- VOLUME_MATERIAL_EXTENSION: i ++,
109
+ add (name)
110
+ {
111
+ this [name] = i ++;
112
+ },
215
113
  };
216
114
 
217
115
  const ExtensionKeys_default_ = ExtensionKeys;
218
116
  ;
219
117
 
220
118
  /* harmony default export */ const X_ITE_ExtensionKeys = (external_X_ITE_X3D_Namespace_default().add ("ExtensionKeys", ExtensionKeys_default_));
119
+ ;// external "__X_ITE_X3D__ .MaterialTextures"
120
+ const external_X_ITE_X3D_MaterialTextures_namespaceObject = __X_ITE_X3D__ .MaterialTextures;
121
+ var external_X_ITE_X3D_MaterialTextures_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_MaterialTextures_namespaceObject);
221
122
  ;// ./src/x_ite/Components/X_ITE/AnisotropyMaterialExtension.js
222
- /*******************************************************************************
223
- *
224
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
225
- *
226
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
227
- *
228
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
229
- *
230
- * The copyright notice above does not evidence any actual of intended
231
- * publication of such source code, and is an unpublished work by create3000.
232
- * This material contains CONFIDENTIAL INFORMATION that is the property of
233
- * create3000.
234
- *
235
- * No permission is granted to copy, distribute, or create derivative works from
236
- * the contents of this software, in whole or in part, without the prior written
237
- * permission of create3000.
238
- *
239
- * NON-MILITARY USE ONLY
240
- *
241
- * All create3000 software are effectively free software with a non-military use
242
- * restriction. It is free. Well commented source is provided. You may reuse the
243
- * source in any way you please with the exception anything that uses it must be
244
- * marked to indicate is contains 'non-military use only' components.
245
- *
246
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
247
- *
248
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
249
- *
250
- * This file is part of the X_ITE Project.
251
- *
252
- * X_ITE is free software: you can redistribute it and/or modify it under the
253
- * terms of the GNU General Public License version 3 only, as published by the
254
- * Free Software Foundation.
255
- *
256
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
257
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
258
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
259
- * details (a copy is included in the LICENSE file that accompanied this code).
260
- *
261
- * You should have received a copy of the GNU General Public License version 3
262
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
263
- * copy of the GPLv3 License.
264
- *
265
- * For Silvio, Joy and Adi.
266
- *
267
- ******************************************************************************/
268
123
 
269
124
 
270
125
 
@@ -274,6 +129,15 @@ const ExtensionKeys_default_ = ExtensionKeys;
274
129
 
275
130
 
276
131
 
132
+ // Register key.
133
+
134
+ X_ITE_ExtensionKeys .add ("ANISOTROPY_MATERIAL_EXTENSION");
135
+
136
+ // Register textures.
137
+
138
+
139
+
140
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_AnisotropyTextureEXT");
277
141
 
278
142
  /**
279
143
  * THIS NODE IS STILL EXPERIMENTAL.
@@ -288,7 +152,7 @@ function AnisotropyMaterialExtension (executionContext)
288
152
  // Units
289
153
 
290
154
  this ._anisotropyRotation .setUnit ("angle");
291
-
155
+
292
156
  // Private properties
293
157
 
294
158
  this .anisotropyArray = new Float32Array (3);
@@ -340,6 +204,10 @@ Object .assign (Object .setPrototypeOf (AnisotropyMaterialExtension .prototype,
340
204
 
341
205
  this .anisotropyTextureNode ?.getShaderOptions (options, "ANISOTROPY", true);
342
206
  },
207
+ getShaderUniforms (uniforms)
208
+ {
209
+ uniforms .push ("x3d_AnisotropyEXT");
210
+ },
343
211
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
344
212
  {
345
213
  gl .uniform3fv (shaderObject .x3d_AnisotropyEXT, this .anisotropyArray);
@@ -378,53 +246,6 @@ const AnisotropyMaterialExtension_default_ = AnisotropyMaterialExtension;
378
246
  const external_X_ITE_X3D_X3DAppearanceChildNode_namespaceObject = __X_ITE_X3D__ .X3DAppearanceChildNode;
379
247
  var external_X_ITE_X3D_X3DAppearanceChildNode_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DAppearanceChildNode_namespaceObject);
380
248
  ;// ./src/x_ite/Components/X_ITE/BlendMode.js
381
- /*******************************************************************************
382
- *
383
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
384
- *
385
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
386
- *
387
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
388
- *
389
- * The copyright notice above does not evidence any actual of intended
390
- * publication of such source code, and is an unpublished work by create3000.
391
- * This material contains CONFIDENTIAL INFORMATION that is the property of
392
- * create3000.
393
- *
394
- * No permission is granted to copy, distribute, or create derivative works from
395
- * the contents of this software, in whole or in part, without the prior written
396
- * permission of create3000.
397
- *
398
- * NON-MILITARY USE ONLY
399
- *
400
- * All create3000 software are effectively free software with a non-military use
401
- * restriction. It is free. Well commented source is provided. You may reuse the
402
- * source in any way you please with the exception anything that uses it must be
403
- * marked to indicate is contains 'non-military use only' components.
404
- *
405
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
406
- *
407
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
408
- *
409
- * This file is part of the X_ITE Project.
410
- *
411
- * X_ITE is free software: you can redistribute it and/or modify it under the
412
- * terms of the GNU General Public License version 3 only, as published by the
413
- * Free Software Foundation.
414
- *
415
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
416
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
417
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
418
- * details (a copy is included in the LICENSE file that accompanied this code).
419
- *
420
- * You should have received a copy of the GNU General Public License version 3
421
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
422
- * copy of the GPLv3 License.
423
- *
424
- * For Silvio, Joy and Adi.
425
- *
426
- ******************************************************************************/
427
-
428
249
 
429
250
 
430
251
 
@@ -564,52 +385,6 @@ const BlendMode_default_ = BlendMode;
564
385
  const external_X_ITE_X3D_Algorithm_namespaceObject = __X_ITE_X3D__ .Algorithm;
565
386
  var external_X_ITE_X3D_Algorithm_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Algorithm_namespaceObject);
566
387
  ;// ./src/x_ite/Components/X_ITE/ClearcoatMaterialExtension.js
567
- /*******************************************************************************
568
- *
569
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
570
- *
571
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
572
- *
573
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
574
- *
575
- * The copyright notice above does not evidence any actual of intended
576
- * publication of such source code, and is an unpublished work by create3000.
577
- * This material contains CONFIDENTIAL INFORMATION that is the property of
578
- * create3000.
579
- *
580
- * No permission is granted to copy, distribute, or create derivative works from
581
- * the contents of this software, in whole or in part, without the prior written
582
- * permission of create3000.
583
- *
584
- * NON-MILITARY USE ONLY
585
- *
586
- * All create3000 software are effectively free software with a non-military use
587
- * restriction. It is free. Well commented source is provided. You may reuse the
588
- * source in any way you please with the exception anything that uses it must be
589
- * marked to indicate is contains 'non-military use only' components.
590
- *
591
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
592
- *
593
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
594
- *
595
- * This file is part of the X_ITE Project.
596
- *
597
- * X_ITE is free software: you can redistribute it and/or modify it under the
598
- * terms of the GNU General Public License version 3 only, as published by the
599
- * Free Software Foundation.
600
- *
601
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
602
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
603
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
604
- * details (a copy is included in the LICENSE file that accompanied this code).
605
- *
606
- * You should have received a copy of the GNU General Public License version 3
607
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
608
- * copy of the GPLv3 License.
609
- *
610
- * For Silvio, Joy and Adi.
611
- *
612
- ******************************************************************************/
613
388
 
614
389
 
615
390
 
@@ -620,6 +395,17 @@ var external_X_ITE_X3D_Algorithm_default = /*#__PURE__*/__webpack_require__.n(ex
620
395
 
621
396
 
622
397
 
398
+ // Register key.
399
+
400
+ X_ITE_ExtensionKeys .add ("CLEARCOAT_MATERIAL_EXTENSION");
401
+
402
+ // Register textures.
403
+
404
+
405
+
406
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_ClearcoatTextureEXT");
407
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_ClearcoatRoughnessTextureEXT");
408
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_ClearcoatNormalTextureEXT");
623
409
 
624
410
  /**
625
411
  * THIS NODE IS STILL EXPERIMENTAL.
@@ -693,6 +479,11 @@ Object .assign (Object .setPrototypeOf (ClearcoatMaterialExtension .prototype, X
693
479
  this .clearcoatRoughnessTextureNode ?.getShaderOptions (options, "CLEARCOAT_ROUGHNESS", true);
694
480
  this .clearcoatNormalTextureNode ?.getShaderOptions (options, "CLEARCOAT_NORMAL", true);
695
481
  },
482
+ getShaderUniforms (uniforms)
483
+ {
484
+ uniforms .push ("x3d_ClearcoatEXT");
485
+ uniforms .push ("x3d_ClearcoatRoughnessEXT");
486
+ },
696
487
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
697
488
  {
698
489
  gl .uniform1f (shaderObject .x3d_ClearcoatEXT, this .clearcoat);
@@ -752,53 +543,6 @@ const ClearcoatMaterialExtension_default_ = ClearcoatMaterialExtension;
752
543
 
753
544
  /* harmony default export */ const X_ITE_ClearcoatMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("ClearcoatMaterialExtension", ClearcoatMaterialExtension_default_));
754
545
  ;// ./src/x_ite/Components/X_ITE/DepthMode.js
755
- /*******************************************************************************
756
- *
757
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
758
- *
759
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
760
- *
761
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
762
- *
763
- * The copyright notice above does not evidence any actual of intended
764
- * publication of such source code, and is an unpublished work by create3000.
765
- * This material contains CONFIDENTIAL INFORMATION that is the property of
766
- * create3000.
767
- *
768
- * No permission is granted to copy, distribute, or create derivative works from
769
- * the contents of this software, in whole or in part, without the prior written
770
- * permission of create3000.
771
- *
772
- * NON-MILITARY USE ONLY
773
- *
774
- * All create3000 software are effectively free software with a non-military use
775
- * restriction. It is free. Well commented source is provided. You may reuse the
776
- * source in any way you please with the exception anything that uses it must be
777
- * marked to indicate is contains 'non-military use only' components.
778
- *
779
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
780
- *
781
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
782
- *
783
- * This file is part of the X_ITE Project.
784
- *
785
- * X_ITE is free software: you can redistribute it and/or modify it under the
786
- * terms of the GNU General Public License version 3 only, as published by the
787
- * Free Software Foundation.
788
- *
789
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
790
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
791
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
792
- * details (a copy is included in the LICENSE file that accompanied this code).
793
- *
794
- * You should have received a copy of the GNU General Public License version 3
795
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
796
- * copy of the GPLv3 License.
797
- *
798
- * For Silvio, Joy and Adi.
799
- *
800
- ******************************************************************************/
801
-
802
546
 
803
547
 
804
548
 
@@ -903,52 +647,6 @@ const DepthMode_default_ = DepthMode;
903
647
 
904
648
  /* harmony default export */ const X_ITE_DepthMode = (external_X_ITE_X3D_Namespace_default().add ("DepthMode", DepthMode_default_));
905
649
  ;// ./src/x_ite/Components/X_ITE/DiffuseTransmissionMaterialExtension.js
906
- /*******************************************************************************
907
- *
908
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
909
- *
910
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
911
- *
912
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
913
- *
914
- * The copyright notice above does not evidence any actual of intended
915
- * publication of such source code, and is an unpublished work by create3000.
916
- * This material contains CONFIDENTIAL INFORMATION that is the property of
917
- * create3000.
918
- *
919
- * No permission is granted to copy, distribute, or create derivative works from
920
- * the contents of this software, in whole or in part, without the prior written
921
- * permission of create3000.
922
- *
923
- * NON-MILITARY USE ONLY
924
- *
925
- * All create3000 software are effectively free software with a non-military use
926
- * restriction. It is free. Well commented source is provided. You may reuse the
927
- * source in any way you please with the exception anything that uses it must be
928
- * marked to indicate is contains 'non-military use only' components.
929
- *
930
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
931
- *
932
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
933
- *
934
- * This file is part of the X_ITE Project.
935
- *
936
- * X_ITE is free software: you can redistribute it and/or modify it under the
937
- * terms of the GNU General Public License version 3 only, as published by the
938
- * Free Software Foundation.
939
- *
940
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
941
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
942
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
943
- * details (a copy is included in the LICENSE file that accompanied this code).
944
- *
945
- * You should have received a copy of the GNU General Public License version 3
946
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
947
- * copy of the GPLv3 License.
948
- *
949
- * For Silvio, Joy and Adi.
950
- *
951
- ******************************************************************************/
952
650
 
953
651
 
954
652
 
@@ -959,6 +657,17 @@ const DepthMode_default_ = DepthMode;
959
657
 
960
658
 
961
659
 
660
+ // Register key.
661
+
662
+ X_ITE_ExtensionKeys .add ("DIFFUSE_TRANSMISSION_MATERIAL_EXTENSION");
663
+
664
+ // Register textures.
665
+
666
+
667
+
668
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_DiffuseTransmissionTextureEXT");
669
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_DiffuseTransmissionColorTextureEXT");
670
+
962
671
  /**
963
672
  * THIS NODE IS STILL EXPERIMENTAL.
964
673
  */
@@ -990,7 +699,7 @@ Object .assign (Object .setPrototypeOf (DiffuseTransmissionMaterialExtension .pr
990
699
  },
991
700
  set_diffuseTransmission__ ()
992
701
  {
993
- this .diffuseTransmission = Math .max (this ._diffuseTransmission .getValue (), 0);
702
+ this .diffuseTransmission = external_X_ITE_X3D_Algorithm_default().clamp (this ._diffuseTransmission .getValue (), 0, 1);
994
703
  },
995
704
  set_diffuseTransmissionTexture__ ()
996
705
  {
@@ -1010,7 +719,7 @@ Object .assign (Object .setPrototypeOf (DiffuseTransmissionMaterialExtension .pr
1010
719
  },
1011
720
  getExtensionKey ()
1012
721
  {
1013
- return X_ITE_ExtensionKeys .DIFFUSE_TRANSMISSION_EXTENSION;
722
+ return X_ITE_ExtensionKeys .DIFFUSE_TRANSMISSION_MATERIAL_EXTENSION;
1014
723
  },
1015
724
  getShaderOptions (options)
1016
725
  {
@@ -1024,6 +733,11 @@ Object .assign (Object .setPrototypeOf (DiffuseTransmissionMaterialExtension .pr
1024
733
  this .diffuseTransmissionTextureNode ?.getShaderOptions (options, "DIFFUSE_TRANSMISSION", true);
1025
734
  this .diffuseTransmissionColorTextureNode ?.getShaderOptions (options, "DIFFUSE_TRANSMISSION_COLOR", true);
1026
735
  },
736
+ getShaderUniforms (uniforms)
737
+ {
738
+ uniforms .push ("x3d_DiffuseTransmissionEXT");
739
+ uniforms .push ("x3d_DiffuseTransmissionColorEXT");
740
+ },
1027
741
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1028
742
  {
1029
743
  gl .uniform1f (shaderObject .x3d_DiffuseTransmissionEXT, this .diffuseTransmission);
@@ -1073,52 +787,6 @@ const DiffuseTransmissionMaterialExtension_default_ = DiffuseTransmissionMateria
1073
787
 
1074
788
  /* harmony default export */ const X_ITE_DiffuseTransmissionMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("DiffuseTransmissionMaterialExtension", DiffuseTransmissionMaterialExtension_default_));
1075
789
  ;// ./src/x_ite/Components/X_ITE/DispersionMaterialExtension.js
1076
- /*******************************************************************************
1077
- *
1078
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1079
- *
1080
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1081
- *
1082
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1083
- *
1084
- * The copyright notice above does not evidence any actual of intended
1085
- * publication of such source code, and is an unpublished work by create3000.
1086
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1087
- * create3000.
1088
- *
1089
- * No permission is granted to copy, distribute, or create derivative works from
1090
- * the contents of this software, in whole or in part, without the prior written
1091
- * permission of create3000.
1092
- *
1093
- * NON-MILITARY USE ONLY
1094
- *
1095
- * All create3000 software are effectively free software with a non-military use
1096
- * restriction. It is free. Well commented source is provided. You may reuse the
1097
- * source in any way you please with the exception anything that uses it must be
1098
- * marked to indicate is contains 'non-military use only' components.
1099
- *
1100
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1101
- *
1102
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1103
- *
1104
- * This file is part of the X_ITE Project.
1105
- *
1106
- * X_ITE is free software: you can redistribute it and/or modify it under the
1107
- * terms of the GNU General Public License version 3 only, as published by the
1108
- * Free Software Foundation.
1109
- *
1110
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1111
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1112
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1113
- * details (a copy is included in the LICENSE file that accompanied this code).
1114
- *
1115
- * You should have received a copy of the GNU General Public License version 3
1116
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1117
- * copy of the GPLv3 License.
1118
- *
1119
- * For Silvio, Joy and Adi.
1120
- *
1121
- ******************************************************************************/
1122
790
 
1123
791
 
1124
792
 
@@ -1127,6 +795,9 @@ const DiffuseTransmissionMaterialExtension_default_ = DiffuseTransmissionMateria
1127
795
 
1128
796
 
1129
797
 
798
+ // Register key.
799
+
800
+ X_ITE_ExtensionKeys .add ("DISPERSION_MATERIAL_EXTENSION");
1130
801
 
1131
802
  /**
1132
803
  * THIS NODE IS STILL EXPERIMENTAL.
@@ -1161,6 +832,10 @@ Object .assign (Object .setPrototypeOf (DispersionMaterialExtension .prototype,
1161
832
  {
1162
833
  options .push ("X3D_DISPERSION_MATERIAL_EXT");
1163
834
  },
835
+ getShaderUniforms (uniforms)
836
+ {
837
+ uniforms .push ("x3d_DispersionEXT");
838
+ },
1164
839
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1165
840
  {
1166
841
  gl .uniform1f (shaderObject .x3d_DispersionEXT, this .dispersion);
@@ -1185,52 +860,6 @@ const DispersionMaterialExtension_default_ = DispersionMaterialExtension;
1185
860
 
1186
861
  /* harmony default export */ const X_ITE_DispersionMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("DispersionMaterialExtension", DispersionMaterialExtension_default_));
1187
862
  ;// ./src/x_ite/Components/X_ITE/EmissiveStrengthMaterialExtension.js
1188
- /*******************************************************************************
1189
- *
1190
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1191
- *
1192
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1193
- *
1194
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1195
- *
1196
- * The copyright notice above does not evidence any actual of intended
1197
- * publication of such source code, and is an unpublished work by create3000.
1198
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1199
- * create3000.
1200
- *
1201
- * No permission is granted to copy, distribute, or create derivative works from
1202
- * the contents of this software, in whole or in part, without the prior written
1203
- * permission of create3000.
1204
- *
1205
- * NON-MILITARY USE ONLY
1206
- *
1207
- * All create3000 software are effectively free software with a non-military use
1208
- * restriction. It is free. Well commented source is provided. You may reuse the
1209
- * source in any way you please with the exception anything that uses it must be
1210
- * marked to indicate is contains 'non-military use only' components.
1211
- *
1212
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1213
- *
1214
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1215
- *
1216
- * This file is part of the X_ITE Project.
1217
- *
1218
- * X_ITE is free software: you can redistribute it and/or modify it under the
1219
- * terms of the GNU General Public License version 3 only, as published by the
1220
- * Free Software Foundation.
1221
- *
1222
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1223
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1224
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1225
- * details (a copy is included in the LICENSE file that accompanied this code).
1226
- *
1227
- * You should have received a copy of the GNU General Public License version 3
1228
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1229
- * copy of the GPLv3 License.
1230
- *
1231
- * For Silvio, Joy and Adi.
1232
- *
1233
- ******************************************************************************/
1234
863
 
1235
864
 
1236
865
 
@@ -1239,6 +868,9 @@ const DispersionMaterialExtension_default_ = DispersionMaterialExtension;
1239
868
 
1240
869
 
1241
870
 
871
+ // Register key.
872
+
873
+ X_ITE_ExtensionKeys .add ("EMISSIVE_STRENGTH_MATERIAL_EXTENSION");
1242
874
 
1243
875
  /**
1244
876
  * THIS NODE IS STILL EXPERIMENTAL.
@@ -1273,6 +905,10 @@ Object .assign (Object .setPrototypeOf (EmissiveStrengthMaterialExtension .proto
1273
905
  {
1274
906
  options .push ("X3D_EMISSIVE_STRENGTH_MATERIAL_EXT");
1275
907
  },
908
+ getShaderUniforms (uniforms)
909
+ {
910
+ uniforms .push ("x3d_EmissiveStrengthEXT");
911
+ },
1276
912
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1277
913
  {
1278
914
  gl .uniform1f (shaderObject .x3d_EmissiveStrengthEXT, this .emissiveStrength);
@@ -1309,53 +945,6 @@ var external_X_ITE_X3D_Matrix4_default = /*#__PURE__*/__webpack_require__.n(exte
1309
945
  const external_X_ITE_X3D_Box3_namespaceObject = __X_ITE_X3D__ .Box3;
1310
946
  var external_X_ITE_X3D_Box3_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Box3_namespaceObject);
1311
947
  ;// ./src/x_ite/Components/X_ITE/InstancedShape.js
1312
- /*******************************************************************************
1313
- *
1314
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1315
- *
1316
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1317
- *
1318
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1319
- *
1320
- * The copyright notice above does not evidence any actual of intended
1321
- * publication of such source code, and is an unpublished work by create3000.
1322
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1323
- * create3000.
1324
- *
1325
- * No permission is granted to copy, distribute, or create derivative works from
1326
- * the contents of this software, in whole or in part, without the prior written
1327
- * permission of create3000.
1328
- *
1329
- * NON-MILITARY USE ONLY
1330
- *
1331
- * All create3000 software are effectively free software with a non-military use
1332
- * restriction. It is free. Well commented source is provided. You may reuse the
1333
- * source in any way you please with the exception anything that uses it must be
1334
- * marked to indicate is contains 'non-military use only' components.
1335
- *
1336
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1337
- *
1338
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1339
- *
1340
- * This file is part of the X_ITE Project.
1341
- *
1342
- * X_ITE is free software: you can redistribute it and/or modify it under the
1343
- * terms of the GNU General Public License version 3 only, as published by the
1344
- * Free Software Foundation.
1345
- *
1346
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1347
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1348
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1349
- * details (a copy is included in the LICENSE file that accompanied this code).
1350
- *
1351
- * You should have received a copy of the GNU General Public License version 3
1352
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1353
- * copy of the GPLv3 License.
1354
- *
1355
- * For Silvio, Joy and Adi.
1356
- *
1357
- ******************************************************************************/
1358
-
1359
948
 
1360
949
 
1361
950
 
@@ -1555,52 +1144,6 @@ const InstancedShape_default_ = InstancedShape;
1555
1144
 
1556
1145
  /* harmony default export */ const X_ITE_InstancedShape = (external_X_ITE_X3D_Namespace_default().add ("InstancedShape", InstancedShape_default_));
1557
1146
  ;// ./src/x_ite/Components/X_ITE/IORMaterialExtension.js
1558
- /*******************************************************************************
1559
- *
1560
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1561
- *
1562
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1563
- *
1564
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1565
- *
1566
- * The copyright notice above does not evidence any actual of intended
1567
- * publication of such source code, and is an unpublished work by create3000.
1568
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1569
- * create3000.
1570
- *
1571
- * No permission is granted to copy, distribute, or create derivative works from
1572
- * the contents of this software, in whole or in part, without the prior written
1573
- * permission of create3000.
1574
- *
1575
- * NON-MILITARY USE ONLY
1576
- *
1577
- * All create3000 software are effectively free software with a non-military use
1578
- * restriction. It is free. Well commented source is provided. You may reuse the
1579
- * source in any way you please with the exception anything that uses it must be
1580
- * marked to indicate is contains 'non-military use only' components.
1581
- *
1582
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1583
- *
1584
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1585
- *
1586
- * This file is part of the X_ITE Project.
1587
- *
1588
- * X_ITE is free software: you can redistribute it and/or modify it under the
1589
- * terms of the GNU General Public License version 3 only, as published by the
1590
- * Free Software Foundation.
1591
- *
1592
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1593
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1594
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1595
- * details (a copy is included in the LICENSE file that accompanied this code).
1596
- *
1597
- * You should have received a copy of the GNU General Public License version 3
1598
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1599
- * copy of the GPLv3 License.
1600
- *
1601
- * For Silvio, Joy and Adi.
1602
- *
1603
- ******************************************************************************/
1604
1147
 
1605
1148
 
1606
1149
 
@@ -1609,6 +1152,9 @@ const InstancedShape_default_ = InstancedShape;
1609
1152
 
1610
1153
 
1611
1154
 
1155
+ // Register key.
1156
+
1157
+ X_ITE_ExtensionKeys .add ("IOR_MATERIAL_EXTENSION");
1612
1158
 
1613
1159
  /**
1614
1160
  * THIS NODE IS STILL EXPERIMENTAL.
@@ -1643,6 +1189,10 @@ Object .assign (Object .setPrototypeOf (IORMaterialExtension .prototype, X_ITE_X
1643
1189
  {
1644
1190
  options .push ("X3D_IOR_MATERIAL_EXT");
1645
1191
  },
1192
+ getShaderUniforms (uniforms)
1193
+ {
1194
+ uniforms .push ("x3d_IorEXT");
1195
+ },
1646
1196
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1647
1197
  {
1648
1198
  gl .uniform1f (shaderObject .x3d_IorEXT, this .indexOfRefraction);
@@ -1666,53 +1216,19 @@ const IORMaterialExtension_default_ = IORMaterialExtension;
1666
1216
  ;
1667
1217
 
1668
1218
  /* harmony default export */ const X_ITE_IORMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("IORMaterialExtension", IORMaterialExtension_default_));
1219
+ ;// external "__X_ITE_X3D__ .ShaderRegistry"
1220
+ const external_X_ITE_X3D_ShaderRegistry_namespaceObject = __X_ITE_X3D__ .ShaderRegistry;
1221
+ var external_X_ITE_X3D_ShaderRegistry_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_ShaderRegistry_namespaceObject);
1222
+ ;// ./src/assets/shaders/webgl2/pbr/Iridescence2.glsl.js
1223
+ const Iridescence2_glsl_default_ = () => /* glsl */ `
1224
+ #if defined(X3D_IRIDESCENCE_MATERIAL_EXT)
1225
+ const mat3 XYZ_TO_REC709=mat3(3.2404542,-.9692660,.0556434,-1.5371385,1.8760108,-.2040259,-.4985314,.0415560,1.0572252);float sq(const in float v){return v*v;}vec3 sq(const in vec3 v){return v*v;}vec3 Fresnel0ToIor(const in vec3 fresnel0){vec3 sqrtF0=sqrt(fresnel0);return(vec3(1)+sqrtF0)/(vec3(1)-sqrtF0);}vec3 IorToFresnel0(const in vec3 transmittedIor,const in float incidentIor){return sq((transmittedIor-vec3(incidentIor))/(transmittedIor+vec3(incidentIor)));}float IorToFresnel0(const in float transmittedIor,const in float incidentIor){return sq((transmittedIor-incidentIor)/(transmittedIor+incidentIor));}vec3 evalSensitivity(const in float OPD,const in vec3 shift){float phase=2.*M_PI*OPD*1.0e-9;vec3 val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);vec3 pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);vec3 var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);vec3 xyz=val*sqrt(2.*M_PI*var)*cos(pos*phase+shift)*exp(-sq(phase)*var);xyz.x+=9.7470e-14*sqrt(2.*M_PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*sq(phase));xyz/=1.0685e-7;vec3 srgb=XYZ_TO_REC709*xyz;return srgb;}vec3 evalIridescence(const in float outsideIOR,const in float eta2,const in float cosTheta1,const in float thinFilmThickness,const in vec3 baseF0){vec3 I;float iridescenceIor=mix(outsideIOR,eta2,smoothstep(0.,.03,thinFilmThickness));float sinTheta2Sq=sq(outsideIOR/iridescenceIor)*(1.-sq(cosTheta1));float cosTheta2Sq=1.-sinTheta2Sq;if(cosTheta2Sq<0.)return vec3(1);float cosTheta2=sqrt(cosTheta2Sq);float R0=IorToFresnel0(iridescenceIor,outsideIOR);float R12=F_Schlick(R0,cosTheta1);float R21=R12;float T121=1.-R12;float phi12=0.;if(iridescenceIor<outsideIOR)phi12=M_PI;float phi21=M_PI-phi12;vec3 baseIOR=Fresnel0ToIor(clamp(baseF0,0.,.9999));vec3 R1=IorToFresnel0(baseIOR,iridescenceIor);vec3 R23=F_Schlick(R1,cosTheta2);vec3 phi23=vec3(0);if(baseIOR[0]<iridescenceIor)phi23[0]=M_PI;if(baseIOR[1]<iridescenceIor)phi23[1]=M_PI;if(baseIOR[2]<iridescenceIor)phi23[2]=M_PI;float OPD=2.*iridescenceIor*thinFilmThickness*cosTheta2;vec3 phi=vec3(phi21)+phi23;vec3 R123=clamp(R12*R23,1e-5,.9999);vec3 r123=sqrt(R123);vec3 Rs=sq(T121)*R23/(vec3(1)-R123);vec3 C0=R12+Rs;I=C0;vec3 Cm=Rs-T121;for(int m=1;m<=2;++m){Cm*=r123;vec3 Sm=2.*evalSensitivity(float(m)*OPD,float(m)*phi);I+=Cm*Sm;}return max(I,vec3(0));}
1226
+ #endif
1227
+ `
1228
+ ;
1229
+
1230
+ /* harmony default export */ const Iridescence2_glsl = (external_X_ITE_X3D_Namespace_default().add ("Iridescence2.glsl", Iridescence2_glsl_default_));
1669
1231
  ;// ./src/x_ite/Components/X_ITE/IridescenceMaterialExtension.js
1670
- /*******************************************************************************
1671
- *
1672
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1673
- *
1674
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1675
- *
1676
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1677
- *
1678
- * The copyright notice above does not evidence any actual of intended
1679
- * publication of such source code, and is an unpublished work by create3000.
1680
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1681
- * create3000.
1682
- *
1683
- * No permission is granted to copy, distribute, or create derivative works from
1684
- * the contents of this software, in whole or in part, without the prior written
1685
- * permission of create3000.
1686
- *
1687
- * NON-MILITARY USE ONLY
1688
- *
1689
- * All create3000 software are effectively free software with a non-military use
1690
- * restriction. It is free. Well commented source is provided. You may reuse the
1691
- * source in any way you please with the exception anything that uses it must be
1692
- * marked to indicate is contains 'non-military use only' components.
1693
- *
1694
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1695
- *
1696
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1697
- *
1698
- * This file is part of the X_ITE Project.
1699
- *
1700
- * X_ITE is free software: you can redistribute it and/or modify it under the
1701
- * terms of the GNU General Public License version 3 only, as published by the
1702
- * Free Software Foundation.
1703
- *
1704
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1705
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1706
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1707
- * details (a copy is included in the LICENSE file that accompanied this code).
1708
- *
1709
- * You should have received a copy of the GNU General Public License version 3
1710
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1711
- * copy of the GPLv3 License.
1712
- *
1713
- * For Silvio, Joy and Adi.
1714
- *
1715
- ******************************************************************************/
1716
1232
 
1717
1233
 
1718
1234
 
@@ -1722,6 +1238,23 @@ const IORMaterialExtension_default_ = IORMaterialExtension;
1722
1238
 
1723
1239
 
1724
1240
 
1241
+ // Register key.
1242
+
1243
+ X_ITE_ExtensionKeys .add ("IRIDESCENCE_MATERIAL_EXTENSION");
1244
+
1245
+ // Register shaders.
1246
+
1247
+
1248
+
1249
+
1250
+ external_X_ITE_X3D_ShaderRegistry_default().addInclude ("Iridescence", Iridescence2_glsl);
1251
+
1252
+ // Register textures.
1253
+
1254
+
1255
+
1256
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_IridescenceTextureEXT");
1257
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_IridescenceThicknessTextureEXT");
1725
1258
 
1726
1259
  /**
1727
1260
  * THIS NODE IS STILL EXPERIMENTAL.
@@ -1798,6 +1331,13 @@ Object .assign (Object .setPrototypeOf (IridescenceMaterialExtension .prototype,
1798
1331
  this .iridescenceTextureNode ?.getShaderOptions (options, "IRIDESCENCE", true);
1799
1332
  this .iridescenceThicknessTextureNode ?.getShaderOptions (options, "IRIDESCENCE_THICKNESS", true);
1800
1333
  },
1334
+ getShaderUniforms (uniforms)
1335
+ {
1336
+ uniforms .push ("x3d_IridescenceEXT");
1337
+ uniforms .push ("x3d_IridescenceIndexOfRefractionEXT");
1338
+ uniforms .push ("x3d_IridescenceThicknessMinimumEXT");
1339
+ uniforms .push ("x3d_IridescenceThicknessMaximumEXT");
1340
+ },
1801
1341
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1802
1342
  {
1803
1343
  gl .uniform1f (shaderObject .x3d_IridescenceEXT, this .iridescence);
@@ -1851,52 +1391,6 @@ const IridescenceMaterialExtension_default_ = IridescenceMaterialExtension;
1851
1391
 
1852
1392
  /* harmony default export */ const X_ITE_IridescenceMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("IridescenceMaterialExtension", IridescenceMaterialExtension_default_));
1853
1393
  ;// ./src/x_ite/Components/X_ITE/SheenMaterialExtension.js
1854
- /*******************************************************************************
1855
- *
1856
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1857
- *
1858
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1859
- *
1860
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1861
- *
1862
- * The copyright notice above does not evidence any actual of intended
1863
- * publication of such source code, and is an unpublished work by create3000.
1864
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1865
- * create3000.
1866
- *
1867
- * No permission is granted to copy, distribute, or create derivative works from
1868
- * the contents of this software, in whole or in part, without the prior written
1869
- * permission of create3000.
1870
- *
1871
- * NON-MILITARY USE ONLY
1872
- *
1873
- * All create3000 software are effectively free software with a non-military use
1874
- * restriction. It is free. Well commented source is provided. You may reuse the
1875
- * source in any way you please with the exception anything that uses it must be
1876
- * marked to indicate is contains 'non-military use only' components.
1877
- *
1878
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1879
- *
1880
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1881
- *
1882
- * This file is part of the X_ITE Project.
1883
- *
1884
- * X_ITE is free software: you can redistribute it and/or modify it under the
1885
- * terms of the GNU General Public License version 3 only, as published by the
1886
- * Free Software Foundation.
1887
- *
1888
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1889
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1890
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1891
- * details (a copy is included in the LICENSE file that accompanied this code).
1892
- *
1893
- * You should have received a copy of the GNU General Public License version 3
1894
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1895
- * copy of the GPLv3 License.
1896
- *
1897
- * For Silvio, Joy and Adi.
1898
- *
1899
- ******************************************************************************/
1900
1394
 
1901
1395
 
1902
1396
 
@@ -1907,6 +1401,16 @@ const IridescenceMaterialExtension_default_ = IridescenceMaterialExtension;
1907
1401
 
1908
1402
 
1909
1403
 
1404
+ // Register key.
1405
+
1406
+ X_ITE_ExtensionKeys .add ("SHEEN_MATERIAL_EXTENSION");
1407
+
1408
+ // Register textures.
1409
+
1410
+
1411
+
1412
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_SheenColorTextureEXT");
1413
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_SheenRoughnessTextureEXT");
1910
1414
 
1911
1415
  /**
1912
1416
  * THIS NODE IS STILL EXPERIMENTAL.
@@ -1977,6 +1481,12 @@ Object .assign (Object .setPrototypeOf (SheenMaterialExtension .prototype, X_ITE
1977
1481
  this .sheenColorTextureNode ?.getShaderOptions (options, "SHEEN_COLOR", true);
1978
1482
  this .sheenRoughnessTextureNode ?.getShaderOptions (options, "SHEEN_ROUGHNESS", true);
1979
1483
  },
1484
+ getShaderUniforms (uniforms)
1485
+ {
1486
+ uniforms .push ("x3d_SheenColorEXT");
1487
+ uniforms .push ("x3d_SheenRoughnessEXT");
1488
+ uniforms .push ("x3d_SheenELUTTextureEXT");
1489
+ },
1980
1490
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
1981
1491
  {
1982
1492
  gl .uniform3fv (shaderObject .x3d_SheenColorEXT, this .sheenColorArray);
@@ -1985,7 +1495,7 @@ Object .assign (Object .setPrototypeOf (SheenMaterialExtension .prototype, X_ITE
1985
1495
  const
1986
1496
  browser = this .getBrowser (),
1987
1497
  SheenELUTTexture = browser .getLibraryTexture ("lut_sheen_E.png"),
1988
- SheenELUTTextureUnit = browser .getTexture2DUnit ();
1498
+ SheenELUTTextureUnit = browser .getTextureUnit ();
1989
1499
 
1990
1500
  gl .activeTexture (gl .TEXTURE0 + SheenELUTTextureUnit);
1991
1501
  gl .bindTexture (gl .TEXTURE_2D, SheenELUTTexture .getTexture ());
@@ -2037,53 +1547,90 @@ const SheenMaterialExtension_default_ = SheenMaterialExtension;
2037
1547
  ;// external "__X_ITE_X3D__ .X3DOneSidedMaterialNode"
2038
1548
  const external_X_ITE_X3D_X3DOneSidedMaterialNode_namespaceObject = __X_ITE_X3D__ .X3DOneSidedMaterialNode;
2039
1549
  var external_X_ITE_X3D_X3DOneSidedMaterialNode_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DOneSidedMaterialNode_namespaceObject);
1550
+ ;// ./src/assets/shaders/webgl2/pbr/SpecularGlossiness2.glsl.js
1551
+
1552
+
1553
+ const SpecularGlossiness2_glsl_default_ = () => /* glsl */ `
1554
+ #pragma X3D include "../common/Fragment.glsl"
1555
+ #pragma X3D include "../common/Shadow.glsl"
1556
+ #if defined(X3D_LIGHTING)
1557
+ uniform x3d_LightSourceParameters x3d_LightSource[X3D_NUM_LIGHTS];
1558
+ #endif
1559
+ uniform x3d_PhysicalMaterialParameters x3d_Material;
1560
+ #pragma X3D include "pbr/BRDF.glsl"
1561
+ #pragma X3D include "pbr/MaterialInfo.glsl"
1562
+ #pragma X3D include "pbr/Punctual.glsl"
1563
+ #pragma X3D include "pbr/IBL.glsl"
1564
+ ${external_X_ITE_X3D_MaterialTextures_default().texture ("x3d_DiffuseTexture", "rgba", "linear")}
1565
+ vec4 getBaseColor(){float alpha=1.-x3d_Material.transparency;vec4 baseColor=vec4(x3d_Material.diffuseColor,alpha);
1566
+ #if defined(X3D_COLOR_MATERIAL)
1567
+ baseColor*=color;
1568
+ #endif
1569
+ #if defined(X3D_DIFFUSE_TEXTURE)
1570
+ baseColor*=getDiffuseTexture();
1571
+ #elif defined(X3D_TEXTURE)
1572
+ baseColor=getTextureColor(baseColor,vec4(vec3(1),alpha));
1573
+ #endif
1574
+ return baseColor;}
1575
+ ${external_X_ITE_X3D_MaterialTextures_default().texture ("x3d_SpecularGlossinessTexture", "rgba", "linear")}
1576
+ MaterialInfo getSpecularGlossinessInfo(in MaterialInfo info){vec3 specular=x3d_Material.specularColor;float glossiness=x3d_Material.glossiness;
1577
+ #if defined(X3D_SPECULAR_GLOSSINESS_TEXTURE)
1578
+ vec4 sgSample=getSpecularGlossinessTexture();glossiness*=sgSample.a;specular*=sgSample.rgb;
1579
+ #endif
1580
+ info.perceptualRoughness=1.-glossiness;info.f0_dielectric=min(specular,vec3(1));return info;}vec4 getMaterialColor(){vec4 baseColor=getBaseColor();
1581
+ #if defined(X3D_TEXTURE_PROJECTION)
1582
+ baseColor.rgb*=getTextureProjectorColor();
1583
+ #endif
1584
+ vec3 color=vec3(0);vec3 v=normalize(-vertex);
1585
+ #if defined(X3D_USE_IBL)||defined(X3D_LIGHTING)
1586
+ NormalInfo normalInfo=getNormalInfo(x3d_Material.normalScale);vec3 n=normalInfo.n;float NdotV=clamp(dot(n,v),0.,1.);
1587
+ #endif
1588
+ MaterialInfo materialInfo;materialInfo.baseColor=baseColor.rgb;materialInfo.f90_dielectric=vec3(1);materialInfo.metallic=0.;materialInfo=getSpecularGlossinessInfo(materialInfo);materialInfo.perceptualRoughness=clamp(materialInfo.perceptualRoughness,0.,1.);materialInfo.alphaRoughness=materialInfo.perceptualRoughness*materialInfo.perceptualRoughness;vec3 f_emissive=vec3(0);
1589
+ #if defined(X3D_USE_IBL)
1590
+ vec3 f_diffuse=getDiffuseLight(n)*baseColor.rgb;vec3 f_specular_dielectric=getIBLRadianceGGX(n,v,materialInfo.perceptualRoughness);vec3 f_dielectric_fresnel_ibl=getIBLGGXFresnel(n,v,materialInfo.perceptualRoughness,materialInfo.f0_dielectric,1.);vec3 f_dielectric_brdf_ibl=mix(f_diffuse,f_specular_dielectric,f_dielectric_fresnel_ibl);color=f_dielectric_brdf_ibl;
1591
+ #if defined(X3D_OCCLUSION_TEXTURE)
1592
+ float ao=getOcclusionFactor();color*=1.+x3d_Material.occlusionStrength*(ao-1.);
1593
+ #endif
1594
+ #endif
1595
+ #if defined(X3D_LIGHTING)
1596
+ for(int i=0;i<X3D_NUM_LIGHTS;++i){x3d_LightSourceParameters light=x3d_LightSource[i];vec3 pointToLight;float distanceToLight;if(light.type!=x3d_DirectionalLight){pointToLight=light.location-vertex;distanceToLight=length(light.matrix*pointToLight);}else{pointToLight=-light.direction;distanceToLight=-1.;}if(distanceToLight<=light.radius||light.radius<0.){vec3 l=normalize(pointToLight);vec3 h=normalize(l+v);float NdotL=clamp(dot(n,l),0.,1.);float NdotV=clamp(dot(n,v),0.,1.);float NdotH=clamp(dot(n,h),0.,1.);float VdotH=clamp(dot(v,h),0.,1.);vec3 dielectric_fresnel=F_Schlick(materialInfo.f0_dielectric,materialInfo.f90_dielectric,abs(VdotH));vec3 lightIntensity=getLightIntensity(light,l,distanceToLight);vec3 intensity=lightIntensity;
1597
+ #if defined(X3D_SHADOWS)
1598
+ lightIntensity=mix(lightIntensity,light.shadowColor,getShadowIntensity(i,light));
1599
+ #endif
1600
+ vec3 l_diffuse=lightIntensity*NdotL*BRDF_lambertian(baseColor.rgb);vec3 l_specular_dielectric=intensity*NdotL*BRDF_specularGGX(materialInfo.alphaRoughness,NdotL,NdotV,NdotH);vec3 l_dielectric_brdf=mix(l_diffuse,l_specular_dielectric,dielectric_fresnel);color+=l_dielectric_brdf;}}
1601
+ #endif
1602
+ f_emissive=getEmissiveColor();
1603
+ #if defined(X3D_UNLIT_MATERIAL_EXT)
1604
+ color=baseColor.rgb;
1605
+ #elif(defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D))&&!defined(X3D_NORMALS)
1606
+ color=f_emissive+baseColor.rgb;
1607
+ #else
1608
+ color=f_emissive+color;
1609
+ #endif
1610
+ return vec4(color,baseColor.a);}void main(){fragment_main();}`
1611
+ ;
1612
+
1613
+ /* harmony default export */ const SpecularGlossiness2_glsl = (external_X_ITE_X3D_Namespace_default().add ("SpecularGlossiness2.glsl", SpecularGlossiness2_glsl_default_));
1614
+ ;// ./src/assets/shaders/webgl1/SpecularGlossiness1.fs.js
1615
+ const SpecularGlossiness1_fs_default_ = () => /* glsl */ `
1616
+ #extension GL_OES_standard_derivatives:enable
1617
+ #extension GL_EXT_frag_depth:enable
1618
+ #extension GL_EXT_shader_texture_lod:enable
1619
+ precision highp float;precision highp int;precision highp sampler2D;precision highp samplerCube;
1620
+ #pragma X3D include "pbr/SpecularGlossiness.glsl"
1621
+ `
1622
+ ;
1623
+
1624
+ /* harmony default export */ const SpecularGlossiness1_fs = (external_X_ITE_X3D_Namespace_default().add ("SpecularGlossiness1.fs", SpecularGlossiness1_fs_default_));
1625
+ ;// ./src/assets/shaders/webgl2/SpecularGlossiness2.fs.js
1626
+ const SpecularGlossiness2_fs_default_ = () => /* glsl */ `#version 300 es
1627
+ precision highp float;precision highp int;precision highp sampler2D;precision highp sampler3D;precision highp samplerCube;
1628
+ #pragma X3D include "pbr/SpecularGlossiness.glsl"
1629
+ `
1630
+ ;
1631
+
1632
+ /* harmony default export */ const SpecularGlossiness2_fs = (external_X_ITE_X3D_Namespace_default().add ("SpecularGlossiness2.fs", SpecularGlossiness2_fs_default_));
2040
1633
  ;// ./src/x_ite/Components/X_ITE/SpecularGlossinessMaterial.js
2041
- /*******************************************************************************
2042
- *
2043
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2044
- *
2045
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
2046
- *
2047
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
2048
- *
2049
- * The copyright notice above does not evidence any actual of intended
2050
- * publication of such source code, and is an unpublished work by create3000.
2051
- * This material contains CONFIDENTIAL INFORMATION that is the property of
2052
- * create3000.
2053
- *
2054
- * No permission is granted to copy, distribute, or create derivative works from
2055
- * the contents of this software, in whole or in part, without the prior written
2056
- * permission of create3000.
2057
- *
2058
- * NON-MILITARY USE ONLY
2059
- *
2060
- * All create3000 software are effectively free software with a non-military use
2061
- * restriction. It is free. Well commented source is provided. You may reuse the
2062
- * source in any way you please with the exception anything that uses it must be
2063
- * marked to indicate is contains 'non-military use only' components.
2064
- *
2065
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2066
- *
2067
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
2068
- *
2069
- * This file is part of the X_ITE Project.
2070
- *
2071
- * X_ITE is free software: you can redistribute it and/or modify it under the
2072
- * terms of the GNU General Public License version 3 only, as published by the
2073
- * Free Software Foundation.
2074
- *
2075
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
2076
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
2077
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
2078
- * details (a copy is included in the LICENSE file that accompanied this code).
2079
- *
2080
- * You should have received a copy of the GNU General Public License version 3
2081
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
2082
- * copy of the GPLv3 License.
2083
- *
2084
- * For Silvio, Joy and Adi.
2085
- *
2086
- ******************************************************************************/
2087
1634
 
2088
1635
 
2089
1636
 
@@ -2093,6 +1640,15 @@ var external_X_ITE_X3D_X3DOneSidedMaterialNode_default = /*#__PURE__*/__webpack_
2093
1640
 
2094
1641
 
2095
1642
 
1643
+ // Register shaders.
1644
+
1645
+
1646
+
1647
+
1648
+
1649
+
1650
+ external_X_ITE_X3D_ShaderRegistry_default().addInclude ("SpecularGlossiness", SpecularGlossiness2_glsl);
1651
+ external_X_ITE_X3D_ShaderRegistry_default().addFragment ("SpecularGlossiness", SpecularGlossiness1_fs, SpecularGlossiness2_fs);
2096
1652
 
2097
1653
  /**
2098
1654
  * THIS NODE IS DEPRECIATED SINCE X3D VERSION 4.0.
@@ -2108,7 +1664,6 @@ function SpecularGlossinessMaterial (executionContext)
2108
1664
 
2109
1665
  this .diffuseColorArray = new Float32Array (3);
2110
1666
  this .specularColorArray = new Float32Array (3);
2111
- this .extensionNodes = [ ];
2112
1667
  }
2113
1668
 
2114
1669
  Object .assign (Object .setPrototypeOf (SpecularGlossinessMaterial .prototype, (external_X_ITE_X3D_X3DOneSidedMaterialNode_default()).prototype),
@@ -2125,7 +1680,6 @@ Object .assign (Object .setPrototypeOf (SpecularGlossinessMaterial .prototype, (
2125
1680
  this ._specularGlossinessTexture .addInterest ("set_specularGlossinessTexture__", this);
2126
1681
  this ._occlusionStrength .addInterest ("set_occlusionStrength__", this);
2127
1682
  this ._occlusionTexture .addInterest ("set_occlusionTexture__", this);
2128
- this ._extensions .addInterest ("set_extensions__", this);
2129
1683
 
2130
1684
  this .set_diffuseColor__ ();
2131
1685
  this .set_diffuseTexture__ ();
@@ -2134,12 +1688,11 @@ Object .assign (Object .setPrototypeOf (SpecularGlossinessMaterial .prototype, (
2134
1688
  this .set_specularGlossinessTexture__ ();
2135
1689
  this .set_occlusionStrength__ ();
2136
1690
  this .set_occlusionTexture__ ();
2137
- this .set_extensions__ ();
2138
1691
  this .set_transparent__ ();
2139
1692
  },
2140
1693
  getMaterialKey ()
2141
1694
  {
2142
- return this .materialKey;
1695
+ return 4;
2143
1696
  },
2144
1697
  getTextureIndices: (() =>
2145
1698
  {
@@ -2210,49 +1763,12 @@ Object .assign (Object .setPrototypeOf (SpecularGlossinessMaterial .prototype, (
2210
1763
 
2211
1764
  this .setTexture (this .getTextureIndices () .OCCLUSION_TEXTURE, this .occlusionTextureNode);
2212
1765
  },
2213
- set_extensions__ ()
2214
- {
2215
- const extensionNodes = this .extensionNodes;
2216
-
2217
- for (const extensionNode of extensionNodes)
2218
- extensionNode .removeInterest ("set_extensionsKey__", this);
2219
-
2220
- extensionNodes .length = 0;
2221
-
2222
- for (const node of this ._extensions)
2223
- {
2224
- const extensionNode = external_X_ITE_X3D_X3DCast_default() ((external_X_ITE_X3D_X3DConstants_default()).X3DMaterialExtensionNode, node);
2225
-
2226
- if (extensionNode)
2227
- extensionNodes .push (extensionNode);
2228
- }
2229
-
2230
- extensionNodes .sort ((a, b) => a .getExtensionKey () - b .getExtensionKey ());
2231
-
2232
- for (const extensionNode of extensionNodes)
2233
- extensionNode .addInterest ("set_extensionsKey__", this);
2234
-
2235
- this .setTransmission (extensionNodes .some (extensionNode => extensionNode .getType () .includes ((external_X_ITE_X3D_X3DConstants_default()).TransmissionMaterialExtension)));
2236
-
2237
- this .set_extensionsKey__ ();
2238
- },
2239
- set_extensionsKey__ ()
2240
- {
2241
- const extensionsKey = this .extensionNodes
2242
- .map (extensionNode => `${extensionNode .getExtensionKey () .toString (16)}${extensionNode .getTextureBits () .toString (16)}`)
2243
- .join ("");
2244
-
2245
- this .materialKey = `[4.${extensionsKey}]`;
2246
- },
2247
1766
  createShader (key, geometryContext, renderContext)
2248
1767
  {
2249
1768
  const
2250
1769
  browser = this .getBrowser (),
2251
1770
  options = this .getShaderOptions (geometryContext, renderContext);
2252
1771
 
2253
- for (const extensionNode of this .extensionNodes)
2254
- extensionNode .getShaderOptions (options);
2255
-
2256
1772
  options .push ("X3D_PHYSICAL_MATERIAL", "X3D_MATERIAL_SPECULAR_GLOSSINESS");
2257
1773
 
2258
1774
  if (+this .getTextureBits ())
@@ -2262,7 +1778,7 @@ Object .assign (Object .setPrototypeOf (SpecularGlossinessMaterial .prototype, (
2262
1778
  this .occlusionTextureNode ?.getShaderOptions (options, "OCCLUSION");
2263
1779
  }
2264
1780
 
2265
- const shaderNode = browser .createShader ("SpecularGlossiness", "Default", "Physical", options);
1781
+ const shaderNode = browser .createShader ("SpecularGlossiness", "Default", "SpecularGlossiness", options);
2266
1782
 
2267
1783
  browser .getShaders () .set (key, shaderNode);
2268
1784
 
@@ -2272,9 +1788,6 @@ Object .assign (Object .setPrototypeOf (SpecularGlossinessMaterial .prototype, (
2272
1788
  {
2273
1789
  external_X_ITE_X3D_X3DOneSidedMaterialNode_default().prototype .setShaderUniforms .call (this, gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping);
2274
1790
 
2275
- for (const extensionNode of this .extensionNodes)
2276
- extensionNode .setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping);
2277
-
2278
1791
  gl .uniform3fv (shaderObject .x3d_DiffuseColor, this .diffuseColorArray);
2279
1792
  gl .uniform3fv (shaderObject .x3d_SpecularColor, this .specularColorArray);
2280
1793
  gl .uniform1f (shaderObject .x3d_Glossiness, this .glossiness);
@@ -2337,7 +1850,6 @@ Object .defineProperties (SpecularGlossinessMaterial,
2337
1850
  new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "normalTextureMapping", new (external_X_ITE_X3D_Fields_default()).SFString ()),
2338
1851
  new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "normalTexture", new (external_X_ITE_X3D_Fields_default()).SFNode ()),
2339
1852
  new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "transparency", new (external_X_ITE_X3D_Fields_default()).SFFloat ()),
2340
- new (external_X_ITE_X3D_X3DFieldDefinition_default()) ((external_X_ITE_X3D_X3DConstants_default()).inputOutput, "extensions", new (external_X_ITE_X3D_Fields_default()).MFNode ()), // experimental
2341
1853
  ]),
2342
1854
  enumerable: true,
2343
1855
  },
@@ -2356,52 +1868,6 @@ const SpecularGlossinessMaterial_default_ = SpecularGlossinessMaterial;
2356
1868
 
2357
1869
  /* harmony default export */ const X_ITE_SpecularGlossinessMaterial = (external_X_ITE_X3D_Namespace_default().add ("SpecularGlossinessMaterial", SpecularGlossinessMaterial_default_));
2358
1870
  ;// ./src/x_ite/Components/X_ITE/SpecularMaterialExtension.js
2359
- /*******************************************************************************
2360
- *
2361
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2362
- *
2363
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
2364
- *
2365
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
2366
- *
2367
- * The copyright notice above does not evidence any actual of intended
2368
- * publication of such source code, and is an unpublished work by create3000.
2369
- * This material contains CONFIDENTIAL INFORMATION that is the property of
2370
- * create3000.
2371
- *
2372
- * No permission is granted to copy, distribute, or create derivative works from
2373
- * the contents of this software, in whole or in part, without the prior written
2374
- * permission of create3000.
2375
- *
2376
- * NON-MILITARY USE ONLY
2377
- *
2378
- * All create3000 software are effectively free software with a non-military use
2379
- * restriction. It is free. Well commented source is provided. You may reuse the
2380
- * source in any way you please with the exception anything that uses it must be
2381
- * marked to indicate is contains 'non-military use only' components.
2382
- *
2383
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2384
- *
2385
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
2386
- *
2387
- * This file is part of the X_ITE Project.
2388
- *
2389
- * X_ITE is free software: you can redistribute it and/or modify it under the
2390
- * terms of the GNU General Public License version 3 only, as published by the
2391
- * Free Software Foundation.
2392
- *
2393
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
2394
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
2395
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
2396
- * details (a copy is included in the LICENSE file that accompanied this code).
2397
- *
2398
- * You should have received a copy of the GNU General Public License version 3
2399
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
2400
- * copy of the GPLv3 License.
2401
- *
2402
- * For Silvio, Joy and Adi.
2403
- *
2404
- ******************************************************************************/
2405
1871
 
2406
1872
 
2407
1873
 
@@ -2411,6 +1877,16 @@ const SpecularGlossinessMaterial_default_ = SpecularGlossinessMaterial;
2411
1877
 
2412
1878
 
2413
1879
 
1880
+ // Register key.
1881
+
1882
+ X_ITE_ExtensionKeys .add ("SPECULAR_MATERIAL_EXTENSION");
1883
+
1884
+ // Register textures.
1885
+
1886
+
1887
+
1888
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_SpecularTextureEXT");
1889
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_SpecularColorTextureEXT");
2414
1890
 
2415
1891
  /**
2416
1892
  * THIS NODE IS STILL EXPERIMENTAL.
@@ -2477,6 +1953,11 @@ Object .assign (Object .setPrototypeOf (SpecularMaterialExtension .prototype, X_
2477
1953
  this .specularTextureNode ?.getShaderOptions (options, "SPECULAR", true);
2478
1954
  this .specularColorTextureNode ?.getShaderOptions (options, "SPECULAR_COLOR", true);
2479
1955
  },
1956
+ getShaderUniforms (uniforms)
1957
+ {
1958
+ uniforms .push ("x3d_SpecularEXT");
1959
+ uniforms .push ("x3d_SpecularColorEXT");
1960
+ },
2480
1961
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
2481
1962
  {
2482
1963
  gl .uniform1f (shaderObject .x3d_SpecularEXT, this .specular);
@@ -2526,52 +2007,6 @@ const SpecularMaterialExtension_default_ = SpecularMaterialExtension;
2526
2007
 
2527
2008
  /* harmony default export */ const X_ITE_SpecularMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("SpecularMaterialExtension", SpecularMaterialExtension_default_));
2528
2009
  ;// ./src/x_ite/Components/X_ITE/TransmissionMaterialExtension.js
2529
- /*******************************************************************************
2530
- *
2531
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2532
- *
2533
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
2534
- *
2535
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
2536
- *
2537
- * The copyright notice above does not evidence any actual of intended
2538
- * publication of such source code, and is an unpublished work by create3000.
2539
- * This material contains CONFIDENTIAL INFORMATION that is the property of
2540
- * create3000.
2541
- *
2542
- * No permission is granted to copy, distribute, or create derivative works from
2543
- * the contents of this software, in whole or in part, without the prior written
2544
- * permission of create3000.
2545
- *
2546
- * NON-MILITARY USE ONLY
2547
- *
2548
- * All create3000 software are effectively free software with a non-military use
2549
- * restriction. It is free. Well commented source is provided. You may reuse the
2550
- * source in any way you please with the exception anything that uses it must be
2551
- * marked to indicate is contains 'non-military use only' components.
2552
- *
2553
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2554
- *
2555
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
2556
- *
2557
- * This file is part of the X_ITE Project.
2558
- *
2559
- * X_ITE is free software: you can redistribute it and/or modify it under the
2560
- * terms of the GNU General Public License version 3 only, as published by the
2561
- * Free Software Foundation.
2562
- *
2563
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
2564
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
2565
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
2566
- * details (a copy is included in the LICENSE file that accompanied this code).
2567
- *
2568
- * You should have received a copy of the GNU General Public License version 3
2569
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
2570
- * copy of the GPLv3 License.
2571
- *
2572
- * For Silvio, Joy and Adi.
2573
- *
2574
- ******************************************************************************/
2575
2010
 
2576
2011
 
2577
2012
 
@@ -2582,6 +2017,16 @@ const SpecularMaterialExtension_default_ = SpecularMaterialExtension;
2582
2017
 
2583
2018
 
2584
2019
 
2020
+ // Register key.
2021
+
2022
+ X_ITE_ExtensionKeys .add ("TRANSMISSION_MATERIAL_EXTENSION");
2023
+
2024
+ // Register textures.
2025
+
2026
+
2027
+
2028
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_TransmissionTextureEXT");
2029
+
2585
2030
  /**
2586
2031
  * THIS NODE IS STILL EXPERIMENTAL.
2587
2032
  */
@@ -2607,7 +2052,7 @@ Object .assign (Object .setPrototypeOf (TransmissionMaterialExtension .prototype
2607
2052
  },
2608
2053
  set_transmission__ ()
2609
2054
  {
2610
- this .transmission = Math .max (this ._transmission .getValue (), 0);
2055
+ this .transmission = external_X_ITE_X3D_Algorithm_default().clamp (this ._transmission .getValue (), 0, 1);
2611
2056
  },
2612
2057
  set_transmissionTexture__ ()
2613
2058
  {
@@ -2630,6 +2075,11 @@ Object .assign (Object .setPrototypeOf (TransmissionMaterialExtension .prototype
2630
2075
 
2631
2076
  this .transmissionTextureNode ?.getShaderOptions (options, "TRANSMISSION", true);
2632
2077
  },
2078
+ getShaderUniforms (uniforms)
2079
+ {
2080
+ uniforms .push ("x3d_TransmissionEXT");
2081
+ uniforms .push ("x3d_TransmissionSamplerEXT");
2082
+ },
2633
2083
  setShaderUniforms: (() =>
2634
2084
  {
2635
2085
  const zeros = new Float32Array (16);
@@ -2645,7 +2095,7 @@ Object .assign (Object .setPrototypeOf (TransmissionMaterialExtension .prototype
2645
2095
  if (renderObject .isTransmission ())
2646
2096
  {
2647
2097
  var
2648
- transmissionUnit = browser .getDefaultTexture2DUnit (),
2098
+ transmissionUnit = browser .getTextureUnit (),
2649
2099
  transmissionBufferTexture = browser .getDefaultTexture2D ();
2650
2100
 
2651
2101
  // Hide object by using a model view matrix with zeros.
@@ -2655,7 +2105,7 @@ Object .assign (Object .setPrototypeOf (TransmissionMaterialExtension .prototype
2655
2105
  {
2656
2106
  var
2657
2107
  transmissionBuffer = browser .getTransmissionBuffer (),
2658
- transmissionUnit = browser .getTexture2DUnit (),
2108
+ transmissionUnit = browser .getTextureUnit (),
2659
2109
  transmissionBufferTexture = transmissionBuffer .getColorTexture ();
2660
2110
  }
2661
2111
 
@@ -2697,52 +2147,6 @@ const TransmissionMaterialExtension_default_ = TransmissionMaterialExtension;
2697
2147
 
2698
2148
  /* harmony default export */ const X_ITE_TransmissionMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("TransmissionMaterialExtension", TransmissionMaterialExtension_default_));
2699
2149
  ;// ./src/x_ite/Components/X_ITE/VolumeMaterialExtension.js
2700
- /*******************************************************************************
2701
- *
2702
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2703
- *
2704
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
2705
- *
2706
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
2707
- *
2708
- * The copyright notice above does not evidence any actual of intended
2709
- * publication of such source code, and is an unpublished work by create3000.
2710
- * This material contains CONFIDENTIAL INFORMATION that is the property of
2711
- * create3000.
2712
- *
2713
- * No permission is granted to copy, distribute, or create derivative works from
2714
- * the contents of this software, in whole or in part, without the prior written
2715
- * permission of create3000.
2716
- *
2717
- * NON-MILITARY USE ONLY
2718
- *
2719
- * All create3000 software are effectively free software with a non-military use
2720
- * restriction. It is free. Well commented source is provided. You may reuse the
2721
- * source in any way you please with the exception anything that uses it must be
2722
- * marked to indicate is contains 'non-military use only' components.
2723
- *
2724
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2725
- *
2726
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
2727
- *
2728
- * This file is part of the X_ITE Project.
2729
- *
2730
- * X_ITE is free software: you can redistribute it and/or modify it under the
2731
- * terms of the GNU General Public License version 3 only, as published by the
2732
- * Free Software Foundation.
2733
- *
2734
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
2735
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
2736
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
2737
- * details (a copy is included in the LICENSE file that accompanied this code).
2738
- *
2739
- * You should have received a copy of the GNU General Public License version 3
2740
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
2741
- * copy of the GPLv3 License.
2742
- *
2743
- * For Silvio, Joy and Adi.
2744
- *
2745
- ******************************************************************************/
2746
2150
 
2747
2151
 
2748
2152
 
@@ -2752,6 +2156,15 @@ const TransmissionMaterialExtension_default_ = TransmissionMaterialExtension;
2752
2156
 
2753
2157
 
2754
2158
 
2159
+ // Register key.
2160
+
2161
+ X_ITE_ExtensionKeys .add ("VOLUME_MATERIAL_EXTENSION");
2162
+
2163
+ // Register textures.
2164
+
2165
+
2166
+
2167
+ external_X_ITE_X3D_MaterialTextures_default().add ("x3d_ThicknessTextureEXT");
2755
2168
 
2756
2169
  /**
2757
2170
  * THIS NODE IS STILL EXPERIMENTAL.
@@ -2822,6 +2235,12 @@ Object .assign (Object .setPrototypeOf (VolumeMaterialExtension .prototype, X_IT
2822
2235
 
2823
2236
  this .thicknessTextureNode ?.getShaderOptions (options, "THICKNESS", true);
2824
2237
  },
2238
+ getShaderUniforms (uniforms)
2239
+ {
2240
+ uniforms .push ("x3d_ThicknessEXT");
2241
+ uniforms .push ("x3d_AttenuationDistanceEXT");
2242
+ uniforms .push ("x3d_AttenuationColorEXT");
2243
+ },
2825
2244
  setShaderUniforms (gl, shaderObject, renderObject, textureTransformMapping, textureCoordinateMapping)
2826
2245
  {
2827
2246
  gl .uniform1f (shaderObject .x3d_ThicknessEXT, this .thickness);
@@ -2863,53 +2282,6 @@ const VolumeMaterialExtension_default_ = VolumeMaterialExtension;
2863
2282
 
2864
2283
  /* harmony default export */ const X_ITE_VolumeMaterialExtension = (external_X_ITE_X3D_Namespace_default().add ("VolumeMaterialExtension", VolumeMaterialExtension_default_));
2865
2284
  ;// ./src/assets/components/X_ITEComponent.js
2866
- /*******************************************************************************
2867
- *
2868
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2869
- *
2870
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
2871
- *
2872
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
2873
- *
2874
- * The copyright notice above does not evidence any actual of intended
2875
- * publication of such source code, and is an unpublished work by create3000.
2876
- * This material contains CONFIDENTIAL INFORMATION that is the property of
2877
- * create3000.
2878
- *
2879
- * No permission is granted to copy, distribute, or create derivative works from
2880
- * the contents of this software, in whole or in part, without the prior written
2881
- * permission of create3000.
2882
- *
2883
- * NON-MILITARY USE ONLY
2884
- *
2885
- * All create3000 software are effectively free software with a non-military use
2886
- * restriction. It is free. Well commented source is provided. You may reuse the
2887
- * source in any way you please with the exception anything that uses it must be
2888
- * marked to indicate is contains 'non-military use only' components.
2889
- *
2890
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2891
- *
2892
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
2893
- *
2894
- * This file is part of the X_ITE Project.
2895
- *
2896
- * X_ITE is free software: you can redistribute it and/or modify it under the
2897
- * terms of the GNU General Public License version 3 only, as published by the
2898
- * Free Software Foundation.
2899
- *
2900
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
2901
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
2902
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
2903
- * details (a copy is included in the LICENSE file that accompanied this code).
2904
- *
2905
- * You should have received a copy of the GNU General Public License version 3
2906
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
2907
- * copy of the GPLv3 License.
2908
- *
2909
- * For Silvio, Joy and Adi.
2910
- *
2911
- ******************************************************************************/
2912
-
2913
2285
 
2914
2286
 
2915
2287