@takram/three-geospatial 0.7.1 → 0.9.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 (71) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +1 -1
  3. package/build/index.cjs +1 -1
  4. package/build/index.cjs.map +1 -1
  5. package/build/index.js +580 -598
  6. package/build/index.js.map +1 -1
  7. package/build/r3f.cjs +1 -1
  8. package/build/r3f.js +1 -1
  9. package/build/shared2.cjs +1 -1
  10. package/build/shared2.cjs.map +1 -1
  11. package/build/shared2.js +27 -212
  12. package/build/shared2.js.map +1 -1
  13. package/build/shared3.cjs +1 -1
  14. package/build/shared3.cjs.map +1 -1
  15. package/build/shared3.js +213 -8
  16. package/build/shared3.js.map +1 -1
  17. package/build/webgpu.cjs +6 -1
  18. package/build/webgpu.cjs.map +1 -1
  19. package/build/webgpu.js +1111 -768
  20. package/build/webgpu.js.map +1 -1
  21. package/package.json +1 -1
  22. package/src/EllipsoidGeometry.ts +1 -1
  23. package/src/PointOfView.ts +12 -5
  24. package/src/STBNLoader.ts +41 -19
  25. package/src/unrollLoops.ts +1 -1
  26. package/src/webgpu/CascadedShadowMapsNode.ts +48 -0
  27. package/src/webgpu/DualMipmapFilterNode.ts +8 -4
  28. package/src/webgpu/FilterNode.ts +5 -3
  29. package/src/webgpu/FnLayout.ts +17 -16
  30. package/src/webgpu/HighpVelocityNode.ts +9 -4
  31. package/src/webgpu/LensFlareNode.ts +12 -16
  32. package/src/webgpu/LensGlareNode.ts +28 -32
  33. package/src/webgpu/LensHaloNode.ts +2 -1
  34. package/src/webgpu/OutputTexture3DNode.ts +10 -0
  35. package/src/webgpu/OutputTextureNode.ts +10 -0
  36. package/src/webgpu/STBNTextureNode.ts +58 -0
  37. package/src/webgpu/ScreenSpaceShadowNode.ts +685 -0
  38. package/src/webgpu/SeparableFilterNode.ts +8 -5
  39. package/src/webgpu/SingleFilterNode.ts +5 -2
  40. package/src/webgpu/StorageTexture3DNode.ts +30 -0
  41. package/src/webgpu/TemporalAntialiasNode.ts +178 -137
  42. package/src/webgpu/accessors.ts +75 -36
  43. package/src/webgpu/debug.ts +38 -47
  44. package/src/webgpu/events.ts +18 -0
  45. package/src/webgpu/index.ts +5 -1
  46. package/src/webgpu/math.ts +116 -15
  47. package/src/webgpu/sampling.ts +39 -5
  48. package/src/webgpu/transformations.ts +71 -44
  49. package/types/PointOfView.d.ts +1 -1
  50. package/types/STBNLoader.d.ts +3 -4
  51. package/types/webgpu/CascadedShadowMapsNode.d.ts +13 -0
  52. package/types/webgpu/DualMipmapFilterNode.d.ts +1 -2
  53. package/types/webgpu/FnLayout.d.ts +4 -4
  54. package/types/webgpu/HighpVelocityNode.d.ts +1 -0
  55. package/types/webgpu/LensFlareNode.d.ts +2 -3
  56. package/types/webgpu/LensGlareNode.d.ts +1 -1
  57. package/types/webgpu/STBNTextureNode.d.ts +9 -0
  58. package/types/webgpu/ScreenSpaceShadowNode.d.ts +33 -0
  59. package/types/webgpu/SeparableFilterNode.d.ts +2 -3
  60. package/types/webgpu/SingleFilterNode.d.ts +1 -2
  61. package/types/webgpu/StorageTexture3DNode.d.ts +9 -0
  62. package/types/webgpu/TemporalAntialiasNode.d.ts +9 -10
  63. package/types/webgpu/accessors.d.ts +9 -8
  64. package/types/webgpu/debug.d.ts +4 -3
  65. package/types/webgpu/events.d.ts +3 -0
  66. package/types/webgpu/index.d.ts +5 -1
  67. package/types/webgpu/math.d.ts +3 -0
  68. package/types/webgpu/sampling.d.ts +2 -1
  69. package/types/webgpu/transformations.d.ts +7 -10
  70. package/src/webgpu/RTTextureNode.ts +0 -130
  71. package/types/webgpu/RTTextureNode.d.ts +0 -22
