@zephyr3d/scene 0.1.1 → 0.2.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 (146) hide show
  1. package/dist/asset/assetmanager.js +124 -67
  2. package/dist/asset/assetmanager.js.map +1 -1
  3. package/dist/asset/builtin.js +2 -2
  4. package/dist/asset/loaders/gltf/gltf_loader.js +105 -59
  5. package/dist/asset/loaders/gltf/gltf_loader.js.map +1 -1
  6. package/dist/asset/loaders/hdr/hdr.js +1 -1
  7. package/dist/blitter/blitter.js +0 -1
  8. package/dist/blitter/blitter.js.map +1 -1
  9. package/dist/blitter/depthlimitedgaussion.js +0 -1
  10. package/dist/blitter/depthlimitedgaussion.js.map +1 -1
  11. package/dist/blitter/gaussianblur.js +0 -1
  12. package/dist/blitter/gaussianblur.js.map +1 -1
  13. package/dist/camera/camera.js +10 -8
  14. package/dist/camera/camera.js.map +1 -1
  15. package/dist/camera/orbit.js +24 -7
  16. package/dist/camera/orbit.js.map +1 -1
  17. package/dist/index.d.ts +1842 -2484
  18. package/dist/index.js +21 -10
  19. package/dist/index.js.map +1 -1
  20. package/dist/material/blinn.js +47 -57
  21. package/dist/material/blinn.js.map +1 -1
  22. package/dist/material/grassmat.js +127 -0
  23. package/dist/material/grassmat.js.map +1 -0
  24. package/dist/material/grassmaterial.js +66 -194
  25. package/dist/material/grassmaterial.js.map +1 -1
  26. package/dist/material/lambert.js +48 -22
  27. package/dist/material/lambert.js.map +1 -1
  28. package/dist/material/lightmodel.js +4 -4
  29. package/dist/material/material.js +100 -59
  30. package/dist/material/material.js.map +1 -1
  31. package/dist/material/meshmaterial.js +227 -186
  32. package/dist/material/meshmaterial.js.map +1 -1
  33. package/dist/material/mixins/albedocolor.js +29 -100
  34. package/dist/material/mixins/albedocolor.js.map +1 -1
  35. package/dist/material/mixins/foliage.js +47 -0
  36. package/dist/material/mixins/foliage.js.map +1 -0
  37. package/dist/material/mixins/ggxlut.js +213 -0
  38. package/dist/material/mixins/ggxlut.js.map +1 -0
  39. package/dist/material/mixins/lightmodel/blinnphong.js +89 -0
  40. package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -0
  41. package/dist/material/mixins/lightmodel/lambert.js +58 -0
  42. package/dist/material/mixins/lightmodel/lambert.js.map +1 -0
  43. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +132 -0
  44. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -0
  45. package/dist/material/mixins/lightmodel/pbrspecularglossness.js +105 -0
  46. package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -0
  47. package/dist/material/mixins/lit.js +464 -0
  48. package/dist/material/mixins/lit.js.map +1 -0
  49. package/dist/material/mixins/pbr/common.js +451 -0
  50. package/dist/material/mixins/pbr/common.js.map +1 -0
  51. package/dist/material/mixins/pbr/metallicroughness.js +126 -0
  52. package/dist/material/mixins/pbr/metallicroughness.js.map +1 -0
  53. package/dist/material/mixins/pbr/specularglossness.js +104 -0
  54. package/dist/material/mixins/pbr/specularglossness.js.map +1 -0
  55. package/dist/material/mixins/texture.js +157 -0
  56. package/dist/material/mixins/texture.js.map +1 -0
  57. package/dist/material/mixins/vertexcolor.js +16 -11
  58. package/dist/material/mixins/vertexcolor.js.map +1 -1
  59. package/dist/material/pbrmr.js +65 -0
  60. package/dist/material/pbrmr.js.map +1 -0
  61. package/dist/material/pbrsg.js +64 -0
  62. package/dist/material/pbrsg.js.map +1 -0
  63. package/dist/material/shader/helper.js +903 -0
  64. package/dist/material/shader/helper.js.map +1 -0
  65. package/dist/material/terrainmat.js +357 -0
  66. package/dist/material/terrainmat.js.map +1 -0
  67. package/dist/material/terrainmaterial.js +311 -103
  68. package/dist/material/terrainmaterial.js.map +1 -1
  69. package/dist/material/unlit.js +12 -9
  70. package/dist/material/unlit.js.map +1 -1
  71. package/dist/posteffect/bloom.js +8 -6
  72. package/dist/posteffect/bloom.js.map +1 -1
  73. package/dist/posteffect/compositor.js +14 -6
  74. package/dist/posteffect/compositor.js.map +1 -1
  75. package/dist/posteffect/posteffect.js +1 -1
  76. package/dist/posteffect/sao.js +8 -5
  77. package/dist/posteffect/sao.js.map +1 -1
  78. package/dist/posteffect/tonemap.js +2 -2
  79. package/dist/posteffect/water.js +10 -8
  80. package/dist/posteffect/water.js.map +1 -1
  81. package/dist/render/cluster_light.js +6 -5
  82. package/dist/render/cluster_light.js.map +1 -1
  83. package/dist/render/depthpass.js +46 -0
  84. package/dist/render/depthpass.js.map +1 -0
  85. package/dist/render/envlight.js +26 -24
  86. package/dist/render/envlight.js.map +1 -1
  87. package/dist/render/fullscreenquad.js +38 -0
  88. package/dist/render/fullscreenquad.js.map +1 -0
  89. package/dist/render/lightpass.js +98 -0
  90. package/dist/render/lightpass.js.map +1 -0
  91. package/dist/render/render_queue.js +2 -1
  92. package/dist/render/render_queue.js.map +1 -1
  93. package/dist/render/renderer.js +191 -0
  94. package/dist/render/renderer.js.map +1 -0
  95. package/dist/render/renderpass.js +10 -8
  96. package/dist/render/renderpass.js.map +1 -1
  97. package/dist/render/shadowmap_pass.js +3 -4
  98. package/dist/render/shadowmap_pass.js.map +1 -1
  99. package/dist/render/sky.js +31 -15
  100. package/dist/render/sky.js.map +1 -1
  101. package/dist/scene/environment.js +8 -6
  102. package/dist/scene/environment.js.map +1 -1
  103. package/dist/scene/graph_node.js +3 -0
  104. package/dist/scene/graph_node.js.map +1 -1
  105. package/dist/scene/mesh.js +13 -12
  106. package/dist/scene/mesh.js.map +1 -1
  107. package/dist/scene/scene.js +11 -15
  108. package/dist/scene/scene.js.map +1 -1
  109. package/dist/scene/scene_node.js +10 -16
  110. package/dist/scene/scene_node.js.map +1 -1
  111. package/dist/scene/terrain/grass.js +4 -14
  112. package/dist/scene/terrain/grass.js.map +1 -1
  113. package/dist/scene/terrain/patch.js +3 -3
  114. package/dist/scene/terrain/terrain.js +4 -9
  115. package/dist/scene/terrain/terrain.js.map +1 -1
  116. package/dist/shaders/framework.js +17 -3
  117. package/dist/shaders/framework.js.map +1 -1
  118. package/dist/shaders/misc.js +13 -161
  119. package/dist/shaders/misc.js.map +1 -1
  120. package/dist/shaders/noise.js +7 -7
  121. package/dist/shaders/pbr.js +1 -82
  122. package/dist/shaders/pbr.js.map +1 -1
  123. package/dist/shaders/shadow.js +33 -31
  124. package/dist/shaders/shadow.js.map +1 -1
  125. package/dist/shaders/water.js +3 -9
  126. package/dist/shaders/water.js.map +1 -1
  127. package/dist/shadow/esm.js +11 -9
  128. package/dist/shadow/esm.js.map +1 -1
  129. package/dist/shadow/pcf_opt.js +15 -15
  130. package/dist/shadow/pcf_pd.js +15 -15
  131. package/dist/shadow/shadowmapper.js +13 -15
  132. package/dist/shadow/shadowmapper.js.map +1 -1
  133. package/dist/shadow/ssm.js +21 -55
  134. package/dist/shadow/ssm.js.map +1 -1
  135. package/dist/shadow/vsm.js +15 -13
  136. package/dist/shadow/vsm.js.map +1 -1
  137. package/dist/shapes/torus.js +2 -2
  138. package/dist/utility/bounding_volume.js +27 -27
  139. package/dist/utility/pmrem.js +4 -4
  140. package/dist/utility/sheenlut.js +196 -0
  141. package/dist/utility/sheenlut.js.map +1 -0
  142. package/dist/utility/shprojection.js +0 -1
  143. package/dist/utility/shprojection.js.map +1 -1
  144. package/dist/values.js +11 -8
  145. package/dist/values.js.map +1 -1
  146. package/package.json +9 -9
