@zephyr3d/editor 0.3.8 → 0.3.9

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 (137) hide show
  1. package/dist/assets/{index-BZ1L8ggE.js → index-CO6yA4Rj.js} +313 -11
  2. package/dist/assistant/zephyr-types-index.json +13834 -11679
  3. package/dist/index.html +1 -1
  4. package/dist/modules/zephyr3d_backend-webgpu.js +1 -1
  5. package/dist/modules/zephyr3d_backend-webgpu.js.map +1 -1
  6. package/dist/modules/zephyr3d_device.js +2 -2
  7. package/dist/modules/zephyr3d_device.js.map +1 -1
  8. package/dist/modules/zephyr3d_scene.js +2325 -515
  9. package/dist/modules/zephyr3d_scene.js.map +1 -1
  10. package/dist/vendor/zephyr3d/backend-webgpu/dist/renderpass_webgpu.js +1 -1
  11. package/dist/vendor/zephyr3d/backend-webgpu/dist/renderpass_webgpu.js.map +1 -1
  12. package/dist/vendor/zephyr3d/device/dist/device.js +2 -2
  13. package/dist/vendor/zephyr3d/device/dist/device.js.map +1 -1
  14. package/dist/vendor/zephyr3d/scene/dist/app/engine.js +3 -1
  15. package/dist/vendor/zephyr3d/scene/dist/app/engine.js.map +1 -1
  16. package/dist/vendor/zephyr3d/scene/dist/asset/assetmanager.js +1 -0
  17. package/dist/vendor/zephyr3d/scene/dist/asset/assetmanager.js.map +1 -1
  18. package/dist/vendor/zephyr3d/scene/dist/camera/camera.js +87 -0
  19. package/dist/vendor/zephyr3d/scene/dist/camera/camera.js.map +1 -1
  20. package/dist/vendor/zephyr3d/scene/dist/index.d.ts +158 -4
  21. package/dist/vendor/zephyr3d/scene/dist/index.js +3 -0
  22. package/dist/vendor/zephyr3d/scene/dist/index.js.map +1 -1
  23. package/dist/vendor/zephyr3d/scene/dist/material/meshmaterial.js +8 -1
  24. package/dist/vendor/zephyr3d/scene/dist/material/meshmaterial.js.map +1 -1
  25. package/dist/vendor/zephyr3d/scene/dist/material/shader/helper.js +6 -0
  26. package/dist/vendor/zephyr3d/scene/dist/material/shader/helper.js.map +1 -1
  27. package/dist/vendor/zephyr3d/scene/dist/material/skin.js +263 -0
  28. package/dist/vendor/zephyr3d/scene/dist/material/skin.js.map +1 -0
  29. package/dist/vendor/zephyr3d/scene/dist/posteffect/compositor.js +3 -0
  30. package/dist/vendor/zephyr3d/scene/dist/posteffect/compositor.js.map +1 -1
  31. package/dist/vendor/zephyr3d/scene/dist/posteffect/skinsss.js +194 -0
  32. package/dist/vendor/zephyr3d/scene/dist/posteffect/skinsss.js.map +1 -0
  33. package/dist/vendor/zephyr3d/scene/dist/posteffect/ssr.js +26 -49
  34. package/dist/vendor/zephyr3d/scene/dist/posteffect/ssr.js.map +1 -1
  35. package/dist/vendor/zephyr3d/scene/dist/posteffect/sss.js +1 -0
  36. package/dist/vendor/zephyr3d/scene/dist/posteffect/sss.js.map +1 -1
  37. package/dist/vendor/zephyr3d/scene/dist/posteffect/taa.js +2 -40
  38. package/dist/vendor/zephyr3d/scene/dist/posteffect/taa.js.map +1 -1
  39. package/dist/vendor/zephyr3d/scene/dist/render/abuffer_oit.js +1 -0
  40. package/dist/vendor/zephyr3d/scene/dist/render/abuffer_oit.js.map +1 -1
  41. package/dist/vendor/zephyr3d/scene/dist/render/drawable_mixin.js +1 -0
  42. package/dist/vendor/zephyr3d/scene/dist/render/drawable_mixin.js.map +1 -1
  43. package/dist/vendor/zephyr3d/scene/dist/render/fbm_wavegenerator.js +1 -0
  44. package/dist/vendor/zephyr3d/scene/dist/render/fbm_wavegenerator.js.map +1 -1
  45. package/dist/vendor/zephyr3d/scene/dist/render/gerstner_wavegenerator.js +1 -0
  46. package/dist/vendor/zephyr3d/scene/dist/render/gerstner_wavegenerator.js.map +1 -1
  47. package/dist/vendor/zephyr3d/scene/dist/render/globalbindgroup_allocator.js +1 -0
  48. package/dist/vendor/zephyr3d/scene/dist/render/globalbindgroup_allocator.js.map +1 -1
  49. package/dist/vendor/zephyr3d/scene/dist/render/lightpass.js +4 -1
  50. package/dist/vendor/zephyr3d/scene/dist/render/lightpass.js.map +1 -1
  51. package/dist/vendor/zephyr3d/scene/dist/render/render_queue.js +1 -0
  52. package/dist/vendor/zephyr3d/scene/dist/render/render_queue.js.map +1 -1
  53. package/dist/vendor/zephyr3d/scene/dist/render/renderer.js +1 -0
  54. package/dist/vendor/zephyr3d/scene/dist/render/renderer.js.map +1 -1
  55. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/device_pool_allocator.js +12 -5
  56. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/device_pool_allocator.js.map +1 -1
  57. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/forward_plus_builder.js +78 -8
  58. package/dist/vendor/zephyr3d/scene/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
  59. package/dist/vendor/zephyr3d/scene/dist/scene/basesprite.js +1 -0
  60. package/dist/vendor/zephyr3d/scene/dist/scene/basesprite.js.map +1 -1
  61. package/dist/vendor/zephyr3d/scene/dist/scene/batchgroup.js +1 -0
  62. package/dist/vendor/zephyr3d/scene/dist/scene/batchgroup.js.map +1 -1
  63. package/dist/vendor/zephyr3d/scene/dist/scene/environment.js +1 -0
  64. package/dist/vendor/zephyr3d/scene/dist/scene/environment.js.map +1 -1
  65. package/dist/vendor/zephyr3d/scene/dist/scene/light.js +158 -154
  66. package/dist/vendor/zephyr3d/scene/dist/scene/light.js.map +1 -1
  67. package/dist/vendor/zephyr3d/scene/dist/scene/mesh.js +1 -0
  68. package/dist/vendor/zephyr3d/scene/dist/scene/mesh.js.map +1 -1
  69. package/dist/vendor/zephyr3d/scene/dist/scene/msdftext.js +1 -0
  70. package/dist/vendor/zephyr3d/scene/dist/scene/msdftext.js.map +1 -1
  71. package/dist/vendor/zephyr3d/scene/dist/scene/msdftextsprite.js +1 -0
  72. package/dist/vendor/zephyr3d/scene/dist/scene/msdftextsprite.js.map +1 -1
  73. package/dist/vendor/zephyr3d/scene/dist/scene/particlesys.js +1 -0
  74. package/dist/vendor/zephyr3d/scene/dist/scene/particlesys.js.map +1 -1
  75. package/dist/vendor/zephyr3d/scene/dist/scene/scene.js +1 -0
  76. package/dist/vendor/zephyr3d/scene/dist/scene/scene.js.map +1 -1
  77. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/grass.js +1 -0
  78. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/grass.js.map +1 -1
  79. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/grassmaterial.js +1 -0
  80. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
  81. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/terrain-cm.js +1 -0
  82. package/dist/vendor/zephyr3d/scene/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
  83. package/dist/vendor/zephyr3d/scene/dist/scene/water.js +1 -0
  84. package/dist/vendor/zephyr3d/scene/dist/scene/water.js.map +1 -1
  85. package/dist/vendor/zephyr3d/scene/dist/shaders/shadow.js +617 -1
  86. package/dist/vendor/zephyr3d/scene/dist/shaders/shadow.js.map +1 -1
  87. package/dist/vendor/zephyr3d/scene/dist/shadow/esm.js +1 -0
  88. package/dist/vendor/zephyr3d/scene/dist/shadow/esm.js.map +1 -1
  89. package/dist/vendor/zephyr3d/scene/dist/shadow/pcf_opt.js +1 -0
  90. package/dist/vendor/zephyr3d/scene/dist/shadow/pcf_opt.js.map +1 -1
  91. package/dist/vendor/zephyr3d/scene/dist/shadow/pcf_pd.js +1 -0
  92. package/dist/vendor/zephyr3d/scene/dist/shadow/pcf_pd.js.map +1 -1
  93. package/dist/vendor/zephyr3d/scene/dist/shadow/pcss.js +182 -0
  94. package/dist/vendor/zephyr3d/scene/dist/shadow/pcss.js.map +1 -0
  95. package/dist/vendor/zephyr3d/scene/dist/shadow/shader.js +1 -0
  96. package/dist/vendor/zephyr3d/scene/dist/shadow/shader.js.map +1 -1
  97. package/dist/vendor/zephyr3d/scene/dist/shadow/shadow_impl.js.map +1 -1
  98. package/dist/vendor/zephyr3d/scene/dist/shadow/shadowmapper.js +183 -105
  99. package/dist/vendor/zephyr3d/scene/dist/shadow/shadowmapper.js.map +1 -1
  100. package/dist/vendor/zephyr3d/scene/dist/shadow/ssm.js +1 -0
  101. package/dist/vendor/zephyr3d/scene/dist/shadow/ssm.js.map +1 -1
  102. package/dist/vendor/zephyr3d/scene/dist/shadow/vsm.js +1 -0
  103. package/dist/vendor/zephyr3d/scene/dist/shadow/vsm.js.map +1 -1
  104. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/manager.js +3 -1
  105. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/manager.js.map +1 -1
  106. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/animation.js +1 -0
  107. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/animation.js.map +1 -1
  108. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/batch.js +1 -0
  109. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/batch.js.map +1 -1
  110. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/camera.js +122 -0
  111. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/camera.js.map +1 -1
  112. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/common.js +1 -0
  113. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/common.js.map +1 -1
  114. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/light.js +102 -21
  115. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/light.js.map +1 -1
  116. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/material.js +195 -3
  117. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/material.js.map +1 -1
  118. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/mesh.js +1 -0
  119. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/mesh.js.map +1 -1
  120. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/node.js +1 -0
  121. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/node.js.map +1 -1
  122. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/particle.js +1 -0
  123. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/particle.js.map +1 -1
  124. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/primitive.js +1 -0
  125. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/primitive.js.map +1 -1
  126. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/sprite.js +1 -0
  127. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/sprite.js.map +1 -1
  128. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/terrain.js +1 -0
  129. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/terrain.js.map +1 -1
  130. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/text.js +1 -0
  131. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/text.js.map +1 -1
  132. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/water.js +1 -0
  133. package/dist/vendor/zephyr3d/scene/dist/utility/serialization/scene/water.js.map +1 -1
  134. package/dist/vendor/zephyr3d/scene/dist/values.js +1 -0
  135. package/dist/vendor/zephyr3d/scene/dist/values.js.map +1 -1
  136. package/electron/main.cjs +30 -6
  137. package/package.json +4 -4