@@ -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/RTTextureNode.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/internals.ts","../src/webgpu/transformations.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","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","Matrix4","current","previous","matrices","matrix","currentClip","positionLocal","previousClip","positionPrevious","currentNDC","previousNDC","sub","highpVelocity","KawaseBlurNode","kawaseBlur","LensGhostNode","intensity","sampleGhost","color","suv","d","uvNode","createRenderTarget","sizeScratch","RTTextureNode","size","rtTexture","convertToTexture","textureNode","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","LensHaloNode","chromaticAberration","cubicRingMask","radius","thickness","v","min","mul","sampleHalo","fract","wuv","clampToBorder","MipmapSurfaceBlurNode","innerWeight","outerWeight","mix","mipmapSurfaceBlur","isWebGPU","NodeBuilder","LensFlareNode","thresholdNode","blurNode","ghostNode","haloNode","bloomNode","featuresNode","glareNode","threshold","blur","bloom","glare","lensFlare","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","textureSize","centerPosition","f","w0","w1","w2","w3","w12","offset12","texPos0","texPos3","texPos12","halton","index","base","fraction","haltonOffsets","depthToViewZ","depth","perspective","logarithmic","logarithmicDepthToViewZ","perspectiveDepthToViewZ","orthographicDepthToViewZ","logarithmicToPerspectiveDepth","viewZ","viewZToPerspectiveDepth","perspectiveToLogarithmicDepth","viewZToLogarithmicDepth","screenToPositionView","ndc","turboCoeffs","turbo","depthToColor","options","equirectToDirectionWorld","lambda","PI2","PI","cosPhi","isSupportedCamera","clipAABB","history","minColor","maxColor","pClip","eClip","vClip","absUnit","maxUnit","max","select","varianceOffsets","varianceClipping","coord","gamma","moment1","moment2","neighbor","mean","variance","neighborOffsets","closestDepthStruct","getClosestDepth","depthNode","inputCoord","offsetCoord","emptyDepthTexture","DepthTexture","TemporalAntialiasNode","velocityNodeImmutable","velocityNode","velocity","resolveRT","historyRT","dx","dy","getPreviousDepth","screenUV","currentColor","closestDepth","closestCoord","velocityConfidence","prevUV","prevDepth","expectedDepth","depthConfidence","step","confidence","uvWeight","and","depthWeight","historyColor","clippedColor","velocityAbsTexel","screenSize","subpixelCorrection","temporalAlpha","onBeforePostProcessing","resolveMaterial","copyMaterial","temporalAntialias"],"mappings":"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"}
1
+ {"version":3,"file":"webgpu.js","sources":["../src/webgpu/FnLayout.ts","../src/webgpu/FnVar.ts","../src/webgpu/transformations.ts","../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/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/ScreenSpaceShadowNode.ts","../src/webgpu/STBNTextureNode.ts","../src/webgpu/StorageTexture3DNode.ts","../src/webgpu/internals.ts","../src/webgpu/TemporalAntialiasNode.ts"],"names":["transformType","type","StructTypeNode","FnLayout","typeOnly","layout","Fn","callback","input","FnVar","args","builder","result","depthToViewZ","depth","camera","near","far","cameraNear","cameraFar","perspective","logarithmicDepthToViewZ","perspectiveDepthToViewZ","orthographicDepthToViewZ","logarithmicToPerspectiveDepth","cameraNearTSL","cameraFarTSL","viewZ","viewZToPerspectiveDepth","perspectiveToLogarithmicDepth","viewZToLogarithmicDepth","screenToPositionView","uv","projectionMatrix","inverseProjectionMatrix","scale","int","offset","ndc","vec4","vec3","turboCoeffs","turbo","x","y","i","depthToColor","equirectToDirectionWorld","lambda","sub","PI2","phi","PI","cosPhi","cos","sin","caches","getCache","object","name","cache","reference","cameraProjectionMatrix","viewMatrix","cameraViewMatrix","cameraProjectionMatrixInverse","inverseViewMatrix","cameraWorldMatrix","cameraPositionWorld","uniform","_","value","cameraPosition","vectorScratch1","Vector3","planeScratch","Plane","CascadedShadowMapsNode","CSMShadowNode","frame","lights","lastLight","lightDirection","nearPlane","light","debugShader","renderer","material","mesh","Mesh","QuadGeometry","Scene","Camera","error","debugMaterial","vertexShader","fragmentShader","debugVertexNode","debugFragmentNode","debugNode","node","NodeMaterial","positionGeometry","shader","hookFunction","target","OutputTextureNode","TextureNode","owner","texture","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","offset1","offset2","uv01","uv02","uv03","uv04","uv05","vec2","uv06","uv07","uv08","uv09","uv10","uv11","uv12","add","mipmapBlurUpsample","uv1","uv2","uv3","uv4","uv5","uv6","uv7","uv8","MipmapBlurNode","mipmapBlur","SingleFilterNode","DownsampleThresholdNode","thresholdLevel","thresholdRange","outputColor","outputLuminance","luminance","smoothstep","downsampleThreshold","OnFrameUpdate","OnObjectUpdate","OnBeforeFrameUpdate","OnBeforeObjectUpdate","SeparableFilterNode","horizontalRT","verticalRT","direction","getCoefficients","n","row0","row1","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","equirectGrid","lineWidth","count","equirectUV","deltaUV","fwidth","distance","abs","mask","HighpVelocityNode","current","previous","Matrix4","matrices","matrix","currentClip","positionLocal","previousClip","positionPrevious","currentNDC","previousNDC","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","angle","spikeNode","luminanceThreshold","sizeScale","geometryRatio","instanceIndex","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","rayEllipsoidIntersection","ro","rd","intersections","nodes","float","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","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.7.1",
3
+ "version": "0.9.0",
4
4
  "description": "Provides fundamental functions for rendering GIS data in Three.js and R3F",
5
5
  "keywords": [
6
6
  "three",
@@ -59,7 +59,7 @@ export class EllipsoidGeometry extends BufferGeometry {
59
59
  ++x, vertexIndex += 3, uvIndex += 2, ++rowIndex
60
60
  ) {
61
61
  const u = x / longitudeSegments
62
- const theta = u * Math.PI * 2
62
+ const theta = (u - 0.5) * Math.PI * 2
63
63
  vertex.x = radii.x * Math.cos(theta) * Math.sin(phi)
64
64
  vertex.y = radii.y * Math.sin(theta) * Math.sin(phi)
65
65
  vertex.z = radii.z * Math.cos(phi)
@@ -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
  }
@@ -12,7 +12,7 @@ function loopReplacer(
12
12
  let string = ''
13
13
  for (let i = parseInt(start, 10); i < parseInt(end, 10); ++i) {
14
14
  string += snippet
15
- .replace(/\[\s*i\s*\]/g, '[' + i + ']')
15
+ .replace(/\[\s*i\s*\]/g, `[${i}]`)
16
16
  .replace(/UNROLLED_LOOP_INDEX/g, `${i}`)
17
17
  }
18
18
  return string
@@ -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
@@ -13,6 +13,7 @@ import {
13
13
  } from 'three/webgpu'
14
14
  import invariant from 'tiny-invariant'
15
15
 
16
+ import type { Node } from './node'
16
17
  import { outputTexture } from './OutputTextureNode'
17
18
 
18
19
  // Represents a node that applies a shader on the input texture and outputs
@@ -30,8 +31,9 @@ export abstract class FilterNode extends TempNode {
30
31
 
31
32
  constructor(inputNode?: TextureNode | null) {
32
33
  super('vec4')
33
- this.inputNode = inputNode
34
34
  this.updateBeforeType = NodeUpdateType.FRAME
35
+
36
+ this.inputNode = inputNode
35
37
  }
36
38
 
37
39
  protected createRenderTarget(name?: string): RenderTarget {
@@ -45,8 +47,8 @@ export abstract class FilterNode extends TempNode {
45
47
  texture.magFilter = LinearFilter
46
48
  texture.generateMipmaps = false
47
49
 
48
- const typeName = (this.constructor as typeof FilterNode).type
49
- texture.name = name != null ? `${typeName}.${name}` : typeName
50
+ const typeName = (this.constructor as typeof Node).type
51
+ texture.name = name != null ? `${typeName}_${name}` : typeName
50
52
 
51
53
  this.renderTargets.push(renderTarget)
52
54
  return renderTarget