@takram/three-geospatial 0.0.1-alpha.5 → 0.0.1-alpha.7

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 (47) hide show
  1. package/build/index.cjs +1 -43
  2. package/build/index.cjs.map +1 -1
  3. package/build/index.js +403 -787
  4. package/build/index.js.map +1 -1
  5. package/build/r3f.js +2 -2
  6. package/build/shaders.cjs +397 -0
  7. package/build/shaders.cjs.map +1 -0
  8. package/build/shaders.js +408 -0
  9. package/build/shaders.js.map +1 -0
  10. package/package.json +7 -3
  11. package/src/DataLoader.ts +1 -0
  12. package/src/STBNLoader.ts +21 -0
  13. package/src/Texture3DLoader.ts +81 -0
  14. package/src/bufferGeometry.ts +2 -2
  15. package/src/constants.ts +6 -0
  16. package/src/defineShorthand.ts +68 -0
  17. package/src/index.ts +5 -10
  18. package/src/math.ts +36 -1
  19. package/src/r3f/index.ts +1 -0
  20. package/src/r3f/types.ts +63 -0
  21. package/src/resolveIncludes.test.ts +21 -0
  22. package/src/resolveIncludes.ts +22 -0
  23. package/src/shaders/cascadedShadowMaps.glsl +79 -0
  24. package/src/shaders/depth.glsl +3 -1
  25. package/src/shaders/generators.glsl +9 -0
  26. package/src/shaders/index.ts +19 -0
  27. package/src/shaders/math.glsl +92 -0
  28. package/src/shaders/poissonDisk.glsl +23 -0
  29. package/src/shaders/raySphereIntersection.glsl +134 -0
  30. package/src/shaders/turbo.glsl +9 -0
  31. package/src/typedArrayParsers.ts +19 -8
  32. package/src/types.ts +5 -51
  33. package/src/unrollLoops.ts +23 -0
  34. package/types/DataLoader.d.ts +4 -4
  35. package/types/STBNLoader.d.ts +1 -0
  36. package/types/Texture3DLoader.d.ts +5 -0
  37. package/types/TypedArrayLoader.d.ts +3 -3
  38. package/types/constants.d.ts +4 -0
  39. package/types/defineShorthand.d.ts +16 -0
  40. package/types/index.d.ts +5 -3
  41. package/types/math.d.ts +4 -1
  42. package/types/r3f/index.d.ts +1 -0
  43. package/types/r3f/types.d.ts +21 -0
  44. package/types/resolveIncludes.d.ts +5 -0
  45. package/types/shaders/index.d.ts +9 -0
  46. package/types/types.d.ts +5 -20
  47. package/types/unrollLoops.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/shaders/depth.glsl","../src/shaders/packing.glsl","../src/shaders/transform.glsl","../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../src/ArrayBufferLoader.ts","../src/assertions.ts","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isFlattenable.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFlatten.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/flatten.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_flatRest.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHasIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasPath.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSet.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePickBy.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePick.js","../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pick.js","../src/bufferGeometry.ts","../src/typedArray.ts","../src/typedArrayParsers.ts","../src/TypedArrayLoader.ts","../src/DataLoader.ts","../src/math.ts","../src/PointOfView.ts","../src/Rectangle.ts","../src/TileCoordinate.ts","../src/TilingScheme.ts","../src/index.ts"],"sourcesContent":null,"names":["depth_default","packing_default","transform_default","isProduction","prefix","invariant","condition","message","value","ArrayBufferLoader","Loader","url","onLoad","onProgress","onError","loader","FileLoader","arrayBuffer","error","assertType","freeGlobal","freeSelf","root","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","arrayMap","array","iteratee","index","length","isArray","INFINITY","symbolProto","symbolToString","baseToString","isObject","type","identity","asyncTag","funcTag","genTag","proxyTag","isFunction","coreJsData","maskSrcKey","uid","isMasked","func","funcProto","funcToString","toSource","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","pattern","getValue","object","key","getNative","apply","thisArg","args","HOT_COUNT","HOT_SPAN","nativeNow","shortOut","count","lastCalled","stamp","remaining","constant","defineProperty","baseSetToString","string","setToString","MAX_SAFE_INTEGER","reIsUint","isIndex","baseAssignValue","eq","other","assignValue","objValue","nativeMax","overRest","start","transform","otherArgs","isLength","argsTag","baseIsArguments","propertyIsEnumerable","isArguments","reIsDeepProp","reIsPlainProp","isKey","nativeCreate","hashClear","hashDelete","HASH_UNDEFINED","hashGet","data","hashHas","hashSet","Hash","entries","entry","listCacheClear","assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","isKeyable","getMapData","map","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","size","MapCache","FUNC_ERROR_TEXT","memoize","resolver","memoized","cache","MAX_MEMOIZE_SIZE","memoizeCapped","rePropName","reEscapeChar","stringToPath","match","number","quote","subString","toString","castPath","toKey","baseGet","path","arrayPush","values","offset","spreadableSymbol","isFlattenable","baseFlatten","depth","predicate","isStrict","flatten","flatRest","baseHasIn","hasPath","hasFunc","hasIn","baseSet","customizer","nested","newValue","basePickBy","paths","basePick","pick","toBufferGeometryLike","geometry","attribute","_a","buffer","fromBufferGeometryLike","input","BufferGeometry","name","BufferAttribute","min","max","Box3","Vector3","center","radius","Sphere","getTypedArrayElementType","parseTypedArray","TypedArray","littleEndian","byteIndex","parseUint8Array","parseInt8Array","parseUint16Array","parseInt16Array","parseInt32Array","parseUint32Array","parseFloat32Array","parseFloat64Array","TypedArrayLoader","createTypedArrayLoaderClass","parser","__publicField","createTypedArrayLoader","Int16ArrayLoader","Uint16ArrayLoader","Float32ArrayLoader","defaultDataTextureParameter","RGBAFormat","ClampToEdgeWrapping","LinearFilter","DataLoader","texture","width","height","params","UnsignedByteType","ByteType","FloatType","createDataLoaderClass","Texture","parameters","createData3DTextureLoaderClass","Data3DTexture","createDataTextureLoaderClass","DataTexture","createData3DTextureLoader","createDataTextureLoader","Int16Data2DLoader","Uint16Data2DLoader","Float32Data2DLoader","Float32Data3DLoader","clamp","MathUtils","euclideanModulo","inverseLerp","lerp","radians","degrees","isPowerOfTwo","ceilPowerOfTwo","floorPowerOfTwo","normalize","remap","smoothstep","x","saturate","closeTo","a","b","relativeEpsilon","absoluteEpsilon","diff","EPSILON","eastScratch","northScratch","upScratch","vectorScratch1","vectorScratch2","vectorScratch3","matrixScratch","Matrix4","quaternionScratch","Quaternion","rayScratch","Ray","PointOfView","distance","heading","pitch","roll","target","eye","quaternion","up","ellipsoid","Ellipsoid","rollAxis","camera","direction","s","t","y","_Rectangle","west","south","east","north","Geodetic","Rectangle","traverseChildren","z","maxZ","divisor","nextZ","scale","nextX","nextY","children","child","coord","TileCoordinate","vectorScratch","Vector2","TilingScheme","rectangle","geodetic","longitude","tile","depthShader","packingShader","packing","transformShader"],"mappings":"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","x_google_ignoreList":[3,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82]}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../src/ArrayBufferLoader.ts","../src/assertions.ts","../src/bufferGeometry.ts","../src/constants.ts","../src/typedArray.ts","../src/typedArrayParsers.ts","../src/TypedArrayLoader.ts","../src/DataLoader.ts","../src/defineShorthand.ts","../src/math.ts","../src/PointOfView.ts","../src/Rectangle.ts","../src/resolveIncludes.ts","../src/STBNLoader.ts","../src/TileCoordinate.ts","../src/TilingScheme.ts","../src/unrollLoops.ts"],"sourcesContent":null,"names":["isProduction","prefix","invariant","condition","message","value","ArrayBufferLoader","Loader","url","onLoad","onProgress","onError","loader","FileLoader","arrayBuffer","error","assertType","toBufferGeometryLike","geometry","attributes","index","boundingBox","boundingSphere","attribute","_a","buffer","fromBufferGeometryLike","input","result","BufferGeometry","name","BufferAttribute","min","max","Box3","Vector3","center","radius","Sphere","STBN_TEXTURE_WIDTH","STBN_TEXTURE_HEIGHT","STBN_TEXTURE_DEPTH","DEFAULT_STBN_URL","getTypedArrayElementType","array","type","hostLittleEndian","isHostLittleEndian","a","parseTypedArray","TypedArray","getValue","littleEndian","data","byteIndex","parseUint8Array","parseInt8Array","parseUint16Array","parseInt16Array","parseInt32Array","parseUint32Array","parseFloat32Array","parseFloat64Array","TypedArrayLoader","createTypedArrayLoaderClass","parser","__publicField","createTypedArrayLoader","Int16ArrayLoader","Uint16ArrayLoader","Float32ArrayLoader","defaultDataTextureParameter","RGBAFormat","ClampToEdgeWrapping","LinearFilter","DataLoader","texture","width","height","depth","params","UnsignedByteType","ByteType","FloatType","createDataLoaderClass","Texture","parameters","createData3DTextureLoaderClass","Data3DTexture","createDataTextureLoaderClass","DataTexture","createData3DTextureLoader","createDataTextureLoader","Int16Data2DLoader","Uint16Data2DLoader","Float32Data2DLoader","Float32Data3DLoader","definePropertyShorthand","destination","sourceKeysArgs","descriptors","i","source","keys","key","defineUniformShorthand","clamp","MathUtils","euclideanModulo","inverseLerp","lerp","radians","degrees","isPowerOfTwo","ceilPowerOfTwo","floorPowerOfTwo","normalize","remap","x","min1","max1","min2","max2","remapClamped","smoothstep","saturate","closeTo","b","relativeEpsilon","absoluteEpsilon","diff","EPSILON","eastScratch","northScratch","upScratch","vectorScratch1","vectorScratch2","vectorScratch3","matrixScratch","Matrix4","quaternionScratch","Quaternion","rayScratch","Ray","PointOfView","distance","heading","pitch","roll","other","target","eye","quaternion","up","ellipsoid","Ellipsoid","offset","rollAxis","camera","direction","s","t","y","_Rectangle","west","south","east","north","Geodetic","Rectangle","includePattern","resolveIncludes","includes","match","path","include","parent","component","STBNLoader","RedFormat","NearestFilter","RepeatWrapping","traverseChildren","z","maxZ","divisor","nextZ","scale","nextX","nextY","children","child","coord","TileCoordinate","vectorScratch","Vector2","TilingScheme","rectangle","geodetic","size","longitude","tile","unrollLoopPattern","loopReplacer","start","end","snippet","string","unrollLoops"],"mappings":"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","x_google_ignoreList":[0]}
