@zephyr3d/scene 0.4.0 → 0.6.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 (233) hide show
  1. package/dist/animation/animation.js +25 -117
  2. package/dist/animation/animation.js.map +1 -1
  3. package/dist/animation/animationset.js +191 -51
  4. package/dist/animation/animationset.js.map +1 -1
  5. package/dist/animation/animationtrack.js +6 -18
  6. package/dist/animation/animationtrack.js.map +1 -1
  7. package/dist/animation/eulerrotationtrack.js +16 -6
  8. package/dist/animation/eulerrotationtrack.js.map +1 -1
  9. package/dist/animation/morphtarget.js +104 -0
  10. package/dist/animation/morphtarget.js.map +1 -0
  11. package/dist/animation/morphtrack.js +70 -0
  12. package/dist/animation/morphtrack.js.map +1 -0
  13. package/dist/animation/rotationtrack.js +15 -7
  14. package/dist/animation/rotationtrack.js.map +1 -1
  15. package/dist/animation/scaletrack.js +15 -7
  16. package/dist/animation/scaletrack.js.map +1 -1
  17. package/dist/animation/skeleton.js +107 -5
  18. package/dist/animation/skeleton.js.map +1 -1
  19. package/dist/animation/translationtrack.js +15 -7
  20. package/dist/animation/translationtrack.js.map +1 -1
  21. package/dist/app.js +4 -26
  22. package/dist/app.js.map +1 -1
  23. package/dist/asset/assetmanager.js +60 -109
  24. package/dist/asset/assetmanager.js.map +1 -1
  25. package/dist/asset/loaders/dds/dds.js +77 -3
  26. package/dist/asset/loaders/dds/dds.js.map +1 -1
  27. package/dist/asset/loaders/dds/dds_loader.js +1 -1
  28. package/dist/asset/loaders/gltf/gltf_loader.js +287 -40
  29. package/dist/asset/loaders/gltf/gltf_loader.js.map +1 -1
  30. package/dist/asset/loaders/image/tga_Loader.js +1 -1
  31. package/dist/asset/loaders/image/webimage_loader.js +16 -0
  32. package/dist/asset/loaders/image/webimage_loader.js.map +1 -1
  33. package/dist/asset/model.js +16 -9
  34. package/dist/asset/model.js.map +1 -1
  35. package/dist/blitter/bilateralblur.js +222 -0
  36. package/dist/{render/temporalcache.js.map → blitter/bilateralblur.js.map} +1 -1
  37. package/dist/blitter/blitter.js +9 -3
  38. package/dist/blitter/blitter.js.map +1 -1
  39. package/dist/blitter/depthlimitedgaussion.js +96 -39
  40. package/dist/blitter/depthlimitedgaussion.js.map +1 -1
  41. package/dist/blitter/gaussianblur.js +21 -21
  42. package/dist/camera/camera.js +200 -4
  43. package/dist/camera/camera.js.map +1 -1
  44. package/dist/index.d.ts +6406 -5786
  45. package/dist/index.js +12 -10
  46. package/dist/index.js.map +1 -1
  47. package/dist/material/blinn.js +15 -4
  48. package/dist/material/blinn.js.map +1 -1
  49. package/dist/material/lambert.js +26 -17
  50. package/dist/material/lambert.js.map +1 -1
  51. package/dist/material/material.js +13 -2
  52. package/dist/material/material.js.map +1 -1
  53. package/dist/material/meshmaterial.js +103 -31
  54. package/dist/material/meshmaterial.js.map +1 -1
  55. package/dist/material/mixins/albedocolor.js +5 -4
  56. package/dist/material/mixins/albedocolor.js.map +1 -1
  57. package/dist/material/mixins/lightmodel/blinnphong.js +17 -7
  58. package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
  59. package/dist/material/mixins/lightmodel/lambert.js +5 -5
  60. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +16 -7
  61. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
  62. package/dist/material/mixins/lightmodel/pbrspecularglossness.js +16 -7
  63. package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
  64. package/dist/material/mixins/lit.js +2 -2
  65. package/dist/material/mixins/pbr/common.js +454 -19
  66. package/dist/material/mixins/pbr/common.js.map +1 -1
  67. package/dist/material/pbrmr.js +28 -6
  68. package/dist/material/pbrmr.js.map +1 -1
  69. package/dist/material/pbrsg.js +27 -9
  70. package/dist/material/pbrsg.js.map +1 -1
  71. package/dist/material/shader/helper.js +128 -23
  72. package/dist/material/shader/helper.js.map +1 -1
  73. package/dist/material/unlit.js +8 -4
  74. package/dist/material/unlit.js.map +1 -1
  75. package/dist/posteffect/bloom.js +34 -53
  76. package/dist/posteffect/bloom.js.map +1 -1
  77. package/dist/posteffect/compositor.js +48 -58
  78. package/dist/posteffect/compositor.js.map +1 -1
  79. package/dist/posteffect/fxaa.js +3 -11
  80. package/dist/posteffect/fxaa.js.map +1 -1
  81. package/dist/posteffect/grayscale.js +3 -11
  82. package/dist/posteffect/grayscale.js.map +1 -1
  83. package/dist/posteffect/posteffect.js +4 -0
  84. package/dist/posteffect/posteffect.js.map +1 -1
  85. package/dist/posteffect/sao.js +55 -48
  86. package/dist/posteffect/sao.js.map +1 -1
  87. package/dist/posteffect/ssr.js +536 -0
  88. package/dist/{material/lit.js.map → posteffect/ssr.js.map} +1 -1
  89. package/dist/posteffect/tonemap.js +3 -11
  90. package/dist/posteffect/tonemap.js.map +1 -1
  91. package/dist/posteffect/water.js +306 -340
  92. package/dist/posteffect/water.js.map +1 -1
  93. package/dist/render/abuffer_oit.js +2 -2
  94. package/dist/render/clipmap.js +16 -19
  95. package/dist/render/clipmap.js.map +1 -1
  96. package/dist/render/cull_visitor.js +8 -6
  97. package/dist/render/cull_visitor.js.map +1 -1
  98. package/dist/render/depthpass.js +30 -14
  99. package/dist/render/depthpass.js.map +1 -1
  100. package/dist/render/drawable_mixin.js +70 -22
  101. package/dist/render/drawable_mixin.js.map +1 -1
  102. package/dist/render/envlight.js +169 -33
  103. package/dist/render/envlight.js.map +1 -1
  104. package/dist/render/fft_wavegenerator.js +989 -0
  105. package/dist/{shaders/framework.js.map → render/fft_wavegenerator.js.map} +1 -1
  106. package/dist/render/gerstner_wavegenerator.js +265 -0
  107. package/dist/{material/standard.js.map → render/gerstner_wavegenerator.js.map} +1 -1
  108. package/dist/render/globalbindgroup_allocator.js +2 -1
  109. package/dist/render/globalbindgroup_allocator.js.map +1 -1
  110. package/dist/render/hzb.js +273 -0
  111. package/dist/{material/terrainlightmodel.js.map → render/hzb.js.map} +1 -1
  112. package/dist/render/lightpass.js +68 -28
  113. package/dist/render/lightpass.js.map +1 -1
  114. package/dist/render/objectcolorpass.js +51 -0
  115. package/dist/render/objectcolorpass.js.map +1 -0
  116. package/dist/render/render_queue.js +211 -158
  117. package/dist/render/render_queue.js.map +1 -1
  118. package/dist/render/renderbundle_wrapper.js +79 -0
  119. package/dist/render/renderbundle_wrapper.js.map +1 -1
  120. package/dist/render/renderer.js +151 -35
  121. package/dist/render/renderer.js.map +1 -1
  122. package/dist/render/renderpass.js +27 -20
  123. package/dist/render/renderpass.js.map +1 -1
  124. package/dist/render/shadowmap_pass.js +20 -14
  125. package/dist/render/shadowmap_pass.js.map +1 -1
  126. package/dist/render/sky.js +12 -13
  127. package/dist/render/sky.js.map +1 -1
  128. package/dist/render/watermesh.js +94 -828
  129. package/dist/render/watermesh.js.map +1 -1
  130. package/dist/render/wavegenerator.js +8 -0
  131. package/dist/render/wavegenerator.js.map +1 -0
  132. package/dist/render/weightedblended_oit.js +11 -28
  133. package/dist/render/weightedblended_oit.js.map +1 -1
  134. package/dist/scene/batchgroup.js +60 -14
  135. package/dist/scene/batchgroup.js.map +1 -1
  136. package/dist/scene/environment.js +24 -3
  137. package/dist/scene/environment.js.map +1 -1
  138. package/dist/scene/graph_node.js +0 -14
  139. package/dist/scene/graph_node.js.map +1 -1
  140. package/dist/scene/light.js +5 -5
  141. package/dist/scene/mesh.js +62 -15
  142. package/dist/scene/mesh.js.map +1 -1
  143. package/dist/scene/octree.js +5 -2
  144. package/dist/scene/octree.js.map +1 -1
  145. package/dist/scene/raycast_visitor.js +4 -2
  146. package/dist/scene/raycast_visitor.js.map +1 -1
  147. package/dist/scene/scene.js +6 -9
  148. package/dist/scene/scene.js.map +1 -1
  149. package/dist/scene/scene_node.js +11 -8
  150. package/dist/scene/scene_node.js.map +1 -1
  151. package/dist/scene/terrain/grass.js +10 -2
  152. package/dist/scene/terrain/grass.js.map +1 -1
  153. package/dist/scene/terrain/heightfield.js +135 -53
  154. package/dist/scene/terrain/heightfield.js.map +1 -1
  155. package/dist/scene/terrain/patch.js +10 -2
  156. package/dist/scene/terrain/patch.js.map +1 -1
  157. package/dist/scene/terrain/quadtree.js +2 -2
  158. package/dist/scene/terrain/terrain.js +1 -1
  159. package/dist/scene/xform.js +7 -9
  160. package/dist/scene/xform.js.map +1 -1
  161. package/dist/shaders/misc.js +10 -1
  162. package/dist/shaders/misc.js.map +1 -1
  163. package/dist/shaders/noise.js +81 -16
  164. package/dist/shaders/noise.js.map +1 -1
  165. package/dist/shaders/shadow.js +1 -9
  166. package/dist/shaders/shadow.js.map +1 -1
  167. package/dist/shaders/ssr.js +442 -0
  168. package/dist/{material/terrainmat.js.map → shaders/ssr.js.map} +1 -1
  169. package/dist/shaders/water.js +377 -250
  170. package/dist/shaders/water.js.map +1 -1
  171. package/dist/shadow/esm.js +4 -22
  172. package/dist/shadow/esm.js.map +1 -1
  173. package/dist/shadow/shadowmapper.js +56 -31
  174. package/dist/shadow/shadowmapper.js.map +1 -1
  175. package/dist/shadow/vsm.js +4 -24
  176. package/dist/shadow/vsm.js.map +1 -1
  177. package/dist/shapes/cylinder.js +6 -5
  178. package/dist/shapes/cylinder.js.map +1 -1
  179. package/dist/utility/bounding_volume.js +1 -53
  180. package/dist/utility/bounding_volume.js.map +1 -1
  181. package/dist/utility/draco/decoder.js +116 -0
  182. package/dist/utility/draco/decoder.js.map +1 -0
  183. package/dist/utility/misc.js +93 -0
  184. package/dist/utility/misc.js.map +1 -0
  185. package/dist/utility/shprojection.js +2 -7
  186. package/dist/utility/shprojection.js.map +1 -1
  187. package/dist/utility/textures/ggxlut.js +213 -0
  188. package/dist/utility/textures/ggxlut.js.map +1 -0
  189. package/dist/utility/textures/gradientnoise.js +61 -0
  190. package/dist/utility/textures/gradientnoise.js.map +1 -0
  191. package/dist/utility/textures/randomnoise.js +41 -0
  192. package/dist/utility/textures/randomnoise.js.map +1 -0
  193. package/dist/values.js +25 -1
  194. package/dist/values.js.map +1 -1
  195. package/package.json +5 -8
  196. package/dist/animation/usertrack.js +0 -47
  197. package/dist/animation/usertrack.js.map +0 -1
  198. package/dist/material/grassmat.js +0 -127
  199. package/dist/material/grassmat.js.map +0 -1
  200. package/dist/material/lightmodel.js +0 -2074
  201. package/dist/material/lightmodel.js.map +0 -1
  202. package/dist/material/lit.js +0 -578
  203. package/dist/material/mixins/pbr/metallicroughness.js +0 -126
  204. package/dist/material/mixins/pbr/metallicroughness.js.map +0 -1
  205. package/dist/material/mixins/pbr/specularglossness.js +0 -104
  206. package/dist/material/mixins/pbr/specularglossness.js.map +0 -1
  207. package/dist/material/pbr.js +0 -27
  208. package/dist/material/pbr.js.map +0 -1
  209. package/dist/material/standard.js +0 -282
  210. package/dist/material/terrainlightmodel.js +0 -259
  211. package/dist/material/terrainmat.js +0 -357
  212. package/dist/render/depth_pass.js +0 -47
  213. package/dist/render/depth_pass.js.map +0 -1
  214. package/dist/render/forward.js +0 -186
  215. package/dist/render/forward.js.map +0 -1
  216. package/dist/render/forward_pass.js +0 -137
  217. package/dist/render/forward_pass.js.map +0 -1
  218. package/dist/render/helper.js +0 -38
  219. package/dist/render/helper.js.map +0 -1
  220. package/dist/render/renderscheme.js +0 -61
  221. package/dist/render/renderscheme.js.map +0 -1
  222. package/dist/render/temporalcache.js +0 -222
  223. package/dist/scene/model.js +0 -111
  224. package/dist/scene/model.js.map +0 -1
  225. package/dist/scene/octree_update_visitor.js +0 -20
  226. package/dist/scene/octree_update_visitor.js.map +0 -1
  227. package/dist/shaders/builtins.js +0 -110
  228. package/dist/shaders/builtins.js.map +0 -1
  229. package/dist/shaders/framework.js +0 -723
  230. package/dist/shaders/lighting.js +0 -335
  231. package/dist/shaders/lighting.js.map +0 -1
  232. package/dist/utility/sheenlut.js +0 -196
  233. package/dist/utility/sheenlut.js.map +0 -1
