@zephyr3d/scene 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/asset/assetmanager.js +1 -1
  2. package/dist/asset/loaders/gltf/gltf_loader.js +4 -8
  3. package/dist/asset/loaders/gltf/gltf_loader.js.map +1 -1
  4. package/dist/camera/camera.js +25 -2
  5. package/dist/camera/camera.js.map +1 -1
  6. package/dist/index.d.ts +4641 -4371
  7. package/dist/index.js +4 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/material/grassmaterial.js +15 -0
  10. package/dist/material/grassmaterial.js.map +1 -1
  11. package/dist/material/material.js +79 -347
  12. package/dist/material/material.js.map +1 -1
  13. package/dist/material/meshmaterial.js +88 -100
  14. package/dist/material/meshmaterial.js.map +1 -1
  15. package/dist/material/mixins/albedocolor.js +11 -3
  16. package/dist/material/mixins/albedocolor.js.map +1 -1
  17. package/dist/material/mixins/lightmodel/blinnphong.js +1 -1
  18. package/dist/material/mixins/lightmodel/pbrspecularglossness.js +8 -1
  19. package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
  20. package/dist/material/mixins/pbr/common.js +2 -0
  21. package/dist/material/mixins/pbr/common.js.map +1 -1
  22. package/dist/material/mixins/vertexcolor.js +2 -0
  23. package/dist/material/mixins/vertexcolor.js.map +1 -1
  24. package/dist/material/pbrmr.js +1 -1
  25. package/dist/material/pbrsg.js +9 -4
  26. package/dist/material/pbrsg.js.map +1 -1
  27. package/dist/material/shader/helper.js +94 -115
  28. package/dist/material/shader/helper.js.map +1 -1
  29. package/dist/material/terrainmaterial.js +16 -0
  30. package/dist/material/terrainmaterial.js.map +1 -1
  31. package/dist/posteffect/bloom.js +3 -4
  32. package/dist/posteffect/bloom.js.map +1 -1
  33. package/dist/posteffect/compositor.js +5 -6
  34. package/dist/posteffect/compositor.js.map +1 -1
  35. package/dist/posteffect/fxaa.js +1 -2
  36. package/dist/posteffect/fxaa.js.map +1 -1
  37. package/dist/posteffect/grayscale.js +1 -2
  38. package/dist/posteffect/grayscale.js.map +1 -1
  39. package/dist/posteffect/posteffect.js +0 -74
  40. package/dist/posteffect/posteffect.js.map +1 -1
  41. package/dist/posteffect/sao.js +2 -5
  42. package/dist/posteffect/sao.js.map +1 -1
  43. package/dist/posteffect/tonemap.js +1 -2
  44. package/dist/posteffect/tonemap.js.map +1 -1
  45. package/dist/posteffect/water.js +18 -14
  46. package/dist/posteffect/water.js.map +1 -1
  47. package/dist/render/abuffer_oit.js +352 -0
  48. package/dist/render/abuffer_oit.js.map +1 -0
  49. package/dist/render/depthpass.js +10 -13
  50. package/dist/render/depthpass.js.map +1 -1
  51. package/dist/render/drawable_mixin.js +110 -0
  52. package/dist/render/drawable_mixin.js.map +1 -0
  53. package/dist/render/globalbindgroup_allocator.js +58 -0
  54. package/dist/render/globalbindgroup_allocator.js.map +1 -0
  55. package/dist/render/lightpass.js +69 -43
  56. package/dist/render/lightpass.js.map +1 -1
  57. package/dist/render/oit.js +16 -0
  58. package/dist/render/oit.js.map +1 -0
  59. package/dist/render/render_queue.js +250 -96
  60. package/dist/render/render_queue.js.map +1 -1
  61. package/dist/render/renderbundle_wrapper.js +20 -0
  62. package/dist/render/renderbundle_wrapper.js.map +1 -0
  63. package/dist/render/renderer.js +12 -9
  64. package/dist/render/renderer.js.map +1 -1
  65. package/dist/render/renderpass.js +92 -34
  66. package/dist/render/renderpass.js.map +1 -1
  67. package/dist/render/shadowmap_pass.js +12 -31
  68. package/dist/render/shadowmap_pass.js.map +1 -1
  69. package/dist/render/sky.js +2 -2
  70. package/dist/render/watermesh.js +140 -48
  71. package/dist/render/watermesh.js.map +1 -1
  72. package/dist/render/weightedblended_oit.js +188 -0
  73. package/dist/render/weightedblended_oit.js.map +1 -0
  74. package/dist/scene/batchgroup.js +8 -35
  75. package/dist/scene/batchgroup.js.map +1 -1
  76. package/dist/scene/environment.js +2 -3
  77. package/dist/scene/environment.js.map +1 -1
  78. package/dist/scene/graph_node.js +1 -1
  79. package/dist/scene/mesh.js +11 -32
  80. package/dist/scene/mesh.js.map +1 -1
  81. package/dist/scene/octree.js +3 -3
  82. package/dist/scene/scene.js +2 -29
  83. package/dist/scene/scene.js.map +1 -1
  84. package/dist/scene/scene_node.js +6 -1
  85. package/dist/scene/scene_node.js.map +1 -1
  86. package/dist/scene/terrain/grass.js +17 -11
  87. package/dist/scene/terrain/grass.js.map +1 -1
  88. package/dist/scene/terrain/patch.js +18 -15
  89. package/dist/scene/terrain/patch.js.map +1 -1
  90. package/dist/scene/terrain/quadtree.js +1 -1
  91. package/dist/scene/terrain/terrain.js +0 -8
  92. package/dist/scene/terrain/terrain.js.map +1 -1
  93. package/dist/shaders/water.js +4 -4
  94. package/dist/shadow/esm.js +0 -1
  95. package/dist/shadow/esm.js.map +1 -1
  96. package/dist/shadow/shadowmapper.js +1 -2
  97. package/dist/shadow/shadowmapper.js.map +1 -1
  98. package/dist/shadow/vsm.js +1 -2
  99. package/dist/shadow/vsm.js.map +1 -1
  100. package/package.json +4 -4