@@ -4,6 +4,7 @@ import { Compositor } from '../posteffect/compositor.js';
4
4
  import { TAA } from '../posteffect/taa.js';
5
5
  import { SSR } from '../posteffect/ssr.js';
6
6
  import { SSS } from '../posteffect/sss.js';
7
+ import { SkinSSS } from '../posteffect/skinsss.js';
7
8
  import { Tonemap } from '../posteffect/tonemap.js';
8
9
  import { FXAA } from '../posteffect/fxaa.js';
9
10
  import { Bloom } from '../posteffect/bloom.js';
@@ -144,6 +145,13 @@ const SSS_QUALITY_PRESET_SETTINGS = {
144
145
  /** @internal SSS multi-scatter energy compensation. */ _sssMultiScatter;
145
146
  /** @internal Cached runtime SSS settings after applying the quality preset. */ _sssResolvedSettings;
146
147
  /** @internal SSS debug visualization mode. */ _sssDebugView;
148
+ /** @internal Skin SSS enable flag (via post effect). */ _skinSSS;
149
+ /** @internal Skin SSS post effect reference. */ _postEffectSkinSSS;
150
+ /** @internal Skin SSS final blend strength. */ _skinSSSStrength;
151
+ /** @internal Skin SSS mask opacity bias. */ _skinSSSOpacity;
152
+ /** @internal Skin SSS blur tap spacing in pixels. */ _skinSSSSampleStep;
153
+ /** @internal Skin SSS depth rejection scale. */ _skinSSSDepthScale;
154
+ /** @internal Skin SSS blurred multiplier boost. */ _skinSSSColorBoost;
147
155
  /** @internal SSAO enable flag (via post effect). */ _SSAO;
148
156
  /** @internal SSAO post effect reference. */ _postEffectSSAO;
149
157
  /** @internal SSAO scale (sampling radius multiplier). */ _SSAOScale;
@@ -260,6 +268,13 @@ const SSS_QUALITY_PRESET_SETTINGS = {
260
268
  };
261
269
  this.updateSSSResolvedSettings();
262
270
  this._sssDebugView = 'none';
271
+ this._skinSSS = false;
272
+ this._postEffectSkinSSS = new DRef();
273
+ this._skinSSSStrength = 1;
274
+ this._skinSSSOpacity = 0.18;
275
+ this._skinSSSSampleStep = 2;
276
+ this._skinSSSDepthScale = 80;
277
+ this._skinSSSColorBoost = 1;
263
278
  this._SSAO = false;
264
279
  this._postEffectSSAO = new DRef();
265
280
  this._SSAOScale = 10;
@@ -712,6 +727,57 @@ const SSS_QUALITY_PRESET_SETTINGS = {
712
727
  set sssDebugView(val) {
713
728
  this._sssDebugView = val ?? 'none';
714
729
  }
730
+ /** Gets whether the dedicated Skin SSS post effect is enabled. */ get skinSSS() {
731
+ return this._postEffectSkinSSS.get().enabled;
732
+ }
733
+ set skinSSS(val) {
734
+ this._postEffectSkinSSS.get().enabled = !!val;
735
+ }
736
+ /** Final blend strength for the dedicated Skin SSS post effect. */ get skinSSSStrength() {
737
+ return this._skinSSSStrength;
738
+ }
739
+ set skinSSSStrength(val) {
740
+ this._skinSSSStrength = Math.max(0, val ?? 0);
741
+ if (this._postEffectSkinSSS.get()) {
742
+ this._postEffectSkinSSS.get().strength = this._skinSSSStrength;
743
+ }
744
+ }
745
+ /** Bias subtracted from the blurred skin mask before compositing. */ get skinSSSOpacity() {
746
+ return this._skinSSSOpacity;
747
+ }
748
+ set skinSSSOpacity(val) {
749
+ this._skinSSSOpacity = Math.max(0, Math.min(1, val ?? 0));
750
+ if (this._postEffectSkinSSS.get()) {
751
+ this._postEffectSkinSSS.get().opacity = this._skinSSSOpacity;
752
+ }
753
+ }
754
+ /** Pixel spacing between blur taps. The reference shader uses 2. */ get skinSSSSampleStep() {
755
+ return this._skinSSSSampleStep;
756
+ }
757
+ set skinSSSSampleStep(val) {
758
+ this._skinSSSSampleStep = Math.max(0.25, val ?? 0.25);
759
+ if (this._postEffectSkinSSS.get()) {
760
+ this._postEffectSkinSSS.get().sampleStep = this._skinSSSSampleStep;
761
+ }
762
+ }
763
+ /** Depth rejection scale. The reference shader uses 80. */ get skinSSSDepthScale() {
764
+ return this._skinSSSDepthScale;
765
+ }
766
+ set skinSSSDepthScale(val) {
767
+ this._skinSSSDepthScale = Math.max(0, val ?? 0);
768
+ if (this._postEffectSkinSSS.get()) {
769
+ this._postEffectSkinSSS.get().depthScale = this._skinSSSDepthScale;
770
+ }
771
+ }
772
+ /** Multiplier applied to the blurred skin lighting multiplier before compositing. */ get skinSSSColorBoost() {
773
+ return this._skinSSSColorBoost;
774
+ }
775
+ set skinSSSColorBoost(val) {
776
+ this._skinSSSColorBoost = Math.max(0, val ?? 0);
777
+ if (this._postEffectSkinSSS.get()) {
778
+ this._postEffectSkinSSS.get().colorBoost = this._skinSSSColorBoost;
779
+ }
780
+ }
715
781
  /** @internal */ get ssrParams() {
716
782
  return this._ssrParams;
717
783
  }
@@ -1124,6 +1190,11 @@ const SSS_QUALITY_PRESET_SETTINGS = {
1124
1190
  }
1125
1191
  Camera._historyData.delete(this);
1126
1192
  }
1193
+ const historyResourceManager = Camera._historyResourceManager.get(this);
1194
+ if (historyResourceManager) {
1195
+ historyResourceManager.dispose();
1196
+ Camera._historyResourceManager.delete(this);
1197
+ }
1127
1198
  this._prevVPMatrix = null;
1128
1199
  this._prevPosition = null;
1129
1200
  this._prevJitteredVPMatrix = null;
@@ -1143,6 +1214,17 @@ const SSS_QUALITY_PRESET_SETTINGS = {
1143
1214
  this._postEffectSSS.set(sss);
1144
1215
  this._compositor.appendPostEffect(sss);
1145
1216
  }
1217
+ if (!this._postEffectSkinSSS.get()) {
1218
+ const skinSSS = new SkinSSS();
1219
+ skinSSS.enabled = false;
1220
+ skinSSS.strength = this._skinSSSStrength;
1221
+ skinSSS.opacity = this._skinSSSOpacity;
1222
+ skinSSS.sampleStep = this._skinSSSSampleStep;
1223
+ skinSSS.depthScale = this._skinSSSDepthScale;
1224
+ skinSSS.colorBoost = this._skinSSSColorBoost;
1225
+ this._postEffectSkinSSS.set(skinSSS);
1226
+ this._compositor.appendPostEffect(skinSSS);
1227
+ }
1146
1228
  if (!this._postEffectSSAO.get()) {
1147
1229
  const ssao = new SAO();
1148
1230
  ssao.enabled = false;
@@ -1338,6 +1420,10 @@ const SSS_QUALITY_PRESET_SETTINGS = {
1338
1420
  *
1339
1421
  * @internal
1340
1422
  */ setHistoryResourceManager(manager) {
1423
+ const current = Camera._historyResourceManager.get(this);
1424
+ if (current && current !== manager) {
1425
+ current.dispose();
1426
+ }
1341
1427
  Camera._historyResourceManager.set(this, manager);
1342
1428
  }
1343
1429
  /** @internal */ setController(controller) {
@@ -1382,6 +1468,7 @@ const SSS_QUALITY_PRESET_SETTINGS = {
1382
1468
  this._postEffectMotionBlur.dispose();
1383
1469
  this._postEffectSSAO.dispose();
1384
1470
  this._postEffectSSS.dispose();
1471
+ this._postEffectSkinSSS.dispose();
1385
1472
  this._postEffectSSR.dispose();
1386
1473
  this._postEffectTAA.dispose();
1387
1474
  this._postEffectTonemap.dispose();