@@ -2,15 +2,17 @@ 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 '../material/material.js';
6
- import '@zephyr3d/device';
7
- import '../shaders/framework.js';
8
- import '../render/scatteringlut.js';
5
+ import '../material/shader/helper.js';
9
6
  import '../material/lambert.js';
10
7
  import '../material/blinn.js';
11
8
  import '../material/unlit.js';
12
- import '../material/lightmodel.js';
13
- import { ForwardRenderScheme } from '../render/forward.js';
9
+ import '../material/material.js';
10
+ import '../material/meshmaterial.js';
11
+ import '../material/grassmaterial.js';
12
+ import '../material/terrainmaterial.js';
13
+ import '../material/pbrmr.js';
14
+ import '../material/pbrsg.js';
15
+ import { SceneRenderer } from '../render/renderer.js';
14
16
  import '../render/sky.js';
15
17
  import '../render/clipmap.js';
16
18
  import '../render/watermesh.js';
@@ -299,8 +301,8 @@ import '../render/watermesh.js';
299
301
  device.pushDeviceStates();
300
302
  device.reverseVertexWindingOrder(false);
301
303
  device.setFramebuffer(this._framebuffer);
302
- ForwardRenderScheme.setClearColor(this._clearColor);
303
- ForwardRenderScheme.renderScene(scene, this, compositor, logger);
304
+ SceneRenderer.setClearColor(this._clearColor);
305
+ SceneRenderer.renderScene(scene, this, compositor, logger);
304
306
  device.popDeviceStates();
