@takram/three-geospatial 0.8.0 → 0.9.1

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 (64) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/build/index.cjs +1 -1
  3. package/build/index.cjs.map +1 -1
  4. package/build/index.js +580 -598
  5. package/build/index.js.map +1 -1
  6. package/build/r3f.cjs +1 -1
  7. package/build/r3f.js +1 -1
  8. package/build/shared2.cjs +1 -1
  9. package/build/shared2.cjs.map +1 -1
  10. package/build/shared2.js +27 -212
  11. package/build/shared2.js.map +1 -1
  12. package/build/shared3.cjs +1 -1
  13. package/build/shared3.cjs.map +1 -1
  14. package/build/shared3.js +213 -8
  15. package/build/shared3.js.map +1 -1
  16. package/build/webgpu.cjs +6 -1
  17. package/build/webgpu.cjs.map +1 -1
  18. package/build/webgpu.js +1002 -812
  19. package/build/webgpu.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/PointOfView.ts +12 -5
  22. package/src/STBNLoader.ts +41 -19
  23. package/src/webgpu/CascadedShadowMapsNode.ts +48 -0
  24. package/src/webgpu/DualMipmapFilterNode.ts +8 -4
  25. package/src/webgpu/FilterNode.ts +3 -2
  26. package/src/webgpu/FnLayout.ts +17 -16
  27. package/src/webgpu/HighpVelocityNode.ts +2 -2
  28. package/src/webgpu/LensFlareNode.ts +1 -1
  29. package/src/webgpu/LensGlareNode.ts +26 -26
  30. package/src/webgpu/LensHaloNode.ts +2 -1
  31. package/src/webgpu/OutputTexture3DNode.ts +10 -1
  32. package/src/webgpu/OutputTextureNode.ts +10 -1
  33. package/src/webgpu/STBNTextureNode.ts +72 -0
  34. package/src/webgpu/ScreenSpaceShadowNode.ts +30 -35
  35. package/src/webgpu/SeparableFilterNode.ts +8 -5
  36. package/src/webgpu/SingleFilterNode.ts +5 -2
  37. package/src/webgpu/StorageTexture3DNode.ts +30 -0
  38. package/src/webgpu/TemporalAntialiasNode.ts +50 -31
  39. package/src/webgpu/accessors.ts +72 -36
  40. package/src/webgpu/debug.ts +38 -47
  41. package/src/webgpu/events.ts +18 -0
  42. package/src/webgpu/index.ts +4 -0
  43. package/src/webgpu/math.ts +116 -15
  44. package/src/webgpu/sampling.ts +39 -5
  45. package/src/webgpu/transformations.ts +71 -44
  46. package/types/PointOfView.d.ts +1 -1
  47. package/types/STBNLoader.d.ts +3 -4
  48. package/types/webgpu/CascadedShadowMapsNode.d.ts +13 -0
  49. package/types/webgpu/DualMipmapFilterNode.d.ts +1 -2
  50. package/types/webgpu/FnLayout.d.ts +4 -4
  51. package/types/webgpu/LensGlareNode.d.ts +1 -1
  52. package/types/webgpu/STBNTextureNode.d.ts +10 -0
  53. package/types/webgpu/ScreenSpaceShadowNode.d.ts +2 -4
  54. package/types/webgpu/SeparableFilterNode.d.ts +2 -3
  55. package/types/webgpu/SingleFilterNode.d.ts +1 -2
  56. package/types/webgpu/StorageTexture3DNode.d.ts +9 -0
  57. package/types/webgpu/TemporalAntialiasNode.d.ts +1 -1
  58. package/types/webgpu/accessors.d.ts +9 -8
  59. package/types/webgpu/debug.d.ts +4 -3
  60. package/types/webgpu/events.d.ts +3 -0
  61. package/types/webgpu/index.d.ts +4 -0
  62. package/types/webgpu/math.d.ts +3 -0
  63. package/types/webgpu/sampling.d.ts +2 -1
  64. package/types/webgpu/transformations.d.ts +7 -10
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu.js","sources":["../src/webgpu/accessors.ts","../src/webgpu/debug.ts","../src/webgpu/OutputTextureNode.ts","../src/webgpu/FilterNode.ts","../src/webgpu/DualMipmapFilterNode.ts","../src/webgpu/MipmapBlurNode.ts","../src/webgpu/SingleFilterNode.ts","../src/webgpu/DownsampleThresholdNode.ts","../src/webgpu/FnLayout.ts","../src/webgpu/FnVar.ts","../src/webgpu/SeparableFilterNode.ts","../src/webgpu/GaussianBlurNode.ts","../src/webgpu/generators.ts","../src/webgpu/HighpVelocityNode.ts","../src/webgpu/KawaseBlurNode.ts","../src/webgpu/LensGhostNode.ts","../src/webgpu/LensGlareNode.ts","../src/webgpu/LensHaloNode.ts","../src/webgpu/MipmapSurfaceBlurNode.ts","../src/webgpu/utils.ts","../src/webgpu/LensFlareNode.ts","../src/webgpu/math.ts","../src/webgpu/node.ts","../src/webgpu/OutputTexture3DNode.ts","../src/webgpu/sampling.ts","../src/webgpu/transformations.ts","../src/webgpu/ScreenSpaceShadowNode.ts","../src/webgpu/internals.ts","../src/webgpu/TemporalAntialiasNode.ts"],"names":["caches","getCache","object","name","callback","cache","projectionMatrix","camera","reference","viewMatrix","inverseProjectionMatrix","inverseViewMatrix","cameraPositionWorld","uniform","Vector3","_","value","cameraNear","cameraFar","debugShader","renderer","mesh","Scene","Camera","result","error","debugFragmentNode","material","Mesh","QuadGeometry","debugVertexNode","debugNode","node","NodeMaterial","vec4","positionGeometry","hookFunction","target","args","OutputTextureNode","TextureNode","owner","texture","builder","outputTexture","FilterNode","TempNode","inputNode","NodeUpdateType","renderTarget","RenderTarget","HalfFloatType","RGBAFormat","LinearFilter","typeName","invariant","outputNode","resetRendererState","restoreRendererState","RendererUtils","DualMipmapFilterNode","levels","QuadMesh","Vector2","i","width","height","resolutionScale","w","h","downsampleRTs","upsampleRTs","inputTexelSize","downsampleNode","originalTexture","downsampleMaterial","upsampleMaterial","downsampleRT","upsampleRT","mipmapBlurDownsample","texelSize","center","uv","offset1","offset2","uv01","uv02","uv03","uv04","uv05","vec2","uv06","uv07","uv08","uv09","uv10","uv11","uv12","add","mipmapBlurUpsample","offset","uv1","uv2","uv3","uv4","uv5","uv6","uv7","uv8","MipmapBlurNode","mipmapBlur","SingleFilterNode","DownsampleThresholdNode","thresholdLevel","thresholdRange","outputColor","outputLuminance","luminance","scale","smoothstep","downsampleThreshold","transformType","type","FnLayout","typeOnly","layout","Fn","input","FnVar","SeparableFilterNode","horizontalRT","verticalRT","direction","getCoefficients","row0","row1","y","x","createGaussianKernel","kernelSize","edgeBias","n","coefficients","mid","sum","a","b","weights","offsets","linearWeights","linearOffsets","j","offset0","weight0","weight1","weight","linearWeightSum","GaussianBlurNode","offsetSize","output","gaussianBlur","interleavedGradientNoise","seed","dithering","screenCoordinate","time","noise","vec3","equirectGrid","lineWidth","count","equirectUV","deltaUV","fwidth","distance","abs","mask","HighpVelocityNode","Matrix4","current","previous","matrices","matrix","currentClip","positionLocal","previousClip","positionPrevious","currentNDC","previousNDC","sub","highpVelocity","KawaseBlurNode","kawaseBlur","LensGhostNode","intensity","sampleGhost","color","suv","d","uvNode","createSpikeTexture","canvas","context","gradient","CanvasTexture","instanceStruct","struct","LensGlareNode","StorageBufferAttribute","instancedArray","MeshBasicNodeMaterial","AdditiveBlending","PlaneGeometry","PerspectiveCamera","hash","tileWidth","tileHeight","bufferCount","inputWidth","inputHeight","computeNode","counterBuffer","aspectRatio","outputWidth","outputHeight","arrayBuffer","spikePairCount","instanceBuffer","outputTexelSize","counterStorage","storage","tileSize","uvec2","If","globalId","Return","inputColor","inputLuminance","countBefore","atomicAdd","instance","phi","angle","spikeNode","luminanceThreshold","sizeScale","geometryRatio","instanceIndex","sin","cos","rotation","mat3","positionNDC","luminanceScale","position","spikeTexture","SRGBColorSpace","sizeScratch","LensHaloNode","chromaticAberration","cubicRingMask","radius","thickness","v","min","mul","sampleHalo","fract","wuv","clampToBorder","MipmapSurfaceBlurNode","innerWeight","outerWeight","mix","mipmapSurfaceBlur","isWebGPU","NodeBuilder","LensFlareNode","rtt","thresholdNode","blurNode","ghostNode","haloNode","bloomNode","featuresNode","glareNode","threshold","blur","bloom","glare","lensFlare","convertToTexture","raySphereIntersection","rayOrigin","rayDirection","dot","c","discriminant","intersection","Q","sqrt","raySpheresIntersectionsStruct","raySpheresIntersections","radii","near","far","rayEllipsoidIntersection","ro","rd","intersections","nodes","float","int","uint","bool","ivec2","bvec2","ivec3","uvec3","bvec3","ivec4","uvec4","bvec4","mat2","mat4","Node","N","OutputTexture3DNode","Texture3DNode","outputTexture3D","textureCatmullRom","textureNode","size","textureSize","centerPosition","f","w0","w1","w2","w3","w12","offset12","texPos0","texPos3","texPos12","depthToViewZ","depth","perspective","logarithmic","logarithmicDepthToViewZ","perspectiveDepthToViewZ","orthographicDepthToViewZ","logarithmicToPerspectiveDepth","viewZ","viewZToPerspectiveDepth","perspectiveToLogarithmicDepth","viewZToLogarithmicDepth","screenToPositionView","ndc","turboCoeffs","turbo","depthToColor","options","equirectToDirectionWorld","lambda","PI2","PI","cosPhi","GROUP_SIZE","toDispatchIndex","Dispatch","other","vector3Scratch","vector4Scratch","Vector4","matrixScratch","ScreenSpaceShadowNode","depthNode","mainLight","StorageTexture","NoColorSpace","frame","viewProjection","lightProjection","index","dispatch","lightW","fpLimit","lightX","lightY","left","bottom","right","top","dispatchCount","q","vertical","qx","qy","x1","y1","padX","padY","x2","y2","biasX","biasY","dispatch1","axisDelta","dispatch2","sampleCount","hardShadowSamples","fadeOutSamples","shadowContrast","shadowIntensity","bilinearThreshold","farDepth","nearDepth","lightCoordinate","dispatchOffset","readCount","workgroupBuffer","workgroupArray","getWorkgroupExtents","xy","workgroupId","lightXY","lightXYFraction","reverseDirection","signXY","horizontal","axis","xyF","xAxisMajor","majorAxis","majorAxisStart","majorAxisEnd","maLightFrac","startXY","endXY","xyDelta","threadStep","invocationLocalIndex","pixelXY","pixelDistance","loadDepth","coord","and","zSign","writeXY","samplingDepth0","depthThicknessScale0","sampleDistance0","readXY","bias","bilinearOffset","depthCenter","depthNeighbor","depthThicknessScale","usePointFilter","greaterThan","shadowDepth","shadowingDepth","sampleDistance","storedDepth","workgroupBarrier","startDepth","depthScale","sampleIndex","hardShadow","depthDelta","shadowValue","channel","fadeOut","contrastOffset","textureStore","screenSpaceShadow","halton","base","fraction","haltonOffsets","isSupportedCamera","clipAABB","history","minColor","maxColor","pClip","eClip","vClip","absUnit","maxUnit","max","select","varianceOffsets","varianceClipping","gamma","moment1","moment2","neighbor","mean","variance","neighborOffsets","currentDepthStruct","getCurrentDepth","inputCoord","closestCoord","closestDepth","subpixelCorrection","velocityUV","phase","emptyDepthTexture","DepthTexture","TemporalAntialiasNode","velocityNode","resolveRT","historyRT","dx","dy","getPreviousDepth","screenUV","currentDepth","velocityUVW","velocityConfidence","prevUV","prevDepth","expectedDepth","depthConfidence","step","confidence","uvWeight","depthWeight","historyColor","clippedColor","temporalAlpha","onBeforePostProcessing","resolveMaterial","temporalAntialias"],"mappings":"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"}
1
+ {"version":3,"file":"webgpu.js","sources":["../src/webgpu/accessors.ts","../src/webgpu/CascadedShadowMapsNode.ts","../src/webgpu/debug.ts","../src/webgpu/OutputTextureNode.ts","../src/webgpu/FilterNode.ts","../src/webgpu/DualMipmapFilterNode.ts","../src/webgpu/MipmapBlurNode.ts","../src/webgpu/SingleFilterNode.ts","../src/webgpu/DownsampleThresholdNode.ts","../src/webgpu/events.ts","../src/webgpu/FnLayout.ts","../src/webgpu/FnVar.ts","../src/webgpu/SeparableFilterNode.ts","../src/webgpu/GaussianBlurNode.ts","../src/webgpu/generators.ts","../src/webgpu/HighpVelocityNode.ts","../src/webgpu/KawaseBlurNode.ts","../src/webgpu/LensGhostNode.ts","../src/webgpu/LensGlareNode.ts","../src/webgpu/LensHaloNode.ts","../src/webgpu/MipmapSurfaceBlurNode.ts","../src/webgpu/utils.ts","../src/webgpu/LensFlareNode.ts","../src/webgpu/math.ts","../src/webgpu/node.ts","../src/webgpu/OutputTexture3DNode.ts","../src/webgpu/sampling.ts","../src/webgpu/transformations.ts","../src/webgpu/ScreenSpaceShadowNode.ts","../src/webgpu/STBNTextureNode.ts","../src/webgpu/StorageTexture3DNode.ts","../src/webgpu/internals.ts","../src/webgpu/TemporalAntialiasNode.ts"],"names":["caches","getCache","object","name","callback","cache","projectionMatrix","camera","reference","cameraProjectionMatrix","viewMatrix","cameraViewMatrix","inverseProjectionMatrix","cameraProjectionMatrixInverse","inverseViewMatrix","cameraWorldMatrix","cameraPositionWorld","uniform","_","value","cameraPosition","cameraNear","cameraNearTSL","cameraFar","cameraFarTSL","viewZ","Fn","positionView","vectorScratch1","Vector3","planeScratch","Plane","CascadedShadowMapsNode","CSMShadowNode","frame","lights","lastLight","lightDirection","nearPlane","i","light","debugShader","renderer","material","mesh","Mesh","QuadGeometry","Scene","Camera","error","debugMaterial","vertexShader","fragmentShader","debugVertexNode","debugFragmentNode","debugNode","node","NodeMaterial","vec4","positionGeometry","shader","hookFunction","target","args","OutputTextureNode","TextureNode","owner","texture","builder","copy","outputTexture","FilterNode","TempNode","inputNode","NodeUpdateType","renderTarget","RenderTarget","HalfFloatType","RGBAFormat","LinearFilter","typeName","invariant","outputNode","resetRendererState","restoreRendererState","RendererUtils","DualMipmapFilterNode","levels","QuadMesh","width","height","resolutionScale","w","h","downsampleRTs","upsampleRTs","inputTexelSize","downsampleNode","originalTexture","downsampleMaterial","upsampleMaterial","downsampleRT","upsampleRT","mipmapBlurDownsample","texelSize","center","uv","offset1","offset2","uv01","uv02","uv03","uv04","uv05","vec2","uv06","uv07","uv08","uv09","uv10","uv11","uv12","add","mipmapBlurUpsample","offset","uv1","uv2","uv3","uv4","uv5","uv6","uv7","uv8","MipmapBlurNode","mipmapBlur","SingleFilterNode","DownsampleThresholdNode","thresholdLevel","thresholdRange","outputColor","outputLuminance","luminance","scale","smoothstep","downsampleThreshold","OnFrameUpdate","OnObjectUpdate","OnBeforeFrameUpdate","OnBeforeObjectUpdate","transformType","type","StructTypeNode","FnLayout","typeOnly","layout","input","FnVar","result","SeparableFilterNode","horizontalRT","verticalRT","direction","getCoefficients","n","row0","row1","y","x","createGaussianKernel","kernelSize","edgeBias","coefficients","mid","sum","a","b","weights","offsets","linearWeights","linearOffsets","j","offset0","weight0","weight1","weight","linearWeightSum","GaussianBlurNode","offsetSize","output","gaussianBlur","interleavedGradientNoise","seed","dithering","screenCoordinate","time","noise","vec3","equirectGrid","lineWidth","count","equirectUV","deltaUV","fwidth","distance","abs","mask","HighpVelocityNode","current","previous","Matrix4","matrices","matrix","currentClip","positionLocal","previousClip","positionPrevious","currentNDC","previousNDC","sub","highpVelocity","KawaseBlurNode","kawaseBlur","LensGhostNode","intensity","sampleGhost","color","suv","d","uvNode","createSpikeTexture","canvas","context","gradient","CanvasTexture","instanceStruct","struct","LensGlareNode","Vector2","IndirectStorageBufferAttribute","instancedArray","MeshBasicNodeMaterial","AdditiveBlending","PlaneGeometry","PerspectiveCamera","hash","tileWidth","tileHeight","bufferCount","inputWidth","inputHeight","computeNode","indirectBuffer","aspectRatio","outputWidth","outputHeight","spikePairCount","instanceBuffer","outputTexelSize","indirectStorage","storage","tileSize","uvec2","If","globalId","Return","inputColor","inputLuminance","countBefore","atomicAdd","instance","phi","angle","spikeNode","luminanceThreshold","sizeScale","geometryRatio","instanceIndex","sin","cos","rotation","mat3","positionNDC","luminanceScale","position","spikeTexture","SRGBColorSpace","sizeScratch","LensHaloNode","chromaticAberration","cubicRingMask","radius","thickness","v","min","mul","sampleHalo","fract","wuv","clampToBorder","MipmapSurfaceBlurNode","innerWeight","outerWeight","mix","mipmapSurfaceBlur","isWebGPU","NodeBuilder","LensFlareNode","rtt","thresholdNode","blurNode","ghostNode","haloNode","bloomNode","featuresNode","glareNode","threshold","blur","bloom","glare","lensFlare","convertToTexture","bvec2Not","bool","bvec3Not","bvec4Not","bvecNot","overloadingFn","bvec2And","bvec2","bvec3And","bvec3","uvec3","bvec4And","bvec4","uvec4","bvecAnd","bvec2Or","bvec3Or","bvec4Or","bvecOr","raySphereIntersection","rayOrigin","rayDirection","dot","c","discriminant","intersection","Q","sqrt","raySpheresIntersectionsStruct","raySpheresIntersections","radii","inverseMask","near","far","rayEllipsoidIntersection","ro","rd","intersections","nodes","float","int","uint","ivec2","ivec3","ivec4","mat2","mat4","Node","N","OutputTexture3DNode","Texture3DNode","outputTexture3D","components","textureGather","textureNode","component","componentValue","size","coord","textureCatmullRom","centerPosition","f","w0","w1","w2","w3","w12","offset12","texPos0","texPos3","texPos12","depthToViewZ","depth","perspective","logarithmicDepthToViewZ","perspectiveDepthToViewZ","orthographicDepthToViewZ","logarithmicToPerspectiveDepth","viewZToPerspectiveDepth","perspectiveToLogarithmicDepth","viewZToLogarithmicDepth","screenToPositionView","ndc","turboCoeffs","turbo","depthToColor","equirectToDirectionWorld","lambda","PI2","PI","cosPhi","GROUP_SIZE","toDispatchIndex","Dispatch","other","vector3Scratch","vector4Scratch","Vector4","matrixScratch","ScreenSpaceShadowNode","depthNode","mainLight","StorageTexture","NoColorSpace","viewProjection","lightProjection","index","dispatch","lightW","fpLimit","lightX","lightY","left","bottom","right","top","dispatchCount","q","vertical","qx","qy","x1","y1","padX","padY","x2","y2","biasX","biasY","dispatch1","axisDelta","dispatch2","sampleCount","hardShadowSamples","fadeOutSamples","shadowContrast","shadowIntensity","bilinearThreshold","lightCoordinate","dispatchOffset","readCount","workgroupBuffer","workgroupArray","getWorkgroupExtents","xy","workgroupId","lightXY","lightXYFraction","reverseDirection","signXY","horizontal","axis","xyF","xAxisMajor","majorAxis","majorAxisStart","majorAxisEnd","maLightFrac","startXY","endXY","xyDelta","threadStep","invocationLocalIndex","pixelXY","pixelDistance","nearDepth","farDepth","loadDepth","and","zSign","writeXY","samplingDepth0","depthThicknessScale0","sampleDistance0","readXY","bias","bilinearOffset","depthCenter","depthNeighbor","depthThicknessScale","usePointFilter","greaterThan","shadowDepth","shadowingDepth","sampleDistance","storedDepth","workgroupBarrier","startDepth","depthScale","sampleIndex","hardShadow","depthDelta","shadowValue","channel","fadeOut","contrastOffset","textureStore","screenSpaceShadow","emptyTexture3D","Data3DTexture","RedFormat","NearestFilter","RepeatWrapping","STBNTextureNode","DEFAULT_STBN_URL","hashString","STBNLoader","stbnTexture","stbn","frameId","StorageTexture3DNode","StorageTextureNode","_value","offsetNode","storageTexture3D","halton","base","fraction","haltonOffsets","isSupportedCamera","clipAABB","history","minColor","maxColor","pClip","eClip","vClip","absUnit","maxUnit","max","varianceOffsets","varianceClipping","gamma","moment1","moment2","neighbor","mean","variance","neighborOffsets","currentDepthStruct","getCurrentDepth","inputCoord","closestCoord","closestDepth","subpixelCorrection","velocityUV","textureSize","phase","emptyDepthTexture","DepthTexture","TemporalAntialiasNode","velocityNode","resolveRT","historyRT","dx","dy","getPreviousDepth","screenUV","currentDepth","velocityUVW","velocityConfidence","prevUV","prevDepth","expectedDepth","depthConfidence","step","confidence","uvWeight","depthWeight","historyColor","clippedColor","temporalAlpha","onBeforeRenderPipeline","resolveMaterial","temporalAntialias"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takram/three-geospatial",
3
- "version": "0.8.0",
3
+ "version": "0.9.1",
4
4
  "description": "Provides fundamental functions for rendering GIS data in Three.js and R3F",
5
5
  "keywords": [
6
6
  "three",
@@ -123,21 +123,28 @@ export class PointOfView {
123
123
  )
124
124
  }
125
125
 
126
- setFromCamera(camera: Camera, ellipsoid = Ellipsoid.WGS84): this | undefined {
126
+ setFromCamera(
127
+ camera: Camera,
128
+ ellipsoid = Ellipsoid.WGS84,
129
+ target?: Vector3
130
+ ): this | undefined {
127
131
  const eye = vectorScratch1.setFromMatrixPosition(camera.matrixWorld)
128
132
  const direction = vectorScratch2
129
133
  .set(0, 0, 0.5)
130
134
  .unproject(camera)
131
135
  .sub(eye)
132
136
  .normalize()
133
- const target = ellipsoid.getIntersection(rayScratch.set(eye, direction))
134
- if (target == null) {
137
+ const intersection = ellipsoid.getIntersection(
138
+ rayScratch.set(eye, direction)
139
+ )
140
+ if (intersection == null) {
135
141
  return
136
142
  }
143
+ target?.copy(intersection)
137
144
 
138
- this.distance = eye.distanceTo(target)
145
+ this.distance = eye.distanceTo(intersection)
139
146
  ellipsoid.getEastNorthUpVectors(
140
- target,
147
+ intersection,
141
148
  eastScratch,
142
149
  northScratch,
143
150
  upScratch
package/src/STBNLoader.ts CHANGED
@@ -1,36 +1,58 @@
1
1
  import {
2
2
  Data3DTexture,
3
+ FileLoader,
4
+ Loader,
3
5
  NearestFilter,
4
6
  RedFormat,
5
7
  RepeatWrapping,
6
- type LoadingManager
8
+ UnsignedByteType
7
9
  } from 'three'
10
+ import invariant from 'tiny-invariant'
8
11
 
9
12
  import {
10
13
  STBN_TEXTURE_DEPTH,
11
14
  STBN_TEXTURE_HEIGHT,
12
15
  STBN_TEXTURE_WIDTH
13
16
  } from './constants'
14
- import { DataTextureLoader } from './DataTextureLoader'
15
- import { parseUint8Array } from './typedArrayParsers'
16
17
 
17
- export class STBNLoader extends DataTextureLoader<Data3DTexture> {
18
- constructor(manager?: LoadingManager) {
19
- super(
20
- Data3DTexture,
21
- parseUint8Array,
22
- {
23
- format: RedFormat,
24
- minFilter: NearestFilter,
25
- magFilter: NearestFilter,
26
- wrapS: RepeatWrapping,
27
- wrapT: RepeatWrapping,
28
- wrapR: RepeatWrapping,
29
- width: STBN_TEXTURE_WIDTH,
30
- height: STBN_TEXTURE_HEIGHT,
31
- depth: STBN_TEXTURE_DEPTH
18
+ export class STBNLoader extends Loader<Data3DTexture> {
19
+ override load(
20
+ url: string,
21
+ onLoad?: (data: Data3DTexture) => void,
22
+ onProgress?: (event: ProgressEvent) => void,
23
+ onError?: (error: unknown) => void
24
+ ): Data3DTexture {
25
+ const texture = new Data3DTexture()
26
+
27
+ const loader = new FileLoader(this.manager)
28
+ loader.setPath(this.path)
29
+ loader.setRequestHeader(this.requestHeader)
30
+ loader.setWithCredentials(this.withCredentials)
31
+ loader.setResponseType('arraybuffer')
32
+ loader.load(
33
+ url,
34
+ arrayBuffer => {
35
+ invariant(arrayBuffer instanceof ArrayBuffer)
36
+ texture.image.data = new Uint8Array(arrayBuffer)
37
+ texture.image.width = STBN_TEXTURE_WIDTH
38
+ texture.image.height = STBN_TEXTURE_HEIGHT
39
+ texture.image.depth = STBN_TEXTURE_DEPTH
40
+
41
+ texture.type = UnsignedByteType
42
+ texture.format = RedFormat
43
+ texture.minFilter = NearestFilter
44
+ texture.magFilter = NearestFilter
45
+ texture.wrapS = RepeatWrapping
46
+ texture.wrapT = RepeatWrapping
47
+ texture.wrapR = RepeatWrapping
48
+
49
+ texture.needsUpdate = true
50
+ onLoad?.(texture)
32
51
  },
33
- manager
52
+ onProgress,
53
+ onError
34
54
  )
55
+
56
+ return texture
35
57
  }
36
58
  }
@@ -0,0 +1,48 @@
1
+ import {
2
+ Plane,
3
+ Vector3,
4
+ type DirectionalLight,
5
+ type PerspectiveCamera,
6
+ type Vector2
7
+ } from 'three'
8
+ import { CSMShadowNode } from 'three/examples/jsm/csm/CSMShadowNode.js'
9
+ import type { NodeFrame } from 'three/webgpu'
10
+
11
+ declare module 'three/examples/jsm/csm/CSMShadowNode.js' {
12
+ interface CSMShadowNode {
13
+ _cascades: Vector2[]
14
+ }
15
+ }
16
+
17
+ const vectorScratch1 = /*#__PURE__*/ new Vector3()
18
+ const planeScratch = /*#__PURE__*/ new Plane()
19
+
20
+ export class CascadedShadowMapsNode extends CSMShadowNode {
21
+ // Fixes wrong types
22
+ declare camera: PerspectiveCamera
23
+ declare light: DirectionalLight
24
+
25
+ override updateBefore(frame: NodeFrame): void {
26
+ super.updateBefore(frame)
27
+
28
+ const { lights } = this
29
+ if (lights.length < 2) {
30
+ return
31
+ }
32
+
33
+ // Align near planes with that of the largest frustum's light.
34
+ const lastLight = lights[lights.length - 1]
35
+ const lightDirection = vectorScratch1
36
+ .subVectors(lastLight.target.position, lastLight.position)
37
+ .normalize()
38
+ const nearPlane = planeScratch.setFromNormalAndCoplanarPoint(
39
+ lightDirection,
40
+ lastLight.position
41
+ )
42
+ for (let i = 0; i < lights.length - 1; ++i) {
43
+ const light = lights[i]
44
+ nearPlane.projectPoint(light.position, light.position)
45
+ light.target.position.copy(light.position).add(lightDirection)
46
+ }
47
+ }
48
+ }
@@ -1,4 +1,4 @@
1
- import { Vector2, type RenderTarget } from 'three'
1
+ import type { RenderTarget } from 'three'
2
2
  import { texture, uniform } from 'three/tsl'
3
3
  import {
4
4
  NodeMaterial,
@@ -23,16 +23,20 @@ export abstract class DualMipmapFilterNode extends FilterNode {
23
23
  private readonly mesh = new QuadMesh()
24
24
  private rendererState?: RendererUtils.RendererState
25
25
 
26
- protected readonly inputTexelSize = uniform(new Vector2())
26
+ protected readonly inputTexelSize = uniform('vec2')
27
27
  protected readonly downsampleNode = texture()
28
28
 
29
29
  constructor(inputNode: TextureNode | null | undefined, levels: number) {
30
30
  super(inputNode)
31
+ const typeName = (this.constructor as typeof Node).type.replace(/Node$/, '')
32
+ this.downsampleMaterial.name = `${typeName}_downsample`
33
+ this.upsampleMaterial.name = `${typeName}_upsample`
34
+ this.mesh.name = typeName
31
35
 
32
36
  for (let i = 0; i < levels; ++i) {
33
- this.downsampleRTs[i] = this.createRenderTarget(`Downsample${i}`)
37
+ this.downsampleRTs[i] = this.createRenderTarget(`downsample${i}`)
34
38
  if (i < levels - 1) {
35
- this.upsampleRTs[i] = this.createRenderTarget(`Upsample${i}`)
39
+ this.upsampleRTs[i] = this.createRenderTarget(`upsample${i}`)
36
40
  }
37
41
  }
38
42
  this.outputTexture = this.upsampleRTs[0].texture
@@ -31,8 +31,9 @@ export abstract class FilterNode extends TempNode {
31
31
 
32
32
  constructor(inputNode?: TextureNode | null) {
33
33
  super('vec4')
34
- this.inputNode = inputNode
35
34
  this.updateBeforeType = NodeUpdateType.FRAME
35
+
36
+ this.inputNode = inputNode
36
37
  }
37
38
 
38
39
  protected createRenderTarget(name?: string): RenderTarget {
@@ -47,7 +48,7 @@ export abstract class FilterNode extends TempNode {
47
48
  texture.generateMipmaps = false
48
49
 
49
50
  const typeName = (this.constructor as typeof Node).type
50
- texture.name = name != null ? `${typeName}.${name}` : typeName
51
+ texture.name = name != null ? `${typeName}_${name}` : typeName
51
52
 
52
53
  this.renderTargets.push(renderTarget)
53
54
  return renderTarget