package/build/r3f.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { jsx as a, jsxs as f } from "react/jsx-runtime";
2
2
  import { forwardRef as m, useMemo as u, useEffect as l, useRef as E } from "react";
3
- import { Group as h, Matrix4 as d, Vector3 as x } from "three";
3
+ import { Group as h, Vector3 as d, Matrix4 as x } from "three";
4
4
  import { E as p, G, a as w } from "./shared.js";
5
5
  import { extend as F } from "@react-three/fiber";
6
- const S = /* @__PURE__ */ new d(), N = /* @__PURE__ */ new G(), U = /* @__PURE__ */ new x();
6
+ const S = /* @__PURE__ */ new x(), N = /* @__PURE__ */ new G(), U = /* @__PURE__ */ new d();
7
7
  class j extends h {
8
8
  set(o, t, r, e = p.WGS84) {
9
9
  const s = N.set(o, t, r).toECEF(U);
@@ -0,0 +1,397 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=`// Reference: https://github.com/mrdoob/three.js/blob/r171/examples/jsm/csm/CSMShader.js
2
+
3
+ #ifndef SHADOW_CASCADE_COUNT
4
+ #error "SHADOW_CASCADE_COUNT macro must be defined."
5
+ #endif // SHADOW_CASCADE_COUNT
6
+
7
+ int getCascadeIndex(
8
+ const mat4 viewMatrix,
9
+ const vec3 worldPosition,
10
+ const vec2 intervals[SHADOW_CASCADE_COUNT],
11
+ const float near,
12
+ const float far
13
+ ) {
14
+ vec4 viewPosition = viewMatrix * vec4(worldPosition, 1.0);
15
+ float depth = viewZToOrthographicDepth(viewPosition.z, near, far);
16
+ vec2 interval;
17
+ #pragma unroll_loop_start
18
+ for (int i = 0; i < 4; ++i) {
19
+ #if UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT
20
+ interval = intervals[i];
21
+ if (depth >= interval.x && depth < interval.y) {
22
+ return UNROLLED_LOOP_INDEX;
23
+ }
24
+ #endif // UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT
25
+ }
26
+ #pragma unroll_loop_end
27
+ return SHADOW_CASCADE_COUNT - 1;
28
+ }
29
+
30
+ int getFadedCascadeIndex(
31
+ const mat4 viewMatrix,
32
+ const vec3 worldPosition,
33
+ const vec2 intervals[SHADOW_CASCADE_COUNT],
34
+ const float near,
35
+ const float far,
36
+ const float jitter
37
+ ) {
38
+ vec4 viewPosition = viewMatrix * vec4(worldPosition, 1.0);
39
+ float depth = viewZToOrthographicDepth(viewPosition.z, near, far);
40
+
41
+ vec2 interval;
42
+ float intervalCenter;
43
+ float closestEdge;
44
+ float margin;
45
+ int nextIndex = -1;
46
+ int prevIndex = -1;
47
+ float alpha;
48
+
49
+ #pragma unroll_loop_start
50
+ for (int i = 0; i < 4; ++i) {
51
+ #if UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT
52
+ interval = intervals[i];
53
+ intervalCenter = (interval.x + interval.y) * 0.5;
54
+ closestEdge = depth < intervalCenter ? interval.x : interval.y;
55
+ margin = closestEdge * closestEdge * 0.5;
56
+ interval += margin * vec2(-0.5, 0.5);
57
+
58
+ #if UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT - 1
59
+ if (depth >= interval.x && depth < interval.y) {
60
+ prevIndex = nextIndex;
61
+ nextIndex = UNROLLED_LOOP_INDEX;
62
+ alpha = saturate(min(depth - interval.x, interval.y - depth) / margin);
63
+ }
64
+ #else // UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT - 1
65
+ // Don't fade out the last cascade.
66
+ if (depth >= interval.x) {
67
+ prevIndex = nextIndex;
68
+ nextIndex = UNROLLED_LOOP_INDEX;
69
+ alpha = saturate((depth - interval.x) / margin);
70
+ }
71
+ #endif // UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT - 1
72
+ #endif // UNROLLED_LOOP_INDEX < SHADOW_CASCADE_COUNT
73
+ }
74
+ #pragma unroll_loop_end
75
+
76
+ return jitter <= alpha
77
+ ? nextIndex
78
+ : prevIndex;
79
+ }
80
+ `,e=`// cSpell:words logdepthbuf
81
+
82
+ float reverseLogDepth(const float depth, const float near, const float far) {
83
+ #ifdef USE_LOGDEPTHBUF
84
+ float d = pow(2.0, depth * log2(far + 1.0)) - 1.0;
85
+ float a = far / (far - near);
86
+ float b = far * near / (near - far);
87
+ return a + b / d;
88
+ #else // USE_LOGDEPTHBUF
89
+ return depth;
90
+ #endif // USE_LOGDEPTHBUF
91
+ }
92
+
93
+ float linearizeDepth(const float depth, const float near, const float far) {
94
+ float ndc = depth * 2.0 - 1.0;
95
+ return 2.0 * near * far / (far + near - ndc * (far - near));
96
+ }
97
+ `,t=`float checker(const vec2 uv, const vec2 repeats) {
98
+ vec2 c = floor(repeats * uv);
99
+ float result = mod(c.x + c.y, 2.0);
100
+ return sign(result);
101
+ }
102
+
103
+ float checker(const vec2 uv, const float repeats) {
104
+ return checker(uv, vec2(repeats));
105
+ }
106
+ `,c=`#if !defined(saturate)
107
+ #define saturate(a) clamp(a, 0.0, 1.0)
108
+ #endif // !defined(saturate)
109
+
110
+ float remap(const float x, const float min1, const float max1, const float min2, const float max2) {
111
+ return min2 + (x - min1) / (max1 - min1) * (max2 - min2);
112
+ }
113
+
114
+ vec2 remap(const vec2 x, const vec2 min1, const vec2 max1, const vec2 min2, const vec2 max2) {
115
+ return min2 + (x - min1) / (max1 - min1) * (max2 - min2);
116
+ }
117
+
118
+ vec3 remap(const vec3 x, const vec3 min1, const vec3 max1, const vec3 min2, const vec3 max2) {
119
+ return min2 + (x - min1) / (max1 - min1) * (max2 - min2);
120
+ }
121
+
122
+ vec4 remap(const vec4 x, const vec4 min1, const vec4 max1, const vec4 min2, const vec4 max2) {
123
+ return min2 + (x - min1) / (max1 - min1) * (max2 - min2);
124
+ }
125
+
126
+ float remapClamped(
127
+ const float x,
128
+ const float min1,
129
+ const float max1,
130
+ const float min2,
131
+ const float max2
132
+ ) {
133
+ return clamp(min2 + (x - min1) / (max1 - min1) * (max2 - min2), min2, max2);
134
+ }
135
+
136
+ vec2 remapClamped(
137
+ const vec2 x,
138
+ const vec2 min1,
139
+ const vec2 max1,
140
+ const vec2 min2,
141
+ const vec2 max2
142
+ ) {
143
+ return clamp(min2 + (x - min1) / (max1 - min1) * (max2 - min2), min2, max2);
144
+ }
145
+
146
+ vec3 remapClamped(
147
+ const vec3 x,
148
+ const vec3 min1,
149
+ const vec3 max1,
150
+ const vec3 min2,
151
+ const vec3 max2
152
+ ) {
153
+ return clamp(min2 + (x - min1) / (max1 - min1) * (max2 - min2), min2, max2);
154
+ }
155
+
156
+ vec4 remapClamped(
157
+ const vec4 x,
158
+ const vec4 min1,
159
+ const vec4 max1,
160
+ const vec4 min2,
161
+ const vec4 max2
162
+ ) {
163
+ return clamp(min2 + (x - min1) / (max1 - min1) * (max2 - min2), min2, max2);
164
+ }
165
+
166
+ // Implicitly remap to 0 and 1
167
+ float remap(const float x, const float min1, const float max1) {
168
+ return (x - min1) / (max1 - min1);
169
+ }
170
+
171
+ vec2 remap(const vec2 x, const vec2 min1, const vec2 max1) {
172
+ return (x - min1) / (max1 - min1);
173
+ }
174
+
175
+ vec3 remap(const vec3 x, const vec3 min1, const vec3 max1) {
176
+ return (x - min1) / (max1 - min1);
177
+ }
178
+
179
+ vec4 remap(const vec4 x, const vec4 min1, const vec4 max1) {
180
+ return (x - min1) / (max1 - min1);
181
+ }
182
+
183
+ float remapClamped(const float x, const float min1, const float max1) {
184
+ return saturate((x - min1) / (max1 - min1));
185
+ }
186
+
187
+ vec2 remapClamped(const vec2 x, const vec2 min1, const vec2 max1) {
188
+ return saturate((x - min1) / (max1 - min1));
189
+ }
190
+
191
+ vec3 remapClamped(const vec3 x, const vec3 min1, const vec3 max1) {
192
+ return saturate((x - min1) / (max1 - min1));
193
+ }
194
+
195
+ vec4 remapClamped(const vec4 x, const vec4 min1, const vec4 max1) {
196
+ return saturate((x - min1) / (max1 - min1));
197
+ }
198
+ `,i=`// Reference: https://jcgt.org/published/0003/02/01/paper.pdf
199
+
200
+ vec2 signNotZero(vec2 v) {
201
+ return vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);
202
+ }
203
+
204
+ vec2 packNormalToVec2(vec3 v) {
205
+ vec2 p = v.xy * (1.0 / (abs(v.x) + abs(v.y) + abs(v.z)));
206
+ return v.z <= 0.0
207
+ ? (1.0 - abs(p.yx)) * signNotZero(p)
208
+ : p;
209
+ }
210
+
211
+ vec3 unpackVec2ToNormal(vec2 e) {
212
+ vec3 v = vec3(e.xy, 1.0 - abs(e.x) - abs(e.y));
213
+ if (v.z < 0.0) {
214
+ v.xy = (1.0 - abs(v.yx)) * signNotZero(v.xy);
215
+ }
216
+ return normalize(v);
217
+ }
218
+ `,o=`// TODO: Maybe switch to Vogel disk with IGN:
219
+ // https://www.gamedev.net/tutorials/programming/graphics/contact-hardening-soft-shadows-made-fast-r4906/
220
+ // Taken from: https://developer.download.nvidia.com/whitepapers/2008/PCSS_Integration.pdf
221
+ const vec2 poissonDisk[16] = vec2[16](
222
+ vec2(-0.94201624, -0.39906216),
223
+ vec2(0.94558609, -0.76890725),
224
+ vec2(-0.094184101, -0.9293887),
225
+ vec2(0.34495938, 0.2938776),
226
+ vec2(-0.91588581, 0.45771432),
227
+ vec2(-0.81544232, -0.87912464),
228
+ vec2(-0.38277543, 0.27676845),
229
+ vec2(0.97484398, 0.75648379),
230
+ vec2(0.44323325, -0.97511554),
231
+ vec2(0.53742981, -0.4737342),
232
+ vec2(-0.26496911, -0.41893023),
233
+ vec2(0.79197514, 0.19090188),
234
+ vec2(-0.2418884, 0.99706507),
235
+ vec2(-0.81409955, 0.9143759),
236
+ vec2(0.19984126, 0.78641367),
237
+ vec2(0.14383161, -0.1410079)
238
+ );
239
+
240
+ #define POISSON_DISK_COUNT (16)
241
+ `,r=`float raySphereFirstIntersection(
242
+ const vec3 origin,
243
+ const vec3 direction,
244
+ const vec3 center,
245
+ const float radius
246
+ ) {
247
+ vec3 a = origin - center;
248
+ float b = 2.0 * dot(direction, a);
249
+ float c = dot(a, a) - radius * radius;
250
+ float discriminant = b * b - 4.0 * c;
251
+ return discriminant < 0.0
252
+ ? -1.0
253
+ : (-b - sqrt(discriminant)) * 0.5;
254
+ }
255
+
256
+ float raySphereFirstIntersection(const vec3 origin, const vec3 direction, const float radius) {
257
+ return raySphereFirstIntersection(origin, direction, vec3(0.0), radius);
258
+ }
259
+
260
+ vec4 raySphereFirstIntersection(
261
+ const vec3 origin,
262
+ const vec3 direction,
263
+ const vec3 center,
264
+ const vec4 radius
265
+ ) {
266
+ vec3 a = origin - center;
267
+ float b = 2.0 * dot(direction, a);
268
+ vec4 c = dot(a, a) - radius * radius;
269
+ vec4 discriminant = b * b - 4.0 * c;
270
+ vec4 mask = step(discriminant, vec4(0.0));
271
+ return mix((-b - sqrt(max(vec4(0.0), discriminant))) * 0.5, vec4(-1.0), mask);
272
+ }
273
+
274
+ vec4 raySphereFirstIntersection(const vec3 origin, const vec3 direction, const vec4 radius) {
275
+ return raySphereFirstIntersection(origin, direction, vec3(0.0), radius);
276
+ }
277
+
278
+ float raySphereSecondIntersection(
279
+ const vec3 origin,
280
+ const vec3 direction,
281
+ const vec3 center,
282
+ const float radius
283
+ ) {
284
+ vec3 a = origin - center;
285
+ float b = 2.0 * dot(direction, a);
286
+ float c = dot(a, a) - radius * radius;
287
+ float discriminant = b * b - 4.0 * c;
288
+ return discriminant < 0.0
289
+ ? -1.0
290
+ : (-b + sqrt(discriminant)) * 0.5;
291
+ }
292
+
293
+ float raySphereSecondIntersection(const vec3 origin, const vec3 direction, const float radius) {
294
+ return raySphereSecondIntersection(origin, direction, vec3(0.0), radius);
295
+ }
296
+
297
+ vec4 raySphereSecondIntersection(
298
+ const vec3 origin,
299
+ const vec3 direction,
300
+ const vec3 center,
301
+ const vec4 radius
302
+ ) {
303
+ vec3 a = origin - center;
304
+ float b = 2.0 * dot(direction, a);
305
+ vec4 c = dot(a, a) - radius * radius;
306
+ vec4 discriminant = b * b - 4.0 * c;
307
+ vec4 mask = step(discriminant, vec4(0.0));
308
+ return mix((-b + sqrt(max(vec4(0.0), discriminant))) * 0.5, vec4(-1.0), mask);
309
+ }
310
+
311
+ vec4 raySphereSecondIntersection(const vec3 origin, const vec3 direction, const vec4 radius) {
312
+ return raySphereSecondIntersection(origin, direction, vec3(0.0), radius);
313
+ }
314
+
315
+ void raySphereIntersections(
316
+ const vec3 origin,
317
+ const vec3 direction,
318
+ const vec3 center,
319
+ const float radius,
320
+ out float intersection1,
321
+ out float intersection2
322
+ ) {
323
+ vec3 a = origin - center;
324
+ float b = 2.0 * dot(direction, a);
325
+ float c = dot(a, a) - radius * radius;
326
+ float discriminant = b * b - 4.0 * c;
327
+ if (discriminant < 0.0) {
328
+ intersection1 = -1.0;
329
+ intersection2 = -1.0;
330
+ return;
331
+ } else {
332
+ float Q = sqrt(discriminant);
333
+ intersection1 = (-b - Q) * 0.5;
334
+ intersection2 = (-b + Q) * 0.5;
335
+ }
336
+ }
337
+
338
+ void raySphereIntersections(
339
+ const vec3 origin,
340
+ const vec3 direction,
341
+ const float radius,
342
+ out float intersection1,
343
+ out float intersection2
344
+ ) {
345
+ raySphereIntersections(origin, direction, vec3(0.0), radius, intersection1, intersection2);
346
+ }
347
+
348
+ void raySphereIntersections(
349
+ const vec3 origin,
350
+ const vec3 direction,
351
+ const vec3 center,
352
+ const vec4 radius,
353
+ out vec4 intersection1,
354
+ out vec4 intersection2
355
+ ) {
356
+ vec3 a = origin - center;
357
+ float b = 2.0 * dot(direction, a);
358
+ vec4 c = dot(a, a) - radius * radius;
359
+ vec4 discriminant = b * b - 4.0 * c;
360
+ vec4 mask = step(discriminant, vec4(0.0));
361
+ vec4 Q = sqrt(max(vec4(0.0), discriminant));
362
+ intersection1 = mix((-b - Q) * 0.5, vec4(-1.0), mask);
363
+ intersection2 = mix((-b + Q) * 0.5, vec4(-1.0), mask);
364
+ }
365
+
366
+ void raySphereIntersections(
367
+ const vec3 origin,
368
+ const vec3 direction,
369
+ const vec4 radius,
370
+ out vec4 intersection1,
371
+ out vec4 intersection2
372
+ ) {
373
+ raySphereIntersections(origin, direction, vec3(0.0), radius, intersection1, intersection2);
374
+ }
375
+ `,a=`vec3 screenToView(
376
+ const vec2 uv,
377
+ const float depth,
378
+ const float viewZ,
379
+ const mat4 projectionMatrix,
380
+ const mat4 inverseProjectionMatrix
381
+ ) {
382
+ vec4 clip = vec4(vec3(uv, depth) * 2.0 - 1.0, 1.0);
383
+ float clipW = projectionMatrix[2][3] * viewZ + projectionMatrix[3][3];
384
+ clip *= clipW;
385
+ return (inverseProjectionMatrix * clip).xyz;
386
+ }
387
+ `,s=`// A fifth-order polynomial approximation of Turbo color map.
388
+ // See: https://observablehq.com/@mbostock/turbo
389
+ // prettier-ignore
390
+ vec3 turbo(const float x) {
391
+ float r = 0.1357 + x * (4.5974 - x * (42.3277 - x * (130.5887 - x * (150.5666 - x * 58.1375))));
392
+ float g = 0.0914 + x * (2.1856 + x * (4.8052 - x * (14.0195 - x * (4.2109 + x * 2.7747))));
393
+ float b = 0.1067 + x * (12.5925 - x * (60.1097 - x * (109.0745 - x * (88.5066 - x * 26.8183))));
394
+ return vec3(r, g, b);
395
+ }
396
+ `,v=n,m=e,d=t,l=c,x=i,p=o,f=r,u=a,h=s;exports.cascadedShadowMaps=v;exports.depth=m;exports.generators=d;exports.math=l;exports.packing=x;exports.poissonDisk=p;exports.raySphereIntersection=f;exports.transform=u;exports.turbo=h;
397
+ //# sourceMappingURL=shaders.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shaders.cjs","sources":["../src/shaders/cascadedShadowMaps.glsl?raw","../src/shaders/depth.glsl?raw","../src/shaders/generators.glsl?raw","../src/shaders/math.glsl?raw","../src/shaders/packing.glsl?raw","../src/shaders/poissonDisk.glsl?raw","../src/shaders/raySphereIntersection.glsl?raw","../src/shaders/transform.glsl?raw","../src/shaders/turbo.glsl?raw","../src/shaders/index.ts"],"sourcesContent":null,"names":["_cascadedShadowMaps","_depth","_generators","_math","_packing","_poissonDisk","_raySphereIntersection","_transform","_turbo","cascadedShadowMaps","depth","generators","math","packing","poissonDisk","raySphereIntersection","transform","turbo"],"mappings":"gFAAA,MAAeA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAAC,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAAC,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAAC,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAAC,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAAC,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAAC,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAAC,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAAC,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECUFC,EAA6BT,EAC7BU,EAAgBT,EAChBU,EAAqBT,EACrBU,EAAeT,EACfU,EAAkBT,EAClBU,EAAsBT,EACtBU,EAAgCT,EAChCU,EAAoBT,EACpBU,EAAgBT"}