@@ -1,7 +1,8 @@
1
- import { Matrix4x4, Vector4, Frustum } from '@zephyr3d/base';
1
+ import { Matrix4x4, Vector4, Vector3, Ray, 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 '../values.js';
5
6
  import '@zephyr3d/device';
6
7
  import '../material/shader/helper.js';
7
8
  import '../material/lambert.js';
@@ -15,7 +16,6 @@ import '../material/pbrsg.js';
15
16
  import { SceneRenderer } from '../render/renderer.js';
16
17
  import '../render/sky.js';
17
18
  import '../render/clipmap.js';
18
- import '../render/watermesh.js';
19
19
 
20
20
  /**
21
21
  * The camera node class
@@ -40,8 +40,25 @@ import '../render/watermesh.js';
40
40
  /** @internal */ _oit;
41
41
  /** @internal */ _depthPrePass;
42
42
  /** @internal */ _commandBufferReuse;
43
+ /** @internal */ _HiZ;
44
+ /** @internal */ _SSR;
45
+ /** @internal */ _ssrParams;
46
+ /** @internal */ _ssrMaxRoughness;
47
+ /** @internal */ _ssrRoughnessFactor;
48
+ /** @internal */ _ssrStride;
49
+ /** @internal */ _ssrCalcThickness;
50
+ /** @internal */ _ssrBlurriness;
51
+ /** @internal */ _ssrBlurDepthCutoff;
52
+ /** @internal */ _ssrBlurKernelSize;
53
+ /** @internal */ _ssrBlurStdDev;
54
+ /** @internal */ _picking;
55
+ /** @internal */ _pickPosX;
56
+ /** @internal */ _pickPosY;
57
+ /** @internal */ _pickResultPromise;
58
+ /** @internal */ _pickResult;
43
59
  /**
44
60
  * Creates a new camera node
61
+ *
45
62
  * @param scene - The scene that the camera belongs to
46
63
  * @param projectionMatrix - Projection matrix for this camera
47
64
  */ constructor(scene, projectionMatrix){
@@ -63,6 +80,20 @@ import '../render/watermesh.js';
63
80
  this._frustumV = null;
64
81
  this._oit = null;
65
82
  this._depthPrePass = false;
83
+ this._pickPosX = 0;
84
+ this._pickPosY = 0;
85
+ this._HiZ = false;
86
+ this._SSR = false;
87
+ this._ssrParams = new Vector4(100, 120, 0.5, 0);
88
+ this._ssrMaxRoughness = 0.8;
89
+ this._ssrRoughnessFactor = 1;
90
+ this._ssrStride = 2;
91
+ this._ssrCalcThickness = false;
92
+ this._ssrBlurriness = 0.05;
93
+ this._ssrBlurDepthCutoff = 2;
94
+ this._ssrBlurKernelSize = 17;
95
+ this._ssrBlurStdDev = 10;
96
+ this._pickResult = null;
66
97
  this._commandBufferReuse = true;
67
98
  }
68
99
  /** Clip plane in camera space */ get clipPlane() {
@@ -72,6 +103,125 @@ import '../render/watermesh.js';
72
103
  this._clipPlane = plane;
73
104
  this._invalidate(false);
74
105
  }
106
+ /**
107
+ * Gets whether Hi-Z acceleration is enabled.
108
+ * When enabled, it can significantly improve SSR performance with minimal quality impact.
109
+ */ get HiZ() {
110
+ return this._HiZ;
111
+ }
112
+ set HiZ(val) {
113
+ this._HiZ = !!val;
114
+ }
115
+ /**
116
+ * Gets whether Screen Space Reflections (SSR) is enabled.
117
+ */ get SSR() {
118
+ return this._SSR;
119
+ }
120
+ set SSR(val) {
121
+ this._SSR = !!val;
122
+ }
123
+ /**
124
+ * Gets the maximum roughness value for screen space reflections.
125
+ * Controls the cutoff point where surfaces are considered too rough for SSR.
126
+ */ get ssrMaxRoughness() {
127
+ return this._ssrMaxRoughness;
128
+ }
129
+ set ssrMaxRoughness(val) {
130
+ this._ssrMaxRoughness = val;
131
+ }
132
+ /**
133
+ * Gets the roughness factor for SSR calculations.
134
+ * Affects how surface roughness influences reflection clarity.
135
+ */ get ssrRoughnessFactor() {
136
+ return this._ssrRoughnessFactor;
137
+ }
138
+ set ssrRoughnessFactor(val) {
139
+ this._ssrRoughnessFactor = val;
140
+ }
141
+ /**
142
+ * Gets the stride value for SSR ray marching.
143
+ * Controls the step size during ray marching. Larger values improve performance but may miss details.
144
+ */ get ssrStride() {
145
+ return this._ssrStride;
146
+ }
147
+ set ssrStride(val) {
148
+ this._ssrStride = val;
149
+ }
150
+ /**
151
+ * Gets the maximum distance for SSR ray marching.
152
+ * Defines how far rays will travel when searching for reflection intersections.
153
+ */ get ssrMaxDistance() {
154
+ return this._ssrParams.x;
155
+ }
156
+ set ssrMaxDistance(val) {
157
+ this._ssrParams.x = val;
158
+ }
159
+ /**
160
+ * Gets the number of iterations for SSR ray marching.
161
+ * Higher values provide more accurate reflections but impact performance.
162
+ */ get ssrIterations() {
163
+ return this._ssrParams.y;
164
+ }
165
+ set ssrIterations(val) {
166
+ this._ssrParams.y = val;
167
+ }
168
+ /**
169
+ * Gets the thickness value for SSR calculations.
170
+ * Determines the thickness threshold for surfaces when calculating reflections.
171
+ */ get ssrThickness() {
172
+ return this._ssrParams.z;
173
+ }
174
+ set ssrThickness(val) {
175
+ this._ssrParams.z = val;
176
+ }
177
+ /**
178
+ * Gets whether SSR should calculate thickness automatically.
179
+ * When enabled, the system will dynamically compute surface thickness for reflections.
180
+ */ get ssrCalcThickness() {
181
+ return this._ssrCalcThickness;
182
+ }
183
+ set ssrCalcThickness(val) {
184
+ this._ssrCalcThickness = !!val;
185
+ }
186
+ /**
187
+ * Gets the blur scale factor for SSR.
188
+ * Controls the overall intensity of the blur effect applied to reflections.
189
+ */ get ssrBlurScale() {
190
+ return this._ssrBlurriness;
191
+ }
192
+ set ssrBlurScale(val) {
193
+ this._ssrBlurriness = val;
194
+ }
195
+ /**
196
+ * Gets the depth cutoff value for SSR blur.
197
+ * Determines at what depth difference the blur effect should be reduced or eliminated.
198
+ */ get ssrBlurDepthCutoff() {
199
+ return this._ssrBlurDepthCutoff;
200
+ }
201
+ set ssrBlurDepthCutoff(val) {
202
+ this._ssrBlurDepthCutoff = val;
203
+ }
204
+ /**
205
+ * Gets the kernel size for the SSR blur effect.
206
+ * Defines the size of the blur kernel. Larger values create softer, more spread-out blur.
207
+ */ get ssrBlurKernelSize() {
208
+ return this._ssrBlurKernelSize;
209
+ }
210
+ set ssrBlurKernelSize(val) {
211
+ this._ssrBlurKernelSize = val;
212
+ }
213
+ /**
214
+ * Gets the standard deviation for the SSR Gaussian blur.
215
+ * Controls the distribution of the blur effect. Higher values create more pronounced blur.
216
+ */ get ssrBlurStdDev() {
217
+ return this._ssrBlurStdDev;
218
+ }
219
+ set ssrBlurStdDev(val) {
220
+ this._ssrBlurStdDev = val;
221
+ }
222
+ /** @internal */ get ssrParams() {
223
+ return this._ssrParams;
224
+ }
75
225
  /** Whether to perform a depth pass */ get depthPrePass() {
76
226
  return this._depthPrePass;
77
227
  }
@@ -84,6 +234,36 @@ import '../render/watermesh.js';
84
234
  set commandBufferReuse(val) {
85
235
  this._commandBufferReuse = !!val;
86
236
  }
237
+ /** Whether GPU picking is enabled for this camera */ get enablePicking() {
238
+ return this._picking;
239
+ }
240
+ set enablePicking(enable) {
241
+ this._picking = !!enable;
242
+ }
243
+ /** X coordinate for picking related to viewport */ get pickPosX() {
244
+ return this._pickPosX;
245
+ }
246
+ set pickPosX(val) {
247
+ this._pickPosX = val;
248
+ }
249
+ /** Y coordinate for picking related to viewport */ get pickPosY() {
250
+ return this._pickPosY;
251
+ }
252
+ set pickPosY(val) {
253
+ this._pickPosY = val;
254
+ }
255
+ /** Pick result */ get pickResult() {
256
+ return this._pickResult;
257
+ }
258
+ set pickResult(val) {
259
+ this._pickResult = val;
260
+ }
261
+ /** @internal */ get pickResultAsync() {
262
+ return this._pickResultPromise;
263
+ }
264
+ set pickResultAsync(val) {
265
+ this._pickResultPromise = val;
266
+ }
87
267
  /**
88
268
  * Sample count for MSAA
89
269
  *
@@ -172,6 +352,22 @@ import '../render/watermesh.js';
172
352
  return handled;
173
353
  }
174
354
  /**
355
+ * Constructs a ray based on the given screen coordinates.
356
+ *
357
+ * @param x - The x-component of the screen coordinates, relative to the top-left corner of the viewport.
358
+ * @param y - The y-component of the screen coordinates, relative to the top-left corner of the viewport.
359
+ * @returns The ray originating from the camera position and passing through the given screen coordinates.
360
+ */ constructRay(x, y) {
361
+ const width = this.viewport ? this.viewport[2] : Application.instance.device.getViewport().width;
362
+ const height = this.viewport ? this.viewport[3] : Application.instance.device.getViewport().height;
363
+ const vClip = new Vector4(2 * x / width - 1, 1 - 2 * y / height, 1, 1);
364
+ const vWorld = this.invViewProjectionMatrix.transform(vClip);
365
+ vWorld.scaleBy(1 / vWorld.w);
366
+ const vEye = this.getWorldPosition();
367
+ const vDir = Vector3.sub(vWorld.xyz(), vEye).inplaceNormalize();
368
+ return new Ray(vEye, vDir);
369
+ }
370
+ /**
175
371
  * Place the camera by specifying the camera position and the target point
176
372
  * @param eye - The camera position
177
373
  * @param target - The target point to look at
@@ -320,13 +516,13 @@ import '../render/watermesh.js';
320
516
  * Renders a scene
321
517
  * @param scene - The scene to be rendered
322
518
  * @param compositor - Compositor instance that will be used to apply postprocess effects
323
- */ render(scene, compositor, logger) {
519
+ */ render(scene, compositor) {
324
520
  const device = Application.instance.device;
325
521
  device.pushDeviceStates();
326
522
  device.reverseVertexWindingOrder(false);
327
523
  device.setFramebuffer(this._framebuffer);
328
524
  SceneRenderer.setClearColor(this._clearColor);
329
- SceneRenderer.renderScene(scene, this, compositor, logger);
525
+ SceneRenderer.renderScene(scene, this, compositor);
330
526
  device.popDeviceStates();
331
527
  }
332
528
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"camera.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"camera.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}