@@ -189,7 +189,7 @@ import { TGALoader } from './loaders/image/tga_Loader.js';
189
189
  * @returns The created model node
190
190
  */ async fetchModel(scene, url, options) {
191
191
  const sharedModel = await this.fetchModelData(scene, url, options?.mimeType, options?.postProcess);
192
- return this.createSceneNode(scene, sharedModel, !options?.disableInstancing);
192
+ return this.createSceneNode(scene, sharedModel, !!options?.enableInstancing);
193
193
  }
194
194
  /** @internal */ async loadTextData(url, postProcess) {
195
195
  let text = await this._httpRequest.requestText(url);
@@ -6,7 +6,7 @@ import '../../../material/shader/helper.js';
6
6
  import '../../../material/lambert.js';
7
7
  import '../../../material/blinn.js';
8
8
  import { UnlitMaterial } from '../../../material/unlit.js';
9
- import '../../../material/material.js';
9
+ import '@zephyr3d/device';
10
10
  import '../../../material/meshmaterial.js';
11
11
  import '../../../material/grassmaterial.js';
12
12
  import '../../../material/terrainmaterial.js';
@@ -59,7 +59,6 @@ import { AbstractModelLoader } from '../loader.js';
59
59
  return null;
60
60
  }
61
61
  async loadJson(url, gltf) {
62
- console.log(`GLTF extensions used: ${gltf.extensionsUsed || []}`);
63
62
  gltf._accessors = [];
64
63
  gltf._bufferCache = {};
65
64
  gltf._textureCache = {};
@@ -395,8 +394,7 @@ import { AbstractModelLoader } from '../loader.js';
395
394
  unlitMaterial.alphaCutoff = assetMaterial.common.alphaCutoff;
396
395
  }
397
396
  if (assetMaterial.common.doubleSided) {
398
- const rasterizerState = unlitMaterial.stateSet.useRasterizerState();
399
- rasterizerState.setCullMode('none');
397
+ unlitMaterial.cullMode = 'none';
400
398
  }
401
399
  return unlitMaterial;
402
400
  } else if (assetMaterial.type === 'pbrSpecularGlossiness') {
@@ -448,8 +446,7 @@ import { AbstractModelLoader } from '../loader.js';
448
446
  pbrMaterial.alphaCutoff = assetPBRMaterial.common.alphaCutoff;
449
447
  }
