@zephyr3d/scene 0.1.2 → 0.3.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 (166) hide show
  1. package/dist/asset/assetmanager.js +83 -34
  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 +11 -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 +3220 -3680
  18. package/dist/index.js +23 -11
  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 +58 -186
  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 +124 -105
  30. package/dist/material/material.js.map +1 -1
  31. package/dist/material/meshmaterial.js +321 -145
  32. package/dist/material/meshmaterial.js.map +1 -1
  33. package/dist/material/mixins/albedocolor.js +32 -99
  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 +905 -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 +302 -94
  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 +9 -6
  72. package/dist/posteffect/bloom.js.map +1 -1
  73. package/dist/posteffect/compositor.js +15 -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 +11 -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/cull_visitor.js +24 -3
  84. package/dist/render/cull_visitor.js.map +1 -1
  85. package/dist/render/depthpass.js +46 -0
  86. package/dist/render/depthpass.js.map +1 -0
  87. package/dist/render/envlight.js +26 -24
  88. package/dist/render/envlight.js.map +1 -1
  89. package/dist/render/fullscreenquad.js +38 -0
  90. package/dist/render/fullscreenquad.js.map +1 -0
  91. package/dist/render/lightpass.js +98 -0
  92. package/dist/render/lightpass.js.map +1 -0
  93. package/dist/render/primitive.js +31 -0
  94. package/dist/render/primitive.js.map +1 -1
  95. package/dist/render/render_queue.js +113 -39
  96. package/dist/render/render_queue.js.map +1 -1
  97. package/dist/render/renderer.js +200 -0
  98. package/dist/render/renderer.js.map +1 -0
  99. package/dist/render/renderpass.js +10 -8
  100. package/dist/render/renderpass.js.map +1 -1
  101. package/dist/render/shadowmap_pass.js +3 -4
  102. package/dist/render/shadowmap_pass.js.map +1 -1
  103. package/dist/render/sky.js +33 -19
  104. package/dist/render/sky.js.map +1 -1
  105. package/dist/scene/batchgroup.js +126 -0
  106. package/dist/scene/batchgroup.js.map +1 -0
  107. package/dist/scene/environment.js +9 -6
  108. package/dist/scene/environment.js.map +1 -1
  109. package/dist/scene/graph_node.js +11 -0
  110. package/dist/scene/graph_node.js.map +1 -1
  111. package/dist/scene/mesh.js +48 -14
  112. package/dist/scene/mesh.js.map +1 -1
  113. package/dist/scene/octree.js +37 -72
  114. package/dist/scene/octree.js.map +1 -1
  115. package/dist/scene/octree_update_visitor.js +5 -1
  116. package/dist/scene/octree_update_visitor.js.map +1 -1
  117. package/dist/scene/scene.js +17 -31
  118. package/dist/scene/scene.js.map +1 -1
  119. package/dist/scene/scene_node.js +59 -52
  120. package/dist/scene/scene_node.js.map +1 -1
  121. package/dist/scene/terrain/grass.js +4 -14
  122. package/dist/scene/terrain/grass.js.map +1 -1
  123. package/dist/scene/terrain/patch.js +3 -3
  124. package/dist/scene/terrain/terrain.js +4 -9
  125. package/dist/scene/terrain/terrain.js.map +1 -1
  126. package/dist/scene/xform.js +61 -36
  127. package/dist/scene/xform.js.map +1 -1
  128. package/dist/shaders/framework.js +17 -3
  129. package/dist/shaders/framework.js.map +1 -1
  130. package/dist/shaders/misc.js +13 -161
  131. package/dist/shaders/misc.js.map +1 -1
  132. package/dist/shaders/noise.js +7 -7
  133. package/dist/shaders/pbr.js +1 -82
  134. package/dist/shaders/pbr.js.map +1 -1
  135. package/dist/shaders/shadow.js +33 -31
  136. package/dist/shaders/shadow.js.map +1 -1
  137. package/dist/shaders/water.js +3 -9
  138. package/dist/shaders/water.js.map +1 -1
  139. package/dist/shadow/esm.js +12 -9
  140. package/dist/shadow/esm.js.map +1 -1
  141. package/dist/shadow/pcf_opt.js +15 -15
  142. package/dist/shadow/pcf_pd.js +15 -15
  143. package/dist/shadow/shadowmapper.js +35 -21
  144. package/dist/shadow/shadowmapper.js.map +1 -1
  145. package/dist/shadow/ssm.js +21 -55
  146. package/dist/shadow/ssm.js.map +1 -1
  147. package/dist/shadow/vsm.js +16 -13
  148. package/dist/shadow/vsm.js.map +1 -1
  149. package/dist/shapes/box.js +15 -6
  150. package/dist/shapes/box.js.map +1 -1
  151. package/dist/shapes/cylinder.js +1 -4
  152. package/dist/shapes/cylinder.js.map +1 -1
  153. package/dist/shapes/shape.js +5 -0
  154. package/dist/shapes/shape.js.map +1 -1
  155. package/dist/shapes/sphere.js +3 -0
  156. package/dist/shapes/sphere.js.map +1 -1
  157. package/dist/shapes/torus.js +2 -2
  158. package/dist/utility/bounding_volume.js +27 -27
  159. package/dist/utility/pmrem.js +4 -4
  160. package/dist/utility/sheenlut.js +196 -0
  161. package/dist/utility/sheenlut.js.map +1 -0
  162. package/dist/utility/shprojection.js +0 -1
  163. package/dist/utility/shprojection.js.map +1 -1
  164. package/dist/values.js +11 -8
  165. package/dist/values.js.map +1 -1
  166. package/package.json +6 -6
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}