305
307
  }
306
308
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"camera.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"camera.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -24,6 +24,7 @@ import { BaseCameraController } from './base.js';
24
24
  */ constructor(options){
25
25
  super();
26
26
  this.options = Object.assign({
27
+ center: Vector3.zero(),
27
28
  distance: 1,
28
29
  damping: 0.1,
29
30
  moveSpeed: 0.2,
@@ -40,6 +41,12 @@ import { BaseCameraController } from './base.js';
40
41
  this.quat = new Quaternion();
41
42
  this.scale = 1;
42
43
  }
44
+ /** Rotation center */ get center() {
45
+ return this.options.center;
46
+ }
47
+ set center(val) {
48
+ this.options.center.set(val);
49
+ }
43
50
  /**
44
51
  * {@inheritDoc BaseCameraController.reset}
45
52
  * @override
@@ -49,6 +56,7 @@ import { BaseCameraController } from './base.js';
49
56
  this.lastMouseY = 0;
50
57
  this.rotateX = 0;
51
58
  this.rotateY = 0;
59
+ this.upVector = Vector3.axisPY();
52
60
  this.scale = 1;
53
61
  this._loadCameraParams();
54
62
  }
@@ -80,8 +88,6 @@ import { BaseCameraController } from './base.js';
80
88
  * {@inheritDoc BaseCameraController._onMouseWheel}
81
89
  * @override
82
90
  */ _onMouseWheel(evt) {
83
- console.log(`wheel deltaX: ${evt.deltaX}`);
84
- console.log(`wheel deltaY: ${evt.deltaY}`);
85
91
  const factor = Math.pow(0.9, Math.abs(this.options.zoomSpeed));
86
92
  if (evt.deltaY > 0) {
87
93
  this.scale /= factor;
@@ -106,11 +112,15 @@ import { BaseCameraController } from './base.js';
106
112
  return false;
107
113
  }
108
114
  /** @internal */ _loadCameraParams() {
109
- if (this._getCamera()) {
110
- const mat = this._getCamera().worldMatrix;
111
- mat.decomposeLookAt(this.eyePos, this.target);
112
- Vector3.normalize(Vector3.sub(this.eyePos, this.target), this.direction);
113
- Vector3.sub(this.eyePos, Vector3.scale(this.direction, this.options.distance), this.target);
115
+ const camera = this._getCamera();
116
+ if (camera) {
117
+ this.eyePos = this._getCamera().position;
118
+ this.target.set(this.options.center);
119
+ camera.lookAt(this.eyePos, this.target, this.upVector);
120
+ Vector3.sub(this.eyePos, this.target, this.direction);
121
+ this.options.distance = this.direction.magnitude;
122
+ this.direction.inplaceNormalize();
123
+ const mat = this._getCamera().localMatrix;
114
124
  this.xVector.setXYZ(mat[0], mat[1], mat[2]);
115
125
  }
116
126
  }
@@ -126,6 +136,13 @@ import { BaseCameraController } from './base.js';
126
136
  * @override
127
137
  */ update() {
128
138
  if (this._getCamera()) {
139
+ const dx = this.options.center.x - this.target.x;
140
+ const dy = this.options.center.y - this.target.y;
141
+ const dz = this.options.center.z - this.target.z;
142
+ this.eyePos.x += dx;
143
+ this.eyePos.y += dy;
144
+ this.eyePos.z += dz;
145
+ this.target.set(this.options.center);
129
146
  Quaternion.fromAxisAngle(this.xVector, this.rotateX, this.quat);
130
147
  this.quat.transform(this.eyePos.subBy(this.target), this.eyePos);
131
148
  Quaternion.fromEulerAngle(0, this.rotateY, 0, 'XYZ', this.quat);
@@ -1 +1 @@
1
- {"version":3,"file":"orbit.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"orbit.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}