450
448
  if (assetPBRMaterial.common.doubleSided) {
451
- const rasterizerState = pbrMaterial.stateSet.useRasterizerState();
452
- rasterizerState.setCullMode('none');
449
+ pbrMaterial.cullMode = 'none';
453
450
  }
454
451
  pbrMaterial.vertexNormal = !!assetMaterial.common.vertexNormal;
455
452
  return pbrMaterial;
@@ -557,8 +554,7 @@ import { AbstractModelLoader } from '../loader.js';
557
554
  pbrMaterial.alphaCutoff = assetPBRMaterial.common.alphaCutoff;
558
555
  }
559
556
  if (assetPBRMaterial.common.doubleSided) {
560
- const rasterizerState = pbrMaterial.stateSet.useRasterizerState();
561
- rasterizerState.setCullMode('none');
557
+ pbrMaterial.cullMode = 'none';
562
558
  }
563
559
  pbrMaterial.vertexNormal = !!assetMaterial.common.vertexNormal;
564
560
  return pbrMaterial;
@@ -1 +1 @@
1
- {"version":3,"file":"gltf_loader.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"gltf_loader.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,17 +2,16 @@ import { Matrix4x4, Vector4, Frustum } from '@zephyr3d/base';
2
2
  import { SceneNode } from '../scene/scene_node.js';
3
3
  import { Application } from '../app.js';
4
4
  import '../scene/octree.js';
5
+ import '@zephyr3d/device';
5
6
  import '../material/shader/helper.js';
6
7
  import '../material/lambert.js';
7
8
  import '../material/blinn.js';
8
9
  import '../material/unlit.js';
9
- import '../material/material.js';
10
10
  import '../material/meshmaterial.js';
11
11
  import '../material/grassmaterial.js';
12
12
  import '../material/terrainmaterial.js';
13
13
  import '../material/pbrmr.js';
14
14
  import '../material/pbrsg.js';
15
- import '@zephyr3d/device';
16
15
  import { SceneRenderer } from '../render/renderer.js';
17
16
  import '../render/sky.js';
18
17
  import '../render/clipmap.js';
@@ -38,6 +37,9 @@ import '../render/watermesh.js';
38
37
  /** @internal */ _scissor;
39
38
  /** @internal */ _clearColor;
40
39
  /** @internal */ _clipMask;
40
+ /** @internal */ _oit;
41
+ /** @internal */ _depthPrePass;
42
+ /** @internal */ _commandBufferReuse;
41
43
  /**
42
44
  * Creates a new camera node
43
45
  * @param scene - The scene that the camera belongs to
@@ -59,6 +61,9 @@ import '../render/watermesh.js';
59
61
  this._sampleCount = 1;
60
62
  this._frustum = null;
61
63
  this._frustumV = null;
64
+ this._oit = null;
65
+ this._depthPrePass = false;
66
+ this._commandBufferReuse = true;
62
67
  }
63
68
  /** Clip plane in camera space */ get clipPlane() {
64
69
  return this._clipPlane;
@@ -67,6 +72,18 @@ import '../render/watermesh.js';
67
72
  this._clipPlane = plane;
68
73
  this._invalidate(false);
69
74
  }
75
+ /** Whether to perform a depth pass */ get depthPrePass() {
76
+ return this._depthPrePass;
77
+ }
78
+ set depthPrePass(val) {
79
+ this._depthPrePass = !!val;
80
+ }
81
+ /** Whether to allow command buffer reuse optimization */ get commandBufferReuse() {
82
+ return this._commandBufferReuse;
83
+ }
84
+ set commandBufferReuse(val) {
85
+ this._commandBufferReuse = !!val;
86
+ }
70
87
  /**
71
88
  * Sample count for MSAA
72
89
  *
@@ -82,6 +99,12 @@ import '../render/watermesh.js';
82
99
  this._sampleCount = val;
83
100
  }
84
101
  }
102
+ /** OIT */ get oit() {
103
+ return this._oit;
104
+ }
105
+ set oit(val) {
106
+ this._oit = val;
107
+ }
85
108
  /** Clip plane mask */ get clipMask() {
86
109
  return this._clipMask;
87
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"camera.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